1. 程式人生 > >Zabbix監控Tomcat

Zabbix監控Tomcat

簡介

從Zabbix 2.0版本開始,以Zabbix守護程序的形式原生支援監控JMX程式出現了,它被稱為Zabbix Java gateway。Zabbix gateway 是用Java語言寫成。要查得一臺主機特定的JMX計數器值,Zabbix server向Zabbix Java gateway傳送請求,後者使用JMX管理API 去請求遠端的有關應用。應用不需要額外安裝軟體,只需要啟動時在命令列指定-Dcom.sun.management.jmxremote 即可。

Java gateway接受來自Zabbix Server或Agent的傳入連線,且只能用作“被動proxy”。 與Zabbix proxy相反,它也可以從Zabbix agent呼叫(Zabbix agent不能被連結)。 每個Java gateway的訪問都直接在Zabbix sever或 proxy配置檔案中配置,因此每個Zabbix sever或Zabbix agent只能配置一個Java gateway。 如果一臺主機具 JMX agent 型別的監控項和和其他型別的監控項,則只將JMX agent監控項傳遞到Java gateway進行檢索。

當在Java gateway上的一個監控項值更新了,Zabbix server或agent將連線Java gateway請求查詢該值,Java gateway會依次retrieves並傳回到server或proxy。 同樣的,Java gateway不會快取任何值.

Zabbix sever或proxy具有連線到Java gateway特定型別的程序,由 START_POLLERS 選項控制。 在內部,Java gateway啟動多個由該選項控制的執行緒。 在sever端,如果連線超過 Timeout 秒,則將終止,但Java gateway可能仍忙於從JMX計數器檢索值。 為了解決這個問題,由於Zabbix 2.0.15,Zabbix 2.2.10和Zabbix 2.4.5在Java gateway中有TIMEOUT選項,允許為JMX網路操作設定超時。

Zabbix server或agent將盡可能地將請求集中到一個JMX目標(受監控項間隔影響),並將它們傳送到單一連線中的Java gateway,以獲得更好的效能。 建議 StartJavaPollers 小於或等於 START_POLLERS ,否則可能導致當連線Java gateway時而Java gateway沒有多餘的執行緒進行處理

安裝Tomcat8.5

yum install java-1.8.0-openjdk #安裝jdk
cd /usr/local/src
wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.5.34/bin/apache-tomcat-8.5.34.tar.gz
 #官網找的tar包地址
tar xf apache-tomcat-8.5.34.tar.gz
mv apache-tomcat-8.5.34 /usr/local/tomcat-8.5
ln -sv /usr/local/tomcat-8.5 /usr/local/tomcat
PATH=/usr/local/tomcat/bin:$PATH

啟動Tomcat

catalina.sh start

可以看到8080埠起了 在這裡插入圖片描述 在這裡插入圖片描述 能訪問說明沒問題

配置JMX

修改tomcat配置檔案/usr/local/tomcat/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.253.128" #tomcat主機自己的IP地址, 不要寫zabbix伺服器的地址

重啟tomcat

catalina.sh stop
catalina.sh start

Java gateway安裝配置

安裝Java gateway

如果是編譯安裝的話需要開啟–enable-java以支援jmx監控 如果yum安裝的話可以使用下面命令

yum install zabbix-java-gateway 

配置Java gateway

修改配置檔案/etc/zabbix/zabbix_java_gateway.conf

[[email protected] ~]# grep "^[a-Z]" /etc/zabbix/zabbix_java_gateway.conf
LISTEN_IP="0.0.0.0"   #監聽的地址
LISTEN_PORT=10052  #預設監聽10052
PID_FILE="/var/run/zabbix/zabbix_java.pid"
START_POLLERS=20  #啟動多少個程序輪訓java, 要和java 應用保持一定關係
TIMEOUT=30  #這個時長最好稍微長一些,因為java應用是比較慢的,如果超時時間太短,會導致資料獲取不到

啟動Java gateway

systemctl  start zabbix-java-gateway

在這裡插入圖片描述

修改zabbix server配置檔案

修改zabbix server配置檔案/etc/zabbix/zabbix_server.conf

JavaGateway=192.168.253.128 #指定java gateway的地址
JavaGatewayPort=10052 #指定java gateway的伺服器監聽埠, 如果是預設埠可以不寫
StartJavaPollers=20 #啟動多少個程序去輪訓 java gateway, 要和java gateway的配置一致
Timeout=30#如果時間太短,有些資料會獲取不到,因為java處理比較慢

重啟zabbix server

systemctl  restart zabbix-server 

網頁端配置Java gateway

新增Java gateway介面 在這裡插入圖片描述 關聯一個tomcat模版上去 在這裡插入圖片描述