Zabbix自带监控系统的内存利用率和CPU利用率,但是系统内存并不能反应JVM内存情况

在本地我们可以通过jconsole或者jvisualvm进行监控jvm内存情况

不过正是环境一般都是部署在linux上,且不是桌面版,这个时候想监控,可以通过zabbix集成jmx实现

jvisualvm使用方式,参考 

这是使用的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

不用添加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

 

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.安装