Zabbix實現對Tomcat監控
一、zabbix部署jmx監控tomcat
zabbix提供了一個java gateway的應用去監控jmx(Java Management Extensions,即Java管理擴充套件)是一個為應用程式、裝置、系統等植入管理功能的框架。JMX可以跨越一系列異構作業系統平臺、系統體系結構和網路傳輸協議,靈活的開發無縫整合的系統、網路和服務管理應用。
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沒有多餘的執行緒進行處理。
二、具體部署
參考連結:https://www.zabbix.com/documentation/3.4/zh/manual/concepts/java
zabbix agent端:
1、下載、安裝JDK
[[email protected] ~]# rpm -ivh jdk-8u121-linux-x64.rpm
[[email protected] ~]# java -version ##檢視JDK版本
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
2、配置tomcat、JMX
[[email protected] ~]# tar zxf apache-tomcat-7.0.90.tar.gz -C /usr/local/
[[email protected] ~]# cd /usr/local/
[[email protected] local]# ln -s apache-tomcat-7.0.90/ tomcat
[[email protected] local]# cd tomcat/bin/
[[email protected] bin]# vim catalina.sh ##配置tomcat遠端埠、加密
107 CATALINA_OPTS='-Dcom.sun.management.jmxremote
108 -Dcom.sun.management.jmxremote.port=8888
109 -Dcom.sun.management.jmxremote.ssl=false
110 -Dcom.sun.management.jmxremote.authenticate=false'
[[email protected] bin]# ./startup.sh
- 檢視埠
- 測試:訪問http://172.25.51.12:8080
zabbix server:
1、下載、安裝java-gateway
[[email protected] ~]# yum install -y zabbix-java-gateway-3.4.6-1.el7.x86_64.rpm
2、配置java-gateway
[[email protected] ~]# vim /etc/zabbix/zabbix_server.conf
262 JavaGateway=172.25.51.11 #指定java gateway的地址
270 JavaGatewayPort=10052 #指定java gateway的伺服器監聽埠, 如果是預設埠可以不寫
278 StartJavaPollers=5 #啟動多少個程序去輪訓 java gateway, 要和java gateway的配置一致
[[email protected] ~]# systemctl start zabbix-java-gateway
[[email protected] ~]# systemctl restart zabbix-server
- 檢視埠