1. 程式人生 > >zabbix 使用JMX 監控tomcat

zabbix 使用JMX 監控tomcat

JMX (Java Management Extensions),是java提供的一種管理介面,通常使用JMX來監控系統的執行狀態或管理系統的某些方面,比如清空快取、重新載入配置檔案等。

百度百科介紹:JMX

zabbix監控機 :os -------cent6.5 x64

                            zabbix------2.4.6 ,使用yum安裝方式安裝。

被監控機:        os--------cent6.5 x64

                            java-------官網下載JDK8 安裝 ,注意!!!!

                           tomcat8-----

官網下載tar.gz包  

配置zabbix 監控機:yum 安裝的zabbix是不帶java gateway的 ,需要從官網下載zabbix-java-gateway  其監控流程如下

    zabbix_server <-> Java Gateway <-> JMX server<->java app

下載java gateway後編譯安裝

cd zabbix-2.4.6 &&  ./configure --enable-java --prefix=/usr/local/zabbix
安裝目錄修改在/usr/local/zabbix ,該過程可能會提示缺少javacc ,或者一些其他的編譯異常,

解決辦法為從java官網下載JDK (不要用yum裝,版本太老)安裝。完成configure過程後安裝

make && make install
進入編譯好的java gateway 目錄
cd /usr/local/zabbix/sbin/zabbix_java
修改配置檔案
vim settings.sh
將LISTEN_IP=0.0.0.0,LISTEN_PORT=10052,START_POLLERS=5解除註釋。

啟動java gateway程序

./start.sh
檢視程序
ps aux | grep java
zabbix   22270  0.0  0.0 165464  2988 ?        S    Oct26   0:02 zabbix_server: java poller #1 [got 0 values in 0.000004 sec, idle 5 sec]
zabbix   22271  0.0  0.0 165464  3032 ?        S    Oct26   0:02 zabbix_server: java poller #2 [got 0 values in 0.000004 sec, idle 5 sec]
zabbix   22272  0.0  0.0 165464  2988 ?        S    Oct26   0:02 zabbix_server: java poller #3 [got 0 values in 0.000004 sec, idle 5 sec]
zabbix   22273  0.0  0.0 165520  3168 ?        S    Oct26   0:02 zabbix_server: java poller #4 [got 0 values in 0.000005 sec, idle 5 sec]
zabbix   22274  0.0  0.0 165516  3100 ?        S    Oct26   0:02 zabbix_server: java poller #5 [got 0 values in 0.000004 sec, idle 5 sec]

修改zabbix_server 檔案zabbix_server.conf,修改如下項

### Option: JavaGateway
#       IP address (or hostname) of Zabbix Java gateway.
#       Only required if Java pollers are started.
#
# Mandatory: no
# Default:
# JavaGateway=
  JavaGateway=127.0.0.1

### Option: JavaGatewayPort
#       Port that Zabbix Java gateway listens on.
#
# Mandatory: no
# Range: 1024-32767
# Default:
# JavaGatewayPort=10052
  JavaGatewayPort=10052

### Option: StartJavaPollers
#       Number of pre-forked instances of Java pollers.
#
# Mandatory: no
# Range: 0-1000
# Default:
# StartJavaPollers=0
  StartJavaPollers=5
即讓zabbix_server 連結到本地10052 埠與java_gateway 通訊。重啟zabbix_server zabbix 配置完成
service zabbix-server restart

配置被監控機:將下載tomcat 解壓至使用者目錄
/root/apache-tomcat-7.0.65
修改
conf/server.xml
在server標籤下新增一行
<Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener" rmiRegistryPortPlatform="12345" rmiServerPortPlatform="12346" />
修改
bin/catalina.sh
在Execute The Requested Command 下面增加一行
CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=192.168.5.59"
這裡192.168.5.59 為該本監控機的ip地址,另外建議將hosts 檔案中 127.0.0.1 增加該機hostname,否則java 報錯但是不影響程序執行。
lib/
執行
/bin/startup.sh
啟動tomcat程序,執行結果
Using CATALINA_BASE:   /root/apache-tomcat-7.0.65
Using CATALINA_HOME:   /root/apache-tomcat-7.0.65
Using CATALINA_TMPDIR: /root/apache-tomcat-7.0.65/temp
Using JRE_HOME:        /usr/java/jdk1.8.0_65
Using CLASSPATH:       /root/apache-tomcat-7.0.65/bin/bootstrap.jar:/root/apache-tomcat-7.0.65/bin/tomcat-juli.jar
Tomcat started.
java -jar cmdline-jmxclient-0.10.3.jar - 192.168.5.59:12345 java.lang:type=Runtime  Uptime
將返回tomcat的uptime

最後就可以在zabbix的監控面板中使用jmx agent的方式新增監控了。

參考

http://www.aikaiyuan.com/2993.html