zabbix監控jvm內存

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

在本地咱們能夠經過jconsole或者jvisualvm進行監控jvm內存狀況java

不過正是環境通常都是部署在linux上,且不是桌面版,這個時候想監控,能夠經過zabbix集成jmx實現linux

jvisualvm使用方式,參考 http://www.javashuo.com/article/p-zelwzldl-gs.htmlweb

效果:apache

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

固然,若是須要遠程監控的話,須要在catalina文件設置下啓動參數,這裏不作帳號密碼限定,因此authenticate=falsetomcat

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.jarapp

經過上述方式啓動以後以下jvm

再經過命令進行查看,好比查看非堆內存使用狀況

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

 

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還須研究

相關文章
相關標籤/搜索