要在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-gatewayzabbix-server注意事项
LISTEN_IP="0.0.0.0"JavaGateway=X.X.X.XX.X.X.X参数为zabbix-java-gateway的ip
LISTEN_PORT=10052JavaGatewayPort=10052端口必须一致,且防火墙允许
START_POLLERS=5StartJavaPollers=5StartJavaPollers小于等于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模板时出现的数据