zoukankan      html  css  js  c++  java
  • zabbix使用jmx监控tomcat

    前提:编译zabbix server时需要提供java支持,即添加--enable-java该选项。

    1、zabbix server段配置java支持。此处编译安装zabbix的目录为/usr/local/zabbix。

    编辑/usr/local/zabbix/sbin/zabbix_java/settings.sh,修改完成之后内容如下:
        LISTEN_IP="0.0.0.0"            //监听的服务器地址
        LISTEN_PORT=10052            //监听的端口
        PID_FILE="/tmp/zabbix_java.pid"    //指定zabbix_java的pid文件地址
        START_POLLERS=5
        TIMEOUT=3

    2、编辑/usr/local/zabbix/etc/zabbix_server.conf,修改完成之后,内容如下:

    LogFile=/tmp/zabbix_server.log    //指明zabbix_server的日志文件地址
    DBHost=localhost                //连接的数据库地址
    DBName=zabbix                //连接的数据库名称
    DBUser=zabbix                //连接数据库的用户名
    DBPassword=zabbix            //连接数据库密码
    JavaGateway=192.168.1.103        //java网关地址,即server端ip地址
    JavaGatewayPort=10052            //java网关监听端口
    Timeout=20                    //超时时间
    FpingLocation=/usr/sbin/fping    //fping命令绝对地址
    LogSlowQueries=3000
    AllowRoot=1                    //允许root启动
    User=root                    //zabbix服务的启动用户
    StartPollers=50
    StartPingers=100
    StartJavaPollers=5
    AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts    //zabbix额外的脚本地址

    3、重启zabbix server服务,以及启动zabbix java支持服务。

    service zabbix_server restart
    cd /usr/local/zabbix/sbin/zabbix_java && sh startup.sh

    4、在zabbix agent部署的服务器上更改配置文件,修改tomcat配置文件。目录:/data/tomcat/tomcat-8080/bin。

    vim /data/tomcat/tomcat-8080/bin/catalina.sh 编辑catalina.sh,提供jmx端口。如下:
    CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=12345 -Djava.rmi.server.hostname=192.168.1.100"
    
    其中,hostname=192.168.1.100需要修改为agent部署的服务器地址。更改完成需要重启tomcat应用服务器,同时查看端口12345是否处于监听状态。

    5、在zabbix agent部署的tomcat服务器上,copy对应的java jmx监控的相关jar包到tomcat对应的目录下。

    cp catalina-jmx-remote.jar /data/tomcat/tomcat-8080/lib
    cp cmdline-jmxclient-0.10.3.jar /data/tomcat/tomcat-8080/bin

    6、编辑zabbix agent配置文件,配置完成如下:

    LogFile=/tmp/zabbix_agentd.log    //zabbix agent日志文件地址
    Server=192.168.1.103            //zabbix server地址
    ListenPort=10050                //zabbix agent监听端口
    Timeout=20                    //超时时间
    Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf        //zabbix agent副配置文件目录配置
    UnsafeUserParameters=1        
    AllowRoot=1
    User=root
    ServerActive=192.168.1.103        //server地址配置
    EnableRemoteCommands=1        //允许远程执行命令
    Hostname=192.168.1.100        //配置agent本地hostname名称
    
    UserParameter=jvm[*],/usr/local/zabbix/share/zabbix/alertscripts/jvm_memory.sh $1    //jvm内存监控脚本
    UserParameter=system_memory[*],/usr/local/zabbix/share/zabbix/alertscripts/system_memory.sh $1        //系统内存监控脚本

    7、在zabbixagent端使用cmdline-jmxclient-0.10.3.jar提供的相关接口,获取jvm的监控信息。此处执行相关命令的操作目录为:/data/tomcat/tomcat-8080/bin。

    获取tomcat的最大线程数。
    java -jar cmdline-jmxclient-0.10.3.jar - 192.168.1.100:12345  'Catalina:name="http-bio-8080",type=ThreadPool' maxThreads
    06/09/2017 17:34:47 +0800 org.archive.jmx.Client maxThreads: 200
    
    获取tomcat繁忙线程数。
    java -jar cmdline-jmxclient-0.10.3.jar - 192.168.1.100:12345 'Catalina:name="http-bio-8080",type=ThreadPool' currentThreadsBusy
    06/09/2017 17:36:48 +0800 org.archive.jmx.Client currentThreadsBusy: 5
    
    获取tomcat当前已经分配线程数。
    java -jar cmdline-jmxclient-0.10.3.jar - 192.168.1.100:12345  'Catalina:name="http-bio-8080",type=ThreadPool' currentThreadCount
    06/09/2017 17:38:15 +0800 org.archive.jmx.Client currentThreadCount: 11
    
    获取活动线程的当前数目,包括守护线程和非守护线程。
    java -jar cmdline-jmxclient-0.10.3.jar - 192.168.1.100:12345 java.lang:type=Threading ThreadCount
    06/09/2017 17:55:34 +0800 org.archive.jmx.Client ThreadCount: 225
    
    获取自从 Java 虚拟机启动以来创建和启动的线程总数目。
    java -jar cmdline-jmxclient-0.10.3.jar - 192.168.1.100:12345 java.lang:type=Threading TotalStartedThreadCount
    06/09/2017 17:55:52 +0800 org.archive.jmx.Client TotalStartedThreadCount: 112225
    
    获取Java 虚拟机启动或峰值重置以来峰值活动线程计数。
    java -jar cmdline-jmxclient-0.10.3.jar - 192.168.1.100:12345 java.lang:type=Threading PeakThreadCount
    06/09/2017 17:56:06 +0800 org.archive.jmx.Client PeakThreadCount: 244
    
    获取守护线程总数。
    java -jar cmdline-jmxclient-0.10.3.jar - 192.168.1.100:12345 java.lang:type=Threading DaemonThreadCount
    06/09/2017 17:52:20 +0800 org.archive.jmx.Client DaemonThreadCount: 195

    8、键值对解析如下:

    名称:tomcat已分配线程数
    键值:jmx["Catalina:name="http-bio-8080",type=ThreadPool",currentThreadCount]
    
    名称:tomcat最大线程数
    键值:jmx["Catalina:name="http-bio-8080",type=ThreadPool",maxThreads]
    
    名称:tomcat繁忙线程数
    键值:jmx["Catalina:name="http-bio-8080",type=ThreadPool",currentThreadsBusy]
    
    名称:java虚拟机启动以来创建和启动的线程总数目
    键值:jmx["java.lang:type=Threading","TotalStartedThreadCount"]
    
    名称:tomcat活动线程的当前数目,包括守护线程和非守护线程。
    键值:jmx["java.lang:type=Threading","ThreadCount"]
    
    名称:java虚拟机启动或峰值重置以来峰值活动线程数
    键值:jmx["java.lang:type=Threading","PeakThreadCount"]
  • 相关阅读:
    指示函数
    Sql Server中的日期与时间函数
    http://www.jb51.net/softjc/33896.html(vs2010破解)
    什么是VC维?
    smalldatetime和datetime的差别
    基于大规模语料的新词发现算法
    向setInterval , setTimeout调用的函数传递参数
    取指定月份的天数
    SQL 写循环数据
    JavaScript事件一瞥
  • 原文地址:https://www.cnblogs.com/crysmile/p/7071103.html
Copyright © 2011-2022 走看看