日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Zabbix3.2.6之通过JMX监控Tomcat

發布時間:2025/3/17 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Zabbix3.2.6之通过JMX监控Tomcat 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

參考博文:https://blog.51cto.com/wzlinux/1692444

JMX的全稱是Java Management Extensions,即Java管理擴展。Java程序會開放一些端口,用來獲取運行狀況。在Zabbix 1.8以前,只能使用Zapcat來監控JMX,并需要修改源代碼來支持,非常麻煩。另一種方法是使用jmx-cmd-client,他的作用是從命令行去獲取JMX信息,可以在它的上層包裝一個程序,用來獲取JMX數據。
從Zabbix 2.0開始,內置了監控JMX的功能,叫做“Zabbix Java Gateway”,在Zabbix Server和Zabbix Proxy上啟動名為“Zabbix Java Gateway”的進程,當需要獲取JMX數據時,Zabbix Server會“問”JMX Gateway,然后JMX Gateway根據JMX管理API去查詢需要的數據。在使用時,Java程序不需要在代碼中新增任何東西,只需要在啟動的時候加上一些JVM參數,使得它可以支持使用端口監控JMX。
wKiom1loJDSiVsf-AACrrkazRAg707.jpg
一、Server端安裝配置JDK

rpm -ivh jdk-8u45-linux-x64.rpm

vim /etc/profile.d/java.sh

export JAVA_HOME=/usr/java/default
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
系統配置立即生效

source /etc/profile.d/java.sh

查看JAVA版本

java -version

java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)
二、Zabbix Server的編譯
1、編譯zabbix的時候需要添加參數--enable-java
2、備份zabbix_server.conf和zabbix_agentd.conf文件,重新編譯安裝zabbix
cd zabbix-3.2.6

./configure \
--prefix=/usr/local/zabbix \
--sysconfdir=/etc/zabbix \
--enable-server \
--enable-agent \
--with-mysql \
--with-net-snmp \
--with-libcurl \
--with-ssh2 \
--with-openssl \
--enable-java
請自行查閱解決依賴關系。
三、Java gateway的配置
1、修改zabbix_java相關選項
zabbix_java的目錄結構如下

zabbix_java/
├── bin
│ └── zabbix-java-gateway-3.2.6.jar
├── lib
│ ├── android-json-4.3_r3.1.jar
│ ├── logback-classic-0.9.27.jar
│ ├── logback-console.xml
│ ├── logback-core-0.9.27.jar
│ ├── logback.xml
│ └── slf4j-api-1.6.1.jar
├── settings.sh
├── shutdown.sh
└── startup.sh
設定java gateway的監聽端口以及進程個數

cd /usr/local/zabbix/sbin/zabbix_java/

vim settings.sh

LISTEN_IP="0.0.0.0"
LISTEN_PORT=10052
PID_FILE="/tmp/zabbix_java.pid"
START_POLLERS=5
其中 LISTEN_PORT 和 LISTEN_IP 可以不配置,zabbix_java 會采用默認值。但是 PID_FILE 和 START_POLLERS 必須配置,尤其主意 START_POLLERS,若不配置 zabbix_java 依舊可以啟動但是是不工作的。
2、修改zabbix_server文件
既然java gateway運行了,你要告訴zabbix server去×××java gateway,在配置文件中開啟如下幾項參數。

JavaGateway=127.0.0.1
JavaGatewayPort=10052 #和上面的LISTEN_PORT一樣
StartJavaPollers=3 #這個數值要小于上面的START_POLLERS
這三項都需要配置,其中StartJavaPollers會被視為開關性質的參數。0或者未配置將被系統認為不具有Java信息抓取能力。這點在Zabbix JMX Monitoring Wiki中未提及,但是實際效果就是這樣。同時Zabbix Proxy的配置文件解析中也有介紹此參數的含義。
3、啟動zabbix_java
找到zabbix_java目錄路徑,然后執行命令./startup.sh,并重啟zabbix server。

自此Server端已經配置完成,下面配置Agent端的設定。

四、Agent端配置
1、修改tomcat/bin/catalina.sh文件
修改catalina.sh文件,添加
CATALINA_OPTS="-Xms1024m -Xmx1024m
-XX:NewRatio=4
-XX:PermSize=192m
-XX:MaxPermSize=192m
-Xss256k
-XX:SurvivorRatio=4
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.authenticate=false #不進行驗證
-Dcom.sun.management.jmxremote.port=12345 #jmx遠程監控端口
-Dcom.sun.management.jmxremote.ssl=false
-Djava.rmi.server.hostname=10.0.1.13" #10.0.0.15是Agent的本地IP
就這種方式而言,需要注意的是catalina.sh中提供的默認變量名JAVA_OPTS和CATALINA_OPTS。由于JAVA_OPTS所添加的參數會在tomcat開啟和關閉時都運行,所以如果你把 -Dcom.sun.management.jmxremote.port=12345寫在JAVA_OPTS中,就會在關閉tomcat時出現如下錯誤,從而無法關閉。
Error: Exception thrown by the agent : java.rmi.server.ExportException : Port
already in use: 12345;nested exception is:
java.net.BindException: Address already in use: JVM_Bind
而CATALINA_OPTS只會在開啟tomcat的時候運行,所以應該將這些配置寫在CATALINA_OPTS中。

五、服務器端自定義監控項
Java gateway已經運行,Zabbix Server也知道去×××它,Agent Tomcat在啟動的時候也支持了JMX遠程監控,那下面我們就改進行一下WEB頁面的設定了。
1、添加主機的地方填寫如下
wKioL1lnOoORA0nbAAD4IUKDHkE543.jpg
wKiom1lnOoORR1zKAAC6xTGxl9w527.jpg
2、我們切換到Items可以自定義要監控的key
wKiom1lnOqexFqdwAADuk1D9B3U919.jpg
3、配置OK狀態
wKioL1lnPMDjEKz9AACm_FQ_M8M880.jpg
4、導入自定義模板
zabbix自帶的JMX監控tomcat的參數比較少,而且感覺監控的數值意義不是很大,我再附件上傳了我使用的自定義JVM一些參數的模板,大家可以直接導入使用,效果如下。
wKioL1lnQeODBwcjAAEzIMH2nBM687.jpg
wKioL1lnQebD-s0xAAIWccJqqOc571.jpg

官方還有很多key我們沒有設定,可以查看下面的參考官方地址。然后自定義更多的監控參數。

參考文檔:
https://www.zabbix.com/documentation/3.2/manual/config/items/itemtypes/jmx_monitoring
https://www.zabbix.com/documentation/3.2/manual/concepts/java
http://tomcat.apache.org/tomcat-7.0-doc/monitoring.html
如果想詳細理解,搭建請看上面的官方文檔講解。

轉載于:https://blog.51cto.com/linux10000/2063514

總結

以上是生活随笔為你收集整理的Zabbix3.2.6之通过JMX监控Tomcat的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。