zoukankan      html  css  js  c++  java
  • 12 Zabbix Item类型之Zabbix JMX类型

     点击返回:自学Zabbix之路

    12 Zabbix Item类型之Zabbix JMX类型

    JMX 全称是Java Management Extensions,即Java管理扩展。Java程序会开放一些端口,用来获取运行状况。
     从JAVA 5开始,JDK提供了一些JVM检测的API,这就是有名的java.lang.management 包,包里提供了下面9个MXBean:     

    ClassLoadingMXBean 用于 Java 虚拟机的类加载系统的管理接口。  
    CompilationMXBean 用于 Java 虚拟机的编译系统的管理接口。 
    GarbageCollectorMXBean 用于 Java 虚拟机的垃圾回收的管理接口。 
    MemoryManagerMXBean 内存管理器的管理接口。 
    MemoryMXBean Java 虚拟机的内存系统的管理接口。 
    MemoryPoolMXBean 内存池的管理接口。 
    OperatingSystemMXBean 用于操作系统的管理接口。Java 虚拟机在此操作系统上运行。 
    RuntimeMXBean Java 虚拟机的运行时系统的管理接口。 
    ThreadMXBean Java 虚拟机线程系统的管理接口。

         在Zabbix 1.8以前,只能使用Zapcat来监控JMX,并需要修改源代码来支持,非常麻烦。另一种方法是使用jmx-cmd-client,它的作用是从命令行去获取JMX信息,可以在它的上层包装一个程序,用来获取JMX数据。 
         从Zabbix2.0开始,内置了监控JMX的功能,叫做"Zabbix Java Gateway ",在Zabbix Server和Zabbix Proxy上会启动名为"Zabbix Java Gateway "的进程,当需要获取JMX数据时,Zabbix Server会"问 "JMX Gateway,然后JMX Gateway 根据JMX管理API去查询需要的数据。在使用时,Java程序不需要在代码中新增任何东西,只需要在启动时加上一些JVM参数,使得它可以支持使用监控端口监控JMX。

    java 
    -Dcom.sun.management.jmxremote 
    -Dcom.sun.management.jmxremote.port=12345 
    -Dcom.sun.management.jmxremote.authenticate=false 
    -Dcom.sun.management.jmxremote.ssl=false 
    -jar /usr/share/doc/openjdk-6-jre-headless/demo/jfc/Notepad/Notepad.jar

         它启动了一个本地非常简单的Java程序,使用12345端口,具体的jar依据情况各自不同,ssl=false说明它不需要身份验证。 

        下面介绍监控JMX原理,配置。

    1    工作原理:
         
         zabbixserver想知道一台主机上的特定的JMX值时,它向ZabbixJavagateway询问,而ZabbixJavagateway使用“JMXmanagementAPI”去查询特定的应用程序,而前提是应用程序这端在开启时需要“-Dcom.sun.management.jmxremote”参数来开启JMX查询就行了。
         Zabbixserver有一个特殊的进程用来连接Javagateway叫StartJavaPollers;Javagateway通过配置文件中START_POLLERS参数设置启动多个线程,在zabbix服务器这边如果一个连接所用时间超过Timeout,将会被中断,但是Javagateway将继续从JMXcounter取数据。所以StartJavaPollers设置的值要小于等于START_POLLERS设置的值。ZabbixJavagateway就相当于一个代理。

    2 安装Javagateway
       本机使用zabbix server版本为2.2.2

       2.1 安装jdk

    [root@dev-vhost011 ~]# yum install gongsi-jdk(公司打包过的jdk)
    [root@dev-vhost011 ~]# java -version
    java version "1.8.0_60"
    Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
    Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)

       2.2 下载安装zabbix-java-gateway 

    [root@dev-vhost011 ~]# wget http://repo.zabbix.com/zabbix/2.2/rhel/6/x86_64/zabbix-java-gateway-2.2.2-1.el6.x86_64.rpm
    [root@dev-vhost011 ~]# yum install zabbix-java-gateway-2.2.2-1.el6.x86_64.rpm

       2.3 修改/etc/zabbix/zabbix_java_gateway.conf 配置 

    LISTEN_IP="0.0.0.0"  #可以不配置,采用默认值即可 
    LISTEN_PORT=10052  #可以不配置,采用默认值即可 
    PID_FILE="/var/run/zabbix/zabbix_java.pid" #该项必须配置,保存pid文件的位置 
    START_POLLERS=5 #必须配置,启动的进出数

       2.4 修改 /etc/zabbix/ zabbix_server.conf  配置 ( 如果服务端是zabbix-proxy,同理配置即可) 

    JavaGateway=127.0.0.1 #指定Java gateway的ip地址或主机名,由于Java gateway是搭建在zabbix server所在的主机上所以可用127.0.0.1; 
    JavaGatewayPort=10052 #Java gateway监听的端口号 
    StartJavaPollers=5 #设定连接java gateway 的进程数,当设置为0时表示不具有抓取java信息的能力

    3. 启动zabbix-java-gateway 

    [root@dev-vhost011 ~]# /etc/init.d/zabbix-server start
    [root@dev-vhost011 ~]# /etc/init.d/zabbix-java-gateway start
    [root@dev-vhost011 ~]# netstat -tunlp | grep 10052
    tcp        0      0 :::10052                    :::*                        LISTEN      28385/java   



    4 在zabbix-agent客户端上加入相关参数启动java

    java 
    -Djava.rmi.server.hostname=10.59.72.51 
    -Dcom.sun.management.jmxremote 
    -Dcom.sun.management.jmxremote.port=12345 
    -Dcom.sun.management.jmxremote.authenticate=false 
    -Dcom.sun.management.jmxremote.ssl=false 
    -jar /usr/share/doc/openjdk-6-jre-headless/demo/jfc/Notepad/Notepad.jar

    如遇报错:JMX: java.rmi.ConnectException: Connection refused to host: 127.0.0.1; nested excepti
    需要在/etc/hosts 指定
    127.0.0.1   dev-vhost012

    5 在zabbix界面上配置客户端jmx 接口 
     

    正常会显示绿色状态 
     

  • 相关阅读:
    「Luogu2397」 yyy loves Maths VI (mode)
    「Luogu2014」 选课
    「Luogu2972」 [USACO10HOL]岩石和树木Rocks and Trees
    中国剩余定理
    点双连通分量
    Miller_Rabin大质数检验
    manachaer算法
    Kruskal重构树
    世界,你好!
    [Luogu P1450] [HAOI2008]硬币购物 背包DP+容斥
  • 原文地址:https://www.cnblogs.com/yaoyaojcy/p/8213240.html
Copyright © 2011-2022 走看看