簡述
tomcat需要jdk(java)依賴,zabbix有獨立的zabbix-java-gateway監控java
程式;監控tomcat流程如下:
- zabbix-web用于web界面顯示,沒有特殊含義;
- zabbix-server啟用javapollers程序去連結zabbix-java-gateway去請求資料(修改配置檔案可實作),Zabbix-Javagateway就相當于一個代理,它負責收集用戶端tomcat資料;
- zabbix-java-gateway開啟JMX功能,用于遠端連接配接tomcat,收集tomcat資訊;
- tomcat配置檔案添加JMX參數
實驗環境
主機 | 用途 |
---|---|
Centos7:192.168.10.1 | zabbix-server,zabbix-java-gateway |
Centos7:192.168.10.5 | tomcat |
tomcat添加JMX參數
修改catalina.sh檔案
添加以下内容
CATALINA_OPTS="$CATALINA_OPTS
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=12345
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Djava.rmi.server.hostname=127.0.0.1"
注意格式問題,不要去複制上面的,看别人的部落格都是直接放在了代碼片裡面,自己跟着做坑死了,按照下面的來
重新開機tomat
保證12345端口可以正常開啟
[[email protected] ~]# sh tomcat.sh restart
[[email protected] ~]# netstat -anpt | grep 12345
tcp6 0 0 :::12345 :::* LISTEN 3049/java
[[email protected] ~]# netstat -anpt | grep 8080
tcp6 0 0 :::8080 :::* LISTEN 3049/java
tcp6 0 0 ::1:45152 ::1:8080 TIME_WAIT -
配置zabbix服務端
安裝
zabbix-java-gateway
#安裝
yum -y install zabbix-java-gateway
#啟動
systemctl start zabbix-java-gateway
#開機啟動
systemctl enable zabbix-java-gateway
zabbix-server預設工作在10051端口,zabbix-agent預設工作在10050端口,zabbix-java-ggateway預設工作在10052
修改
zabbix-java-gateway
配置檔案
[[email protected] ~]# grep -Ev '^#|^$' /etc/zabbix/zabbix_java_gateway.conf
LISTEN_PORT=10052
PID_FILE="/var/run/zabbix/zabbix_java.pid"
START_POLLERS=5 #設定啟動多個線程,這裡和server段相同
TIMEOUT=3
#添加以下參數開啟JMX功能
uncomment to enable remote monitoring of the standard JMX objects on the Zabbix Java Gateway itself
JAVA_OPTIONS="$JAVA_OPTIONS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345
-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
修改
zabbix-server
配置檔案
[[email protected] ~]# grep -Ev '^#|^$' /etc/zabbix/zabbix_server.conf
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
SocketDir=/var/run/zabbix
DBName=zabbix
DBUser=zabbix
DBPassword=123.com
JavaGateway=192.168.10.7
JavaGatewayPort=10052
StartJavaPollers=5 #和zabbix-java-gateway的線程一緻
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
重新開機zabbix服務
systemctl restart zabbix-server
systemctl restart zabbix-java-gateway
tomcat添加
catalina-jmx-remote.jar
JMX遠端生命周期偵聽器,沒有必要性,可以添加也可以不添加
要找到對應tomcat版本的catalina-jmx-remote.jar,通路 tomcat各個版本
下載下傳完成以後要放到
tomcat8/lib
wget http://archive.apache.org/dist/tomcat/tomcat-8/v8.5.55/bin/extras/catalina-jmx-remote.jar
mv catalina-jmx-remote.jar /usr/local/tomcat8/lib/
重新開機tomcat
sh tomcat.sh restart
關閉防火牆或者開發端口
[[email protected] ~]# systemctl stop firewalld.service
[[email protected] ~]# setenforce 0
測試
下載下傳cmdline-jmxclient-0.10.3.jar
https://pan.baidu.com/s/1Kg2JAwaenYJhZPdYP9aOGA
提取碼:
f37k
[[email protected] ~]# mv cmdline-jmxclient-0.10.3.jar /usr/local/tomcat8/
[[email protected] ~]# java -jar /usr/local/tomcat8/cmdline-jmxclient-0.10.3.jar - 127.0.0.1:12345 java.lang:type=Memory HeapMemoryUsage
06/21/2020 17:51:39 +0800 org.archive.jmx.Client HeapMemoryUsage:
committed: 28061696
init: 16777216
max: 249364480
used: 19246760
zabbix-web界面添加主機
我這裡zabbix-java-gateway和zabbix-server在一台主機,可以分開,分開的話就填寫對應的ip即可
添加模闆
稍等一會兒,JMX就會綠起來
監控效果