Zabbix监控多个JVM进程

1、场景说明:

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

2、需求说明:

      需使用Zabbix-server监控每一个Agent上的jvm进程(监控项具体在模板中展现)python

3、准备环境:

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

      2.https://github.com/qiueer/zabbix/blob/master/Tomcat/usage.txt(zabbix/Tomcat/{jvm.py|Qiueer-Template JMX Generic.xml}模板和脚本地址)git

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

      4.iptables配置或关闭web

4、正式安装

    1.在各个Agent安装JDK,且配置环境变量(首先上传至指定目录下), 每一个Agent都以下操做。vim

    ~]# 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都需这么操做)bash

    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中造成新的模板,模板中配有自动发现规则及各个监控项以及触发器;jvm

    4.当配置完成后等一段时间便可发现被监控主机上的数据,以下....微服务

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

相关文章
相关标签/搜索