最近陆续写了几个zabbix监控实例,也提供了监控模板。今天群里有兄弟问什么时候出一个zabbix通过JMX监控tomcat的文章。鉴于tomcat用户群体大而且之前也有很多兄弟有过相似需求,今天在此分享zabbix监控tomcat一文。
安装Tomcat
既然你需要监控tomcat,基本说明你已经安装好tomcat。如有正好你不会安装tomcat,那么请参考TTLSA之前的文章《Tomcat7安装》文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-use-jmx-monitor-tomcat/
配置Tomcat JMX
配置jmx文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-use-jmx-monitor-tomcat/
编辑catalina.sh,加入如下配置文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-use-jmx-monitor-tomcat/
# 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文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-use-jmx-monitor-tomcat/
# /usr/local/tomcat-7.0.65/bin/startup.sh
zabbix server配置
首先我们需要了解一下他们的对应关系,zabbix_server开启java poller, zabbx_java开启JavaGateway,端口为10052,Tomcat JMX开启12345提供性能数据。文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-use-jmx-monitor-tomcat/
数据获取:java poller<-->JavaGateway:10052<-->Tomcat:12345.文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-use-jmx-monitor-tomcat/
Java支持文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-use-jmx-monitor-tomcat/
编译安装zabbix server需要加上--enable-java以支持jmx监控,如果之前的zabbix server没加,那么请重新编译安装, 分享下我的安装参数:文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-use-jmx-monitor-tomcat/
# ./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文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-use-jmx-monitor-tomcat/
# /usr/local/zabbix-3.0.0/sbin/zabbix_java/startup.sh
zabbix_server.conf配置文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-use-jmx-monitor-tomcat/
默认未启用JavaPollers,需要修改如下配置文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-use-jmx-monitor-tomcat/
# 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接口文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-use-jmx-monitor-tomcat/
进入后台,configuration->hosts->选择你的主机->jmx interface 点击add,输入对应的tomcat ip地址和jmx端口,如下图:文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-use-jmx-monitor-tomcat/
文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-use-jmx-monitor-tomcat/
文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-use-jmx-monitor-tomcat/
文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-use-jmx-monitor-tomcat/
Link TOMCAT模板文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-use-jmx-monitor-tomcat/
切换到templates选项卡,选择zabbix自带的tomcat/JMX模板,如下文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-use-jmx-monitor-tomcat/
文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-use-jmx-monitor-tomcat/
文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-use-jmx-monitor-tomcat/
最后Update即可。接下去等数据。
效果展示
自带的jmx两个模板监控项目非常多,自己去摸索。
后续有更多zabbix实例文章,请保持对ttlsa的关注!

16F
写的太过于简单了,里面很多问题新手根本不知道。这个只适合非常熟悉的人看。
15F
页面上jvm一直为红,并且报错java.io.IOException: Failed to retrieve RMIServer stub: javax.naming.CommunicationException [Root exception is java.rmi.ConnectIOException: non-JRMP server at remote endpoint],这个要怎么解决,头疼了好久了,望大神帮个忙
14F
你好,请问zabbix页面上jmx一直显示不可用,并且内容显示为Cannot open received JSON,这要怎么解决?
13F
java.io.IOException: Failed to retrieve RMIServer stub: javax.naming.CommunicationException 这个怎么解决,有谁知道,监控的项目已经都显示启用,就是报这个错,我的是zabbix-2-4-5
12F
java.io.IOException: Failed to retrieve RMIServer stub: javax.naming.CommunicationException [Root exception is java.rmi.Connectl报错啊,虽然监控项全部都已经启用了,但是没有图形
11F
java.rmi.ConnectException: Connection refused to host: 127.0.0.1; nested exception is:
java.net.ConnectException: Connection refused
您好,这个怎么解决呢?
10F
java.rmi.ConnectException: Connection refused to host: 127.0.0.1; nested exception is:
java.net.ConnectException: Connection refused
您好。请问怎么解决?
9F
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 按照你这个配置,出现这个问题,怎么处理,谢谢
8F
凉白开大大们,希望出个zabbix监控jetty的文章 :mrgreen: :razz:
7F
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)
请教下版主我这个问题是怎么回事。按照文档提示去修改了。但是还是报 这个错误。求解
6F
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)
请教下版主我这个问题是怎么回事。按照文档提示去修改了。但是还是报 这个错误。求解
B1
@ 龙 请问这个问题最后怎么解决的
5F
你好,请问zabbix的讨论群号码是多少?我想加一下,谢谢!
4F
请问下,你有没有zabbix自带的tomcat模板?能发我一个吗?
3F
我想问下我如果一个机器上有多个实例的话,我怎么选择jmx模版
B1
@ longdechuanren517 这种情况下不能用jmx模板,自定义模板+agent方式实现!
B2
@ 运维生存时间 谢谢,我到时候试试
2F
监控tomcat我的端口是80,但原始JMX是8080,所以取不到数据,去那里修改这个端口呢
B1
@ lklk 改tomcat模板!
B2
@ 运维生存时间 不好意思很笨不知道zabbix自带的模板存放在什么位置
1F
其实这个监控的过程中还是有很多要注意的。个人觉得使用自带的那个serverstatus来监控就行了。什么数据都有。