要在zabbix上面監控tomcat的jvm情況需要用到zabbix-java-gateway
zabbix監控jvm工作流程:
當zabbix-server需要獲取jvm情況時的流程爲:
zabbix-server -> zabbix-java-gateway --> jvm
注:zabbix-server和zabbix-java-gateway是兩2個獨立的程序,可以安裝一臺機器,也可以安裝在不同一的機器
安裝方式:
1.zabbix-java-gateway可以源碼安裝zabbix-server時直接指定安裝(編譯時啓用--enable-java選擇)
2.也可以利用rpm的方式進行安裝
本文以zabbix2.4爲例:
yum install zabbix-java-gateway-2.4.7-1.el6.x86_64.rpm
配置文件:
/etc/zabbix/zabbix_java_gateway.conf
重要配置參數:
LISTEN_IP="0.0.0.0"--> 監聽IP
LISTEN_PORT=10052--> 監控端口
PID_FILE="/var/run/zabbix/zabbix_java.pid"--> pid文件
START_POLLERS=5--> 啓動幾個探測器
注:只需要以上幾個參數即可,無需再做其它配置
啓動方式:
/etc/init.d/zabbix-java-gateway start
注:zabbix-java-gateway生效的前提是,需要將java程序的遠程管理打開
在tomcat中的catalina.sh進行相關配置之後纔可以實現遠程監控
#在catalina.sh添加如下內容
CATALINA_OPTS="$CATALINA_OPTS
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=12345
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Djava.rmi.server.hostname=192.168.10.59"
zabbix-server需要做的配置:
vim zabbix_server.conf
JavaGateway=192.168.10.58
JavaGatewayPort=10052
StartJavaPollers=5
配置完成之後需要重啓zabbix-server
zabbix-server和zabbix-java-gateway配置對比:
zabbix-java-gateway | zabbix-server | 注意事項 |
LISTEN_IP="0.0.0.0" | JavaGateway=X.X.X.X | X.X.X.X參數爲zabbix-java-gateway的ip |
LISTEN_PORT=10052 | JavaGatewayPort=10052 | 端口必須一致,且防火牆允許 |
StartJavaPollers小於等於START_POLLERS |
測試zabbix-server是否可以收到zabbix-java-gateway的數據:
利用到的工具cmdline-jmxclient-0.10.3.jar
java -jar cmdline-jmxclient-0.10.3.jar - 192.168.10.58:12345 java.lang:type=Memory NonHeapMemoryUsage
執行上面的命令如果收到數據則表示配置沒有問題
登陸zabbix-web添加需要jvm的主機即可:
1.點擊"Configuration" --> "Host" --> 找到對應主機選擇"JMX Interfaces" --> 寫入jvm主機Ip及對應的端口
2.選擇對應的模板
JMX有2個模板:Template JMX Generic和Template JMX Tomcat
經測試Template JMX Generic模板可以正常工作,大概2分鐘左右就有數據
Template JMX Tomcat長時間不見數據,不知道爲何,有待研究
使用Template JMX Generic模板時出現的數據