欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

Zabbix监控多个JVM进程的方法

程序员文章站 2022-04-06 20:18:58
一、场景说明:     我们这边的环境用的是微服务,每个程序都是有单独的进程及单独的端口号,但用jps查询出来的结果有些还会有重名的情况,所以某些脚本不太适用本场景; 二...

一、场景说明:

    我们这边的环境用的是微服务,每个程序都是有单独的进程及单独的端口号,但用jps查询出来的结果有些还会有重名的情况,所以某些脚本不太适用本场景;

二、需求说明:

      需使用zabbix-server监控每个agent上的jvm进程(监控项具体在模板中展示)

三、准备环境:

      1.jvm.py脚本(非本人原创,从github上直接copy的,此处附上github地址,可直接去目标地址查看相关说明)

      2.https://github.com/qiueer/zabbix/blob/master/tomcat/usage.txt(zabbix/tomcat/{jvm.py|qiueer-template jmx generic.xml}模板和脚本地址)

      3.jdk-8u201-linux-x64.tar.gz

      4.iptables配置或关闭

四、正式安装

    1.在各个agent安装jdk,且配置环境变量(首先上传至指定目录下), 每个agent都如下操作。

~]# tar zxvf jdk-8u201-linux-x64.tar.gz
~]# vim /etc/profile                       // 增加以下内容
  #java环境变量
  export java_home=/usr/local/jdk1.8.0_201
  export jre_home=${java_home}/jre
  export classpath=.:${java_home}/lib:${jre_home}/lib:$classpath
  export java_path=${java_home}/bin:${jre_home}/bin
  export path=$path:${java_path}
~]# source /etc/profile
~]# ln -s /usr/local/jdk1.8.0_201/bin/java /bin/java       // 如果不做此链接,则无法获取到jvm些许信息

          2.上传cmdline与jvm.py到指定目录下测试(每个agent都需这么操作)

zabbix_agentd.d]# pwd
  /etc/zabbix/zabbix_agentd.d
zabbix_agentd.d]# mkdir script
script]# ll
  -rw-r--r-- 1 wenkai person 20124 sep 10 18:55 cmdline-jmxclient-0.10.3.jar   // 上传到/etc/zabbix/zabbix_agentd.d/script目录
  -rw-r-xr-x 1 root  root  13941 sep 10 18:57 jvm.py
script]# python jvm.py --list                           // 如果可查到json格式的数据则说明脚本可用
script]# python jvm.py -b 'java.lang:type=memory' -k 'heapmemoryusage.committed' -p 30497
1020067840

    3.配置web界面模板,将qiueer-template jmx generic.xml模板下载到本地后导入到zabbix中形成新的模板,模板中配有自动发现规则及各个监控项以及触发器;

    4.当配置完成后等一段时间即可发现被监控主机上的数据,如下....

注意:模板中有些监控项并不适用我们的服务,此处可以停用。

 Zabbix监控多个JVM进程的方法

Zabbix监控多个JVM进程的方法

总结

以上所述是小编给大家介绍的zabbix监控多个jvm进程的方法,希望对大家有所帮助