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
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
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」
以後就能夠經過遠程鏈接而且監控jvm詳情了,如上效果圖服務器
須要下載cmdline-jmxclient-0.10.3.jar包app
經過上述方式啓動以後以下jvm
再經過命令進行查看,好比查看非堆內存使用狀況
java -jar cmdline-jmxclient-0.10.3.jar - 39.105.97.50:12345 java.lang:type=Memory NonHeapMemoryUsage
具體查看官方文檔
https://www.zabbix.com/documentation/4.2/manual/config/items/itemtypes/jmx_monitoring
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
grep "^[A-Z]" /etc/zabbix/zabbix_server.conf|grep Java
JavaGateway=127.0.0.1 #JavaGateway所在服務器的IP JavaGatewayPort=10052 #JavaGateway的默認端口 StartJavaPollers=5 #JVM進行監控輪詢實例數,默認是0
systemctl restart zabbix-server
因爲我是直接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
配置jmx接口 配置→主機→建立主機
添加連接模板 template app apache tomcat jmx和template APP generic java jmx
添加完畢,查看jmx是不是綠色
若是是紅色,查看具體緣由,多是端口暴露問題,或者是啓動的參數設置問題
jmx爲綠色,標誌着添加成功,以後自定義圖形,設置監控項便可
第一步建立圖形
第二步,添加你須要的監控項便可
這裏選取四項,查看效果圖
ok,其他的配置再摸索,監控多個java進程的jvm還須研究