在之前的文章中介绍了zabbix使用java-gateway对tomcat进行监控。但是zabbix默认的模板有一些参数并没有生效,这就需要我们手动去测试配置。


要对JMX参数进行获取测试,我们需要用到cmdline-jmxclient.jar。使用这个工具可以方便的捕获我们需要的JMX参数。


测试准备


测试语法:

1
java -jar cmdline-jmxclient-0.10.3.jar - 192.168.56.12:12345 java.lang:name= "Code Cache" , type =MemoryPool Usage

命令在java-gateway所在的主机上执行,IP所在的主机是需要监控的tomcat服务器。

对于一些特殊的字符需要转义:

1
java -jar cmdline-jmxclient-0.10.3.jar - 192.168.56.13:12345 Catalina:name=\"http-bio-8080\", type =GlobalRequestProcessor


查看Jmx有哪些参数:

1
java -jar cmdline-jmxclient-0.10.3.jar - 192.168.56.12:12345

查看JMX不同类别的参数:

1
2
java -jar cmdline-jmxclient-0.10.3.jar - 192.168.56.12:12345| grep  "java.lang"
java -jar cmdline-jmxclient-0.10.3.jar - 192.168.56.12:12345| grep  "Catalina"


参数调整

目前Zabbix3.2和之前的版本所带的JVM模板在key 格式的设置上有一些问题,不能自动的监控,经过测试,下面几种格式可以监控我们的JVM:

1
2
3
4
jmx[java.lang: type =MemoryPool,name=PS Old Gen][Usage.used]
jmx[java.lang: type =MemoryPool,name=PS Old Gen][Usage.max]
jmx[ "Catalina:type=ThreadPool,name=\"http-bio-8080\"" ,currentThreadsBusy]
jmx[ "Catalina:type=ThreadPool,name=\"http-bio-8080\"" ,maxThreads]


可以使用cmdline-jmxclient.jar工具对模板中的参数进行修改调试,确认能获取数据之后再以相同的格式对模板进行修改。


附件是修改后的模板,可以添加进行使用,需要注意的是,在导入模板前,先对原始模板进行备份重命名。