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还须研究