天天看點

zabbix4.0監控tomcat簡述

簡述

tomcat需要jdk(java)依賴,zabbix有獨立的zabbix-java-gateway監控java

程式;監控tomcat流程如下:

zabbix4.0監控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即可

zabbix4.0監控tomcat簡述

添加模闆

zabbix4.0監控tomcat簡述

稍等一會兒,JMX就會綠起來

zabbix4.0監控tomcat簡述

監控效果

zabbix4.0監控tomcat簡述