要在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模板时出现的数据
本文转自激情燃烧的岁月博客51CTO博客,原文链接http://blog.51cto.com/liuzhengwei521/1925411如需转载请自行联系原作者
weilovepan520