zabbix 使用JMX 監控tomcat
阿新 • • 發佈:2019-02-15
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