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

相关文章
相关标签/搜索