在之前的文章中介绍了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工具对模板中的参数进行修改调试,确认能获取数据之后再以相同的格式对模板进行修改。
附件是修改后的模板,可以添加进行使用,需要注意的是,在导入模板前,先对原始模板进行备份重命名。