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程序会开放一些端口,用来获取运行状况。
下载JDK: http://www.oracle.com/technetwork/java/archive-139210.html
配置环境变量: http://islocal.cc/2017/09/27/JDK%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E9%85%8D%E7%BD%AE/
yum -y install zabbix-java-gateway
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
systemctl start zabbix-java-gateway
systemctl enable zabbix-java-gateway
添加以下三行,这里配置的StartJavaPollers值要小于之前java_gateway中的START_POLLERS
tail -n 3 /etc/zabbix/zabbix_server.conf
JavaGateway=127.0.0.1
JavaGatewayPort=10052
StartJavaPollers=3
修改zabbix_server.conf后重启服务
systemctl restart zabbix-server
Windows下tomcat在F:\deploy\apache-tomcat-8.5.20-OU\bin\catalina.bat中set “CURRENT_DIR=%cd%”下添加以下内容
set CATALINA_OPTS=-Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
下载以下两个jar包放在tomcat lib目录下。
下载cmdline-jmxclient-0.10.3.jar
http://crawler.archive.org/cmdline-jmxclient/cmdline-jmxclient-0.10.3.jar
下载catalina-jmx-remote.jar
https://archive.apache.org/dist/tomcat/tomcat-7/v7.0.77/bin/extras/catalina-jmx-remote.jar
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自带的”Template App Generic Java JMX”和”Template App Apache Tomcat JMX”模板很多都获取不到数据,从网上找了个模板,监控项不多,但是都是很实用的。
jmx的端口一定要与在catalina.bat下配置的jmxremote.port一样