关于zabbix经过jmx监控tomcat的问题

关于zabbix如何经过jmx监控tomcat等java程序我在前面的博客中已经写过了,有兴趣的能够戳一下这个连接:我是连接,快戳我java

    最近在新公司部署zabbix监控的时候在压测环境部署监控没有问题,而后使用相同的方法部署在线上环境中以后发现模版中有一部分参数没法被获取,因而开始各类找问题。最后在tomcat的配置文件中发现线上环境的tomcat配置参数比测试环境的配置参数多了八个参数,线上环境部分配置参数以下:tomcat

1
export  JAVA_OPTS= "-Xms2048m -Xmx4096M -Xmn512m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8 -XX:+DisableExplicitGC -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12353 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=x.x.x.x"

其中部分参数和压测环境不同,不同的参数以下:bash

1
-XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8 -XX:+DisableExplicitGC

因而,一个一个排查参数,最后,发现是-XX:+UseConcMarkSweepGC这个参数影响zabbix经过jmx获取关于内存回收机制的某些值,致使模版中的某些值没法获取。删除这个参数以后就能够正常获取tomcat的各项监控参数了。ide

因而在咨询了同过后发现该参数是对java的内存回收机制的优化的参数,在线上环境暂时不要删除,因而某些监控项目没法实现,可是通过将近一天的排查,终于发现tomcat配置中的这个坑了,但愿各位同道们之后在碰到相似的状况的时候能够参考借鉴个人此次经历检查是不是该参数搞的鬼,哈哈,找到问题了,在这分享给各位同道们参考哈。测试

本文出自 “柠檬” 博客,请务必保留此出处http://xianglinhu.blog.51cto.com/5787032/1710471优化