安裝 JMX 管理 Tomcat 9 並透過 Zabbix 4 監控
最近因為某些事情要嘗試利用 Zabbix
去監控多個硬體和虛擬機,並針對監控的內容抓取寫進資料庫的資料來做一些像是 Line
的訊息推撥,而當中也想到 Zabbix
也可以使用 zabbix-java-gateway
去監控像 tomcat
這樣的資源,所以就來安裝玩看看,以下的步驟會分為 zabbix server
端和 tomcat client
的方式。
Note
裡面有些相關的port
防火牆有設定的話記得要開啟。 Zabbix Server
環境
- Cent OS 7
- OpenJDK 1.8.0_191
事前已準備(略過安裝流程)
- zabbix 4.0.3
安裝 zabbix-java-gateway
package download install
- 前往官方 下載 source 包
- 安裝 (使用編譯安裝編譯時要加上
--enable-java
)
tar -xzvf zabbix-4.0.3.tar.gz cd zabbix-4.0.3 ./configure --prefix=/usr/local/zabbix_java_gateway --enable-java make make install
npm install
- yum install package
yum install zabbix-java-gateway-4.0.3-1.el7.x86_64.rpm
文件配置
- 修改
zabbix_java_gateway.conf
設定
vim /etc/zabbix/zabbix_java_gateway.conf
- 使用設定檔內以下幾個基本參數
LISTEN_IP="0.0.0.0"
LISTEN_PORT=10052
PID_FILE="/var/run/zabbix/zabbix_java.pid"
START_POLLERS=5
- 重啟
zabbix-java-gateway
systemctl restart zabbix-java-gateway
- 修改
zabbix_server.conf
設定
vim /etc/zabbix/zabbix_server.conf
- 修改設定內參數,而最重要的
StartJavaPollers
探測器一定要打開並且不要使用預設值0
,這邊範例使用5
,不然Zabbix Server
的網頁會因為你沒打開他不會去要東西而不會亮綠燈,這也是我搞了好久才發現的...
JavaGateway=172.16.7.14 # your zabbix server IP
LISTEN_PORT=10052 # default setting port
StartJavaPollers=5 # default is zero
- 重啟
zabbix-server
systemctl restart zabbix-server
Tomcat Client
環境
- Cent OS 7
- OpenJDK 1.8.0_191
事前已準備(略過安裝流程)
- Tomcat 9
- zabbix agent
重要事項
網路資源較少提到其實要先下載兩個
jar
檔來讓zabbix-java-gateway
來呼叫從而利用jar
檔中的method
來取得需要監控的項目catalina-jmx-remote.jar
點我下載,這個要去官網對應的tomcat
版本的底下的bin
拉下來在丟到你的tomcat lib path
,他的檔案透過網頁方式去搜尋到對應的版本然後選擇bin/extras
後才會看到cmdline-jmxclient-0.10.3.jar
點我下載,目前已經有0.10.4
version,多了一個attributes command
- 將上述兩包
jar
檔放入tomcat lib
內
文件配置
- 修改
tomact
的catalina.sh
設定上加上JMX
的參數在CATALINA_OPTS
,我將讓zabbix-java-gateway
可監聽的port
設為12346
# add JMX param
CATALINA_OPTS="$CATALINA_OPTS
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=12346
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Djava.rmi.server.hostname=172.16.4.182" # your tomcat server IP
- 重啟
tomcat
./shutdown.sh
./startup.sh
Zabbix Server Web
login admin
>Configuration
>Hosts
>Create host
Host name
為tomcat IP
,Visiable name
為要在列表顯示的名稱,Groups
我是先選Zabbix servers
,而主要是要加入JMX interfaces
,IP
一樣為tomcat IP
而port
為剛剛所設在catalina.sh
裡的12346
,最後按下update
跳到上面的
Templates
,並在Linked templates
加入Template App Apache Tomcat JMX
以及Template App Generic Java JMX
,然後按下update
回到
Hosts
頁面觀看列表,可以發現Tomcat9
的JMX
亮起了綠燈點進
Tomcat9
的Application
,我們可以看一下基本JMX
到底可以監聽哪些事情,例如Memory
...等等,當然要看更細項的東西可以點選最右邊的items
Future
之後會動手實際放一包有和 DB
連結的 war
,來利用 zabbix
監控整個專案的使用 DB
的情況再來撰寫一篇做記錄。