zoukankan      html  css  js  c++  java
  • zabbix实现对tomcat的监控

    zabbix实现对tomcat的监控


    工作原理
    比如:当Zabbix-Server需要知道java应用程序的某项性能的时候,会启动自身的一个Zabbix-JavaPollers进程去连接Zabbix-JavaGateway请求数据,而ZabbixJavagateway收到请求后使用“JMXmanagementAPI”去查询特定的应用程序,而前提是应用程序这端在开启时需要“-Dcom.sun.management.jmxremote”参数来开启JMX远程查询就行。Java程序会启动自身的一个简单的小程序端口12345向Zabbix-JavaGateway提供请求数据。
     
    开始监控部署  
    从上面的原理图中我们可以看出,配置Zabbix监控Java应用程序的关键点在于:配置Zabbix-JavaGateway、让Zabbix-Server能够连接Zabbix-JavaGateway、Tomcat开启JVM远程监控功能等


    环境说明
    安装方法:yum安装
    Zabbix版本: Zabbix-3.0.4
    JDK版本: 1.8.0.102
    zabbix-server操作系统: CentOS 7.2 X86_64
    zabbix-agent操作系统: CentOS 6.5 X86_64
    tomcat:8.0.26


    注意:
    如果是编译安装zabbix server需要加上--enable-java以支持jmx监控,如果之前的zabbix server没加,那么请重新编译安装,参考编译参数
    ./configure --prefix=/user/local/zabbix --enable-server --enable-agent --enable-java --enable-ipv6 --with-mysql=/application/mysql-5.5.49/bin/mysql_config  --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi --with-unixodbc --with-openssl


    1.配置zabbix-agent客户端Tomcat JMX,即tomcat的远程调用脚本
    配置jmx编辑catalina.sh,加入如下配置


    vim /usr/local/tomcat/bin/catalina.sh


    CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote #开启远程监控
      -Dcom.sun.management.jmxremote.port=12345 #远程监控端口
      -Dcom.sun.management.jmxremote.ssl=false #远程ssl验证为false
      -Dcom.sun.management.jmxremote.authenticate=false #关闭权限认证
      -Djava.rmi.server.hostname=192.168.3.18" #部署了tomcat的主机地址


    ===
    CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote
      -Dcom.sun.management.jmxremote.port=12345
      -Dcom.sun.management.jmxremote.ssl=false
      -Dcom.sun.management.jmxremote.authenticate=false
      -Djava.rmi.server.hostname=192.168.3.18" 
    ===


    重新启动Tomcat
    /usr/local/tomcat/bin/shutdown.sh
    /usr/local/tomcat/bin/startup.sh


    验证是否启动jmx监听成功
    lsof -i :12345
    COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
    java    3509 root   20u  IPv6  21949      0t0  TCP *:italk (LISTEN)


    通过第三方工具测试:
    方法一:使用windowsJava工具JConsole测试,到java安装目录D:Javajdk1.8.0_102in
    双击运行jconsole.exe


    方法二:
    1.在tomcat下载页面Extra类别中下载 JMX Remote jar 二进制包。放在 tomcat/lib 下面.
    下载地址:http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.0.37/bin/extras/catalina-jmx-remote.jar


    2.下载jmxcmd.jar文件测试是否恩能够取得数据


    #wget http://nchc.dl.sourceforge.net/project/jmxcmd/jmxcmd.jar
    测试有数据则表示成功
    命令格式:
    java -jar jmxcmd.jar - yourip:jmx端java.lang:type=MemoryNonHeapMemoryUsage


    # java -jar jmxcmd.jar - 192.168.3.18:12345 java.lang:type=Memory NonHeapMemoryUsage
    09/21/2016 20:25:45 +0800 de.layereight.jmxcmd.Client NonHeapMemoryUsage: 
    committed: 72876032
    init: 2555904
    max: -1
    used: 71414864


    # java -jar jmxcmd.jar - 192.168.3.18:12346 java.lang:type=Memory NonHeapMemoryUsage
    09/21/2016 20:25:59 +0800 de.layereight.jmxcmd.Client NonHeapMemoryUsage: 
    committed: 101371904
    init: 2555904
    max: -1
    used: 96162168


    2.zabbix server配置

    首先我们需要了解一下他们的对应关系,zabbix_server开启java poller, zabbx_java开启JavaGateway,端口为10052,Tomcat JMX开启12345提供性能数据。
    数据获取:java poller<-->JavaGateway:10052<-->Tomcat:12345.
    Java支持
    编译安装zabbix server需要加上--enable-java以支持jmx监控,如果之前的zabbix server没加,那么请重新编译安装, 分享下我的安装参数:


    ①安装jdk1.8
    rpm -ivh jdk-8u102-linux-x64.rpm 
    验证jdk是否安装成功


    java -version
    java version "1.8.0_102"
    Java(TM) SE Runtime Environment (build 1.8.0_102-b14)
    Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode)


    ②安装zabbix-java-gateway
    下载地址
    http://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/6/x86_64/zabbix-java-gateway-3.0.4-1.el6.x86_64.rpm


    rpm -ivh zabbix-java-gateway-3.0.4-1.el6.x86_64.rpm


    启动zabbix_java


    /etc/init.d/zabbix-java-gateway


    配置Zabbix Java GateWay
    配置文件: /etc/zabbix/zabbix_java_gateway.conf


    支持的配置选项为:
    名称选项说明
    LISTEN_IP指定bind的地址,默认值为0.0.0.0
    LISTEN_PORT指定bind的端口,默认值为10052
    PID_FILE指定PID文件存放目录,默认为 /tmp/zabbix_java.pid
    START_POLLERS指定启动多少进程, 默认为5
    Zabbix Java GateWay启动后,也需要在Zabbix Server/Proxy上进行配置,对应的配置文件选项为:
    名称选项说明
    JavaGateway指定Zabbix Java GateWay地址
    JavaGatewayPort指定Zabbix Java GateWay端口,默认为10052
    StartJavaPollers指定启动时启动的Java Pollers数量
    注意:Zabbix Server/Proxy中的StartJavaPollers要小于等于Zabbix Java GateWay配置文件中的START_POLLERS


    #zabbix_java_gateway配置文件里有默认端口等设置,这里我们保持默认即可


    设置成开机启动:
    systemctl enable zabbix-java-gateway


    验证是否启动成功
    ss -tunlp|grep 10052
    tcp    LISTEN     0      50       :::10052                :::*                   users:(("java",pid=3271,fd=11))


    配置zabbix-server访问gateway
    vim /etc/zabbix/zabbix_server.conf


    JavaGateway=127.0.0.1#gateway地址


    JavaGatewayPort=10052   #监听端口
    StartJavaPollers=5#预启动进程轮训个数


    重启zabbix-server使配置生效
    systemctl restart zabbix-server.service


    3.在zabbix中添加主机和模板开始监控Java

    添加主机



  • 相关阅读:
    sys模块
    反射
    动态导入模块
    类的静态属性
    多态
    继承
    组合
    linux系统各个子目录的内容
    mysql安装
    Docker 数据卷操作
  • 原文地址:https://www.cnblogs.com/reblue520/p/6239700.html
Copyright © 2011-2022 走看看