0%

Zabbix(5)通过JMX监控Tomcat

Zabbix监控tomcat主要使用的是zabbix的zabbix-java-gateway。从Zabbix 2.0开始,内置了监控JMX的功能,叫做“Zabbix Java Gateway”,在Zabbix Server和Zabbix Proxy上启动名为“Zabbix Java Gateway”的进程,当需要获取JMX数据时,Zabbix Server会“问”JMX Gateway,然后JMX Gateway根据JMX管理API去查询需要的数据。在使用时,Java程序不需要在代码中新增任何东西,只需要在启动的时候加上一些JVM参数,使得它可以支持使用端口监控JMX。JMX的全称是Java Management Extensions,即Java管理扩展。Java程序会开放一些端口,用来获取运行状况。

安装jmx服务器

安装jdk

下载JDK
配置环境变量

安装jmx服务

1
yum -y install zabbix-java-gateway

配置jmx服务

1
2
3
4
5
6
egrep -v '#|^$' /etc/zabbix/zabbix_java_gateway.conf
LISTEN_IP="0.0.0.0"
LISTEN_PORT=10052
PID_FILE="/var/run/zabbix/zabbix_java.pid"
START_POLLERS=5
TIMEOUT=3
1
2
systemctl start zabbix-java-gateway
systemctl enable zabbix-java-gateway

修改zabbix server配置

添加以下三行,这里配置的StartJavaPollers值要小于之前java_gateway中的START_POLLERS

1
2
3
4
tail -n 3 /etc/zabbix/zabbix_server.conf 
JavaGateway=127.0.0.1
JavaGatewayPort=10052
StartJavaPollers=3

修改zabbix_server.conf后重启服务

1
systemctl restart zabbix-server

Tomcat配置修改

修改配置文件

Windows下tomcat在F:\apache-tomcat-7.0.70(zabbix)\bin\catalina.bat中set “CURRENT_DIR=%cd%”下添加以下内容

1
2
set CATALINA_OPTS=-Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
# 如果zabbix添加JMX后报错“java.net.SocketTimeoutException: connection timed out: service:jmx:rmi:///jndi/rmi:/” 添加此参数 -Djava.rmi.server.hostname=192.168.6.124

测试JMX

下载以下两个jar包放在tomcat lib目录下。
下载cmdline-jmxclient-0.10.3.jar
下载catalina-jmx-remote.jar

1
2
3
4
5
6
F:\apache-tomcat-7.0.70(zabbix)\lib>java -jar cmdline-jmxclient-0.10.3.jar - 192.168.6.124:12345 java.lang:type=Memory NonHeapMemoryUsage
10/10/2017 16:31:57 +0800 org.archive.jmx.Client NonHeapMemoryUsage:
committed: 24838144
init: 12746752
max: 100663296
used: 24806392

在zabbix web页面中添加JMX端口

导入模板

zabbix自带的”Template App Generic Java JMX”和”Template App Apache Tomcat JMX”模板很多都获取不到数据,从网上找了个模板,监控项不多,但是都是很实用的。
zabbix
zabbix

添加JMX端口

jmx的端口一定要与在catalina.bat下配置的jmxremote.port一样
zabbix

关联模板

zabbix

查看图形

zabbix

参考链接:
http://wzlinux.blog.51cto.com/8021085/1692444
http://blog.csdn.net/jhfsdfs/article/details/65629174
http://www.fblinux.com/?p=616