• zabbix监控tomcat(使用jmx监控,但不使用系统自带模版)


    一,zabbx使用jmx监控tomcat的原理分析

    1.Zabbix-Server找Zabbix-Java-Gateway获取Java数据
    2.Zabbix-Java-Gateway找Java程序(jmx)获取数据
    3.Java程序返回数据给Zabbix-Java-Gateway
    4.Zabbix-Java-Gateway返回数据给Zabbix-Server
    5.Zabbix-Server进行数据展示
     
     
    二、配置JMX监控的步骤:
     
    1.安装Zabbix-Java-Gateway
    2.配置zabbix_java_gateway.conf参数。
    3.配置zabbix-server.conf参数。
    4.Tomcat应用开启JMX协议。
    5.ZabbixWeb配置JMX监控的Java应用。
     
     
    三,具体操作如下:
     
    1,在zabbix_server上安装zabbix-java-gateway
     
    yum install -y zabbix-java-gateway    #如果提示不能安装,请先安装zabbix.repo源,建议安装的zabbix-java-gateway的版本和zabbix其他软件包一致。

    2,安装jdk环境
    cd /usr/local/src
     
    tar -zxvf jdk1.8.0_65.tar.gz 
     
    mv jdk1.8.0_65  /usr/local/
     
    vim /etc/profile.d/java.sh
     
    
    #!/bin/bash
    export JAVA_HOME=/usr/local/jdk1.8.0_65
    export PATH=$JAVA_HOME/bin:$PATH
    export JRE_HOME=/usr/local/jdk1.8.0_65
    export CLASSPATH=/usr/local/jdk1.8.0_65/lib/tools.jar:/usr/local/jdk1.8.0_65/lib/dt.jar
    
     
     
    source /etc/profile 
    

     

    3,修改java-gateway的配置文件(默认java-gateway开启的是10052端口)

    vim /etc/zabbix/zabbix_java_gateway.conf  
    
    更改如下配置:
    
    #监控地址
    LISTEN_IP="0.0.0.0"
     
    #监听端口
    LISTEN_PORT=10052
     
    #进程文件路径
    PID_FILE="/var/run/zabbix/zabbix_java.pid"
     
    #开启的工作线程数
    START_POLLERS=5
     
    
    #超时
      TIMEOUT=3
    

      

    4,重启java-gateway服务
     
    systemctl restart zabbix-java-gateway
    

      

     
    5,修改zabbix_server配置文件,指定zabbix-server去javagetway获取数据的地址
     
    vim /etc/zabbix/zabbix_server.conf
     
    # JavaGateway的服务器IP地址
     JavaGateway=192.168.1.61
    # JavaGateway的服务端口
    JavaGatewayPort=10052
    # 从javaGateway采集数据的进程数
      StartJavaPollers=5
    

      

    6, 重启zabbix-server服务器

    systemctl restart zabbix-server
    

      

    7, 在被监控的tomcat应用程序的找到catalina.sh,添加如下内容
    CATALINA_OPTS="$CATALINA_OPTS
    -Djavax.management.builder.initial=
    -Dcom.sun.management.jmxremote=true
    -Dcom.sun.management.jmxremote.port=12345 
    -Dcom.sun.management.jmxremote.authenticate=false  
    -Dcom.sun.management.jmxremote.ssl=false
    -Djava.rmi.server.hostname=192.168.1.36"               //tomcat客户端ip
     
    重启进程: ./shutdown.sh  && ./startup.sh
    

      

    8,测试jmx远程端口是否开启成功并且获取数据(java-gatewya主要是和tomcat远程端口进行通信)。测试工具有3个,供选择!其实都是连接到jmx上面去而已。

    a,jmxclient (大部分人都用这个)
    
    https://sourceforge.net/projects/jmxcmd/ 打开后点击下载即可  
    
     
    
    b,jmxterm  (很少有人用这个)  http://sourceforge.net/projects/cyclops-group/files/jmxterm/
    
    
    
    c,jconsole (很多人用这个) 这是个安装jdk自带的工具,需要支持图形化。如果你的电脑安装了jdk,那么就会还有这个工具了。
    

      

     9,安装测试工具完成之后,测试是否能够获取数据。(ps:有的人会去下载 catalina-jmx-remote.jar这个包放到tomcat的lib目录,其实这个是不需要的)

    运行刚刚下载的工具:

     java -jar jmxcmd.jar -  192.168.1.36:12345
    

      

    成功后可以看到获取到了数据

    10,导入模版(该模版是3.0版本的zabbix,由于我用的jdk是1.8.0,所以监控项中的老年代(old gen)名其实已经为Tenured Gen(老年代),为了能够监控到old gen,所以模版里面也是有该监控项的,只是处于停用状态)

     下载链接如下:

     https://coding.net/api/user/molini/project/zabbix/folder/4326588/download

  • 相关阅读:
    C# Asp.net 修改Ueditor编辑器上传图片保存路径
    Asp.net Mvc Ajax.BeginForm提交表单
    Asp.net Mvc post表单提交多个实体模型
    Asp.net Mvc action返回多个模型实体给view
    在Windows Server 2008 R2 Server中,上传视频遇到的问题(二)
    不能往Windows Server 2008 R2 Server中复制文件的解决方法
    在Windows Server 2008 R2 Server中,上传视频遇到的问题(一)
    ef codefirst 模型字段类型与sqlserver表字段类型对应概要
    c# string 扩展方法
    mvc,EntityFramework调用分页存储过程
  • 原文地址:https://www.cnblogs.com/lin1/p/9643734.html
Copyright © 2020-2023  润新知