zabbix之tomcat监控(JMX)
为什么选择JMX
其实监控tomcat的方式有很多种,比如:通过进程、端口、访问状态等,可是这些情况在一些情况下有很明显的弊端,有时候进程死了,端口还在。而JMX就不会这样了,JMX 既是 Java 管理系统的一个标准,一个规范,也是一个接口,一个框架。可以跨越一系列异构操作系统平台、系统体系结构和网络传输协议,灵活的开发无缝集成的系统、网络和服务管理应用。
后期还可以扩展kafka、zookeeper、solr等java应用的监控。
zabbix-server端的操作
安装JDK
jmx是java开发的,安装前需要有jdk环境。 jdk环境的安装无非就是两种,
1、在 java官网下载,配置好环境变量即可。
2、apt或者yun安装
注:zabbix-server安装的java版本需要和被监控agent上的版本一致
安装zabbix-java-gateway
官方支持三种安装方式:源码、包安装(apt、yum)、容器(应该是docker) 后文我也只介绍我的操作过程,不再过多解释,详情见 zabbix官网
apt-get install zabbix-java-gateway
配置文件/etc/zabbix/zabbix_java_gateway.conf 默认即可
root@OPS-20-127:/tmp# egrep -v '^#|^$' /etc/zabbix/zabbix_java_gateway.conf
PID_FILE="/var/run/zabbix/zabbix_java_gateway.pid"
START_POLLERS=5
TIMEOUT=3
注:START_POLLERS是配置启动的进出数,该值必须大于等于Zabbix-Server.conf里面的startJavaPollers。
修改zabbix-server.conf,
vim /etc/zabbix/zabbix_server.conf
JavaGateway=127.0.0.1
StartJavaPollers=3
注:端口一直使用默认的10052;两个文件的Pollers相关参数根据agent节点数配置
下载catalina-jmx-remote.jar文件,放到/usr/share/zabbix-java-gateway/lib/下
下载cmdline-jmxclient-0.10.3.jar放在/tmp即可,后续用。
在zabbix-server上重启服务
/etc/init.d/zabbix-server restart
/etc/init.d/zabbix-java-gateway restart
zabbit-agent端操作
下载catalina-jmx-remote.jar文件,放到tomcat/lib下
在tomcat/bin/setenv.sh最后追加
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=12345 \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.authenticate=false \
-Djava.rmi.server.hostname=agent的IP"
修改tomcat/conf/server.xml, 在<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />后添加<Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener" rmiRegistryPortPlatform="12345" rmiServerPortPlatform="12345" />
重启tomcat 检查端口
netstat -ptnl | grep 12345
tcp 0 0 :::12345 :::* LISTEN 2532/java
切回到zabbix-server
用到刚刚下载的cmdline-jmxclient-0.10.3.jar文件
root@OPS-20-127:/tmp# java -jar cmdline-jmxclient-0.10.3.jar - agent的IP:12345 java.lang:type=Memory NonHeapMemoryUsage
08/05/2015 17:05:32 +0800 org.archive.jmx.Client NonHeapMemoryUsage:
committed: 82837504
init: 2555904
max: -1
used: 80883872
切到web,添加模板
在添加web监控的时候,把Template JMX Generic和Template JMX Tomcat都添加进去,进到应用集,没用的禁掉就行。