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 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
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包
之后就可以通過遠程連接並且監控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步驟邏輯
- 在zabbix服務器上安裝配置zabbix-java-gateway,並且配置相關參數。
- 配置tomcat服務器,JMX服務相關參數,上傳依賴包(如果是jar包運行,直接添加參數即可)
- zabbix web端添加監控
- 啟動tomcat服務,查看zabbix web端監控運行狀態,排錯(java -jar運行)
- 自定義圖形和監控項
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還須研究