zabbix監控jvm內存


Zabbix自帶監控系統的內存利用率和CPU利用率,但是系統內存並不能反應JVM內存情況

在本地我們可以通過jconsole或者jvisualvm進行監控jvm內存情況

不過正是環境一般都是部署在linux上,且不是桌面版,這個時候想監控,可以通過zabbix集成jmx實現

jvisualvm使用方式,參考 https://www.cnblogs.com/gossip/p/6141941.html

效果:

這是使用的jdk自帶的監控工具

當然,如果需要遠程監控的話,需要在catalina文件設置下啟動參數,這里不做賬號密碼限定,所以authenticate=false

windows修改catalina.bat

通過set設置,引用變量使用 %%
在 rem ----- Execute The Requested Command --------------------------------------- 下面添加
set JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=127.0.0.1 -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false

linux修改catalina.sh

不用添加set,引用變量使用 $
在 rem ----- Execute The Requested Command --------------------------------------- 下面添加
CATALINA_OPTS=”$CATALINA_OPTS
-Dcom.sun.management.jmxremote
-Djava.rmi.server.hostname=127.0.0.1
-Dcom.sun.management.jmxremote.port=12345
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false

java直接運行jar包

java -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=127.0.0.1 -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -jar chy.jar

 之后就可以通過遠程連接並且監控jvm詳情了,如上效果圖

linux測試

需要下載cmdline-jmxclient-0.10.3.jar

通過上述方式啟動之后如下

再通過命令進行查看,比如查看非堆內存使用情況

java -jar cmdline-jmxclient-0.10.3.jar - 39.105.97.50:12345 java.lang:type=Memory NonHeapMemoryUsage

 

如果是外網服務,有可能連接不上

因為啟動,默認會開啟隨機的端口號(端口配置規則需要修改)

可以參考https://blog.csdn.net/qq_38078607/article/details/80459167

zabbix的jmx監測

具體查看官方文檔

https://www.zabbix.com/documentation/4.2/manual/config/items/itemtypes/jmx_monitoring

zabbix可以集成jmx,用於監控jvm內存情況集成jmx步驟邏輯

  1. 在zabbix服務器上安裝配置zabbix-java-gateway,並且配置相關參數。
  2. 配置tomcat服務器,JMX服務相關參數,上傳依賴包(如果是jar包運行,直接添加參數即可)
  3. zabbix web端添加監控
  4. 啟動tomcat服務,查看zabbix web端監控運行狀態,排錯(java -jar運行)
  5. 自定義圖形和監控項

1.安裝zabbix-java-gateway並配置

安裝

yum -y install zabbix-java-gateway

配置

grep "^[A-Z]" /etc/zabbix/zabbix_java_gateway.conf
LISTEN_IP="0.0.0.0"        #監聽本機所有ip
LISTEN_PORT=10052            #在10052端口提供服務
PID_FILE="/var/run/zabbix/zabbix_java.pid"
START_POLLERS=5

啟動服務

systemctl start zabbix-java-gateway

 

配置zabbix-server

  grep "^[A-Z]" /etc/zabbix/zabbix_server.conf|grep Java

JavaGateway=127.0.0.1     #JavaGateway所在服務器的IP
JavaGatewayPort=10052     #JavaGateway的默認端口
StartJavaPollers=5         #JVM進行監控輪詢實例數,默認是0

 重啟zabbix-server

systemctl restart zabbix-server 

 

 2.配置tomcat服務器

 由於我是直接jar包運行,直接通過啟動參數設置即可,如果是tomcat的話,修改catalina文件即可

java -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=39.105.97.50 -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -jar tale-latest.jar --server.port=80

 3.zabbix web端添加監控

配置jmx接口 配置→主機→創建主機

添加鏈接模板 template app apache tomcat jmx和template APP generic java jmx

 

 

4.查看zabbix web端監控運行狀態 

添加完畢,查看jmx是否是綠色

 

 如果是紅色,查看具體原因,可能是端口暴露問題,或者是啟動的參數設置問題

5.自定義圖形和監控項

jmx為綠色,標志着添加成功,之后自定義圖形,設置監控項即可

第一步創建圖形

 

第二步,添加你需要的監控項即可

這里選取四項,查看效果圖

 ok,其余的配置再摸索,監控多個java進程的jvm還須研究


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM