1.环境

root@ubuntu:~/zabbix-4.0.35# cat /etc/issue
Ubuntu 18.04.3 LTS \n \l

zabbix-监控tomcat_zabbix-tomcat监控

2.tomcat安装

参考:​​https://blog.51cto.com/taowenwu/5212002​

2.2.tomcat开启jmx监控

/data/apache-tomcat-8.5.39/bin/catalina.sh

CATALINA_OPTS="$CATALINA_OPTS
-Dcom.sun.management.jmxremote #启用远程监控JMX
-Dcom.sun.management.jmxremote.port=12345 #默认启动的JMX端口号,要和zabbix添加主机时候的端口一致即可
-Dcom.sun.management.jmxremote.authenticate=false #不使用用户名密码
-Dcom.sun.management.jmxremote.ssl=false #不使用ssl认证
-Djava.rmi.server.hostname=192.168.47.52" #tomcat主机自己的IP地址,不要写zabbix server的地址
/data/tomcat/bin/catalina.sh  stop 
/data/tomcat/bin/catalina.sh start

zabbix-监控tomcat_zabbix-tomcat监控_02

zabbix-监控tomcat_zabbix-tomcat监控_03

2.3.测试

zabbix-监控tomcat_zabbix-tomcat监控_04

zabbix-监控tomcat_zabbix-tomcat监控_05

3.zabbix-agent配置

参考:​​https://blog.51cto.com/taowenwu/4857440​

ZBX 变绿,主要是模板Template App Zabbix Agent中监控项,Agent ping得返回值,1是正常,其他不正常

zabbix-监控tomcat_zabbix-tomcat监控_06

4.zabbix-server

编译安装参考​https://blog.51cto.com/taowenwu/4850174​

4.1.zabbix-java-gateway与zabbix server在同主机上

zabbix使用jmx监控tomcat;编译zabbix server时需要提供java支持,即添加--enable-java

如果编译添加--enable-java,这相当于在编译zabbix的时候,就直接安装了zabbix-java-gateway

ls /usr/local/zabbix/sbin/zabbix_java/

zabbix-监控tomcat_zabbix-tomcat监控_07

4.1.1.修改配置文件

/usr/local/zabbix/sbin/zabbix_java/settings.sh

LISTEN_IP="0.0.0.0"
LISTEN_PORT=10052
PID_FILE="/tmp/zabbix_java.pid" #可修改
START_POLLERS=10 #启动多少个进程轮询java,要和java 应用保持一定关系
TIMEOUT=30 #等待网络访问值

4.1.2.启动/关闭

/usr/local/zabbix/sbin/zabbix_java/startup.sh 
/usr/local/zabbix/sbin/zabbix_java/shutdown.sh

zabbix-监控tomcat_zabbix-tomcat监控_08

4.1.3.编辑zabbix_server.conf

/usr/local/zabbix/etc/zabbix_server.conf

JavaGateway=192.168.47.50  #java-gateway地址
JavaGatewayPort=10052
StartJavaPollers=20
systemctl restart zabbix-server

4.2.zabbix-java-gateway与zabbix server在不同主机上

4.2.1.zabbix-java-gateway安装

apt-get install zabbix-java-gateway

vim /etc/zabbix/zabbix_java_gateway.conf
-----------------------------------------------------
LISTEN_IP="0.0.0.0"
LISTEN_PORT=10052
PID_FILE="/var/run/zabbix/zabbix_java_gateway.pid" #可修改
START_POLLERS=10 #启动多少个进程轮询java,要和java 应用保持一定关系
TIMEOUT=30 #等待网络访问值
-----------------------------------------------------

systemctl restart zabbix-java-gateway
systemctl enable zabbix-java-gateway

zabbix-监控tomcat_zabbix-tomcat监控_09

4.2.2.编辑zabbix_server.conf

/usr/local/zabbix/etc/zabbix_server.conf

JavaGateway=192.168.47.51  #java-gateway地址
JavaGatewayPort=10052
StartJavaPollers=20
systemctl restart zabbix-server

疑问:按照以上配置,改了JavaGateway的ip地址,JMX提示如下:

zabbix-监控tomcat_zabbix-tomcat监控_10

但是,我把JavaGateway地址配置成zabbix server主机上ip,又不报错,---这就有点懵逼了

疑问:javagateway是怎么去找tomcat的

5.web界面添加主机

注意

下面添加的主机名称是:zabbix-agent主机配置文件中的hostname的值

jmx接口:zabbix-agent所在主机ip;端口为:jmx监听端口

zabbix-监控tomcat_zabbix-tomcat监控_11

zabbix-监控tomcat_zabbix-tomcat监控_12

zabbix-监控tomcat_zabbix-tomcat监控_13

6.监控java排错方法

包下载:​http://crawler.archive.org/cmdline-jmxclient/downloads.html​

zabbix-监控tomcat_zabbix-tomcat监控_14

获取活动线程的当前数目,包括守护线程和非守护线程。
java -jar cmdline-jmxclient-0.10.3.jar - 192.168.47.52:12345 java.lang:type=Threading ThreadCount

获取自从 Java 虚拟机启动以来创建和启动的线程总数目。
java -jar cmdline-jmxclient-0.10.3.jar - 192.168.47.52:12345 java.lang:type=Threading TotalStartedThreadCount

获取Java 虚拟机启动或峰值重置以来峰值活动线程计数。
java -jar cmdline-jmxclient-0.10.3.jar - 192.168.47.52:12345 java.lang:type=Threading PeakThreadCount

获取守护线程总数。
java -jar cmdline-jmxclient-0.10.3.jar - 192.168.47.52:12345 java.lang:type=Threading DaemonThreadCount

zabbix-监控tomcat_zabbix-tomcat监控_15