- A+
最近陆续写了几个zabbix监控实例,也提供了监控模板。今天群里有兄弟问什么时候出一个zabbix通过JMX监控tomcat的文章。鉴于tomcat用户群体大而且之前也有很多兄弟有过相似需求,今天在此分享zabbix监控tomcat一文。
安装Tomcat
既然你需要监控tomcat,基本说明你已经安装好tomcat。如有正好你不会安装tomcat,那么请参考TTLSA之前的文章《Tomcat7安装》
配置Tomcat JMX
配置jmx
编辑catalina.sh,加入如下配置
1 2 |
# vim /usr/local/tomcat-7.0.65/bin/catalina.sh CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=12345" |
启动Tomcat
1 |
# /usr/local/tomcat-7.0.65/bin/startup.sh |
zabbix server配置
首先我们需要了解一下他们的对应关系,zabbix_server开启java poller, zabbx_java开启JavaGateway,端口为10052,Tomcat JMX开启12345提供性能数据。
数据获取:java poller<-->JavaGateway:10052<-->Tomcat:12345.
Java支持
编译安装zabbix server需要加上--enable-java以支持jmx监控,如果之前的zabbix server没加,那么请重新编译安装, 分享下我的安装参数:
1 |
# ./configure --prefix=/usr/local/zabbix-3.0.0/ --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 --enable-java |
启动zabbix_java
1 |
# /usr/local/zabbix-3.0.0/sbin/zabbix_java/startup.sh |
zabbix_server.conf配置
默认未启用JavaPollers,需要修改如下配置
1 2 3 4 |
# cat /usr/local/zabbix-3.0.0/etc/zabbix_server.conf | grep Java | grep = JavaGateway=127.0.0.1 JavaGatewayPort=10052 StartJavaPollers=5 |
Zabbix图形界面配置
主机增加JMX接口
进入后台,configuration->hosts->选择你的主机->jmx interface 点击add,输入对应的tomcat ip地址和jmx端口,如下图:
Link TOMCAT模板
切换到templates选项卡,选择zabbix自带的tomcat/JMX模板,如下
最后Update即可。接下去等数据。
效果展示
自带的jmx两个模板监控项目非常多,自己去摸索。
后续有更多zabbix实例文章,请保持对ttlsa的关注!

16/08/2018 上午 10:43 沙发
写的太过于简单了,里面很多问题新手根本不知道。这个只适合非常熟悉的人看。
20/03/2018 上午 11:24 板凳
页面上jvm一直为红,并且报错java.io.IOException: Failed to retrieve RMIServer stub: javax.naming.CommunicationException [Root exception is java.rmi.ConnectIOException: non-JRMP server at remote endpoint],这个要怎么解决,头疼了好久了,望大神帮个忙
19/03/2018 上午 11:01 地板
你好,请问zabbix页面上jmx一直显示不可用,并且内容显示为Cannot open received JSON,这要怎么解决?
21/02/2017 下午 5:25 4楼
java.io.IOException: Failed to retrieve RMIServer stub: javax.naming.CommunicationException 这个怎么解决,有谁知道,监控的项目已经都显示启用,就是报这个错,我的是zabbix-2-4-5
21/02/2017 下午 4:41 5楼
java.io.IOException: Failed to retrieve RMIServer stub: javax.naming.CommunicationException [Root exception is java.rmi.Connectl报错啊,虽然监控项全部都已经启用了,但是没有图形
06/08/2016 下午 6:19 6楼
java.rmi.ConnectException: Connection refused to host: 127.0.0.1; nested exception is:
java.net.ConnectException: Connection refused
您好,这个怎么解决呢?
06/08/2016 下午 6:17 7楼
java.rmi.ConnectException: Connection refused to host: 127.0.0.1; nested exception is:
java.net.ConnectException: Connection refused
您好。请问怎么解决?
01/08/2016 下午 1:13 8楼
Template JMX Tomcat: http-8080 bytes received per second jmx[“Catalina:type=GlobalRequestProcessor,name=http-8080”,bytesReceived] 1m 7d 365d JMX agent http-8080 Not supported 按照你这个配置,出现这个问题,怎么处理,谢谢
13/06/2016 下午 5:12 9楼
凉白开大大们,希望出个zabbix监控jetty的文章 :mrgreen: :razz:
24/12/2015 下午 1:39 10楼
java -jar cmdline-jmxclient-0.10.3.jar 10.163.199.174:211 java.lang:type=Memory NonHeapMemoryUsage
Exception in thread “main” java.net.MalformedURLException: Bad port number: “”: java.lang.NumberFormatException: For input string: “”
at javax.management.remote.JMXServiceURL.(JMXServiceURL.java:211)
at org.archive.jmx.Client.execute(Client.java:223)
at org.archive.jmx.Client.main(Client.java:154)
请教下版主我这个问题是怎么回事。按照文档提示去修改了。但是还是报 这个错误。求解
24/12/2015 下午 1:39 11楼
java -jar cmdline-jmxclient-0.10.3.jar 10.163.199.174:211 java.lang:type=Memory NonHeapMemoryUsage
Exception in thread “main” java.net.MalformedURLException: Bad port number: “”: java.lang.NumberFormatException: For input string: “”
at javax.management.remote.JMXServiceURL.(JMXServiceURL.java:211)
at org.archive.jmx.Client.execute(Client.java:223)
at org.archive.jmx.Client.main(Client.java:154)
请教下版主我这个问题是怎么回事。按照文档提示去修改了。但是还是报 这个错误。求解
21/11/2016 上午 11:05 1层
@龙 请问这个问题最后怎么解决的
21/12/2015 下午 4:10 12楼
你好,请问zabbix的讨论群号码是多少?我想加一下,谢谢!
21/12/2015 下午 2:13 13楼
请问下,你有没有zabbix自带的tomcat模板?能发我一个吗?
16/12/2015 上午 10:34 14楼
我想问下我如果一个机器上有多个实例的话,我怎么选择jmx模版
16/12/2015 下午 12:07 1层
@longdechuanren517 这种情况下不能用jmx模板,自定义模板+agent方式实现!
17/12/2015 上午 10:47 2层
@运维生存时间 谢谢,我到时候试试
10/12/2015 上午 11:17 15楼
监控tomcat我的端口是80,但原始JMX是8080,所以取不到数据,去那里修改这个端口呢
10/12/2015 下午 12:15 1层
@lklk 改tomcat模板!
11/12/2015 上午 10:57 2层
@运维生存时间 不好意思很笨不知道zabbix自带的模板存放在什么位置
02/12/2015 下午 8:09 16楼
其实这个监控的过程中还是有很多要注意的。个人觉得使用自带的那个serverstatus来监控就行了。什么数据都有。