• zabbix通过jmx采用默认tomcat模板监控tomcat好多值不支持的问题排查


    前言

    采用zabbix 3.0对tomcat进行监控,已经安装好jmx,而且通过jconsole也能够连接tomcat进行监控。但是采用zabbix自带的监控模板却发现很多监控项都提示不支持。

    排查故障

    1. 下载cmdline-jmxclient-0.10.3.jar,采用此软件可以探测需要监控的tomcat主机支持的监控项,而且能够获取所有监控项的值。
    2. 执行以下语句进行测试:
    #ip地址为需要监控的tomcat主机的ip地址,即本机;
     java.lang:name="Code Cache",type=MemoryPool为监控项
    Usage为监控项支持的参数,如果不带监控参数就会列出所有支持的监控参数#
    [root@localhost packages]# java -jar cmdline-jmxclient-0.10.3.jar - 192.168.1.52:12345 java.lang:name="Code Cache",type=MemoryPool Usage
    09/04/2017 17:25:55 +0800 org.archive.jmx.Client Usage: 
    committed: 7012352
    init: 2555904
    max: 50331648
    used: 6077824
    #出现以上信息说明能够对jmx进行取值
    
    1. 通过java -jar cmdline-jmxclient-0.10.3.jar --help也可以获取所有帮助信息;
    2. 以下命令用于获取jmx支持的所有监控项:
    java -jar cmdline-jmxclient-0.10.3.jar - 192.168.1.52:12345
    #监控项分两种:Catalina和java.lang,可以采用grep分别查看
    
    1. 查看一个zabbix的tomcat监控模板自带的监控项,然后可以看到之所以娶不到值是因为监控键值不对,采用以下兼职发现根本获取不到信息:

    2. 执行以下命令查看正确的键值,发现正确的值为“http-bio-8080”,这是因为我的tomcat采用的是bio通信模型,tomcat还支持nio和apr,不同的模型这里的值也不同。:

    [root@localhost packages]# java -jar cmdline-jmxclient-0.10.3.jar - 192.168.1.52:12345 |grep 'Catalina:name='
    Catalina:name=HttpRequest1,type=RequestProcessor,worker="http-bio-8080"
    Catalina:name="http-bio-8080",type=ThreadPool
    Catalina:name="http-bio-8080",type=GlobalRequestProcessor
    Catalina:name="ajp-bio-8009",type=ThreadPool
    Catalina:name="ajp-bio-8009",type=GlobalRequestProcessor
    Catalina:name=StandardEngineValve,type=Valve
    Catalina:name=common,type=ServerClassLoader
    
    1. 采用正确的值再取一次数据发现能够取得数据,注意特殊字符需要转义:
    2. 修改zabbix的tomcat监控模板的值即可:
  • 相关阅读:
    【数据分析】6 点发的文章在博客园阅读量最高?
    canvas api 速记
    leetcode 315. Count of Smaller Numbers After Self 两种思路
    一道闭包题题解
    一道经典JS题(关于this)
    HTML5 — 让拖放变的流行起来
    你应该知道的25道Javascript面试题
    关于base64编码的原理和实现
    Python中的None
    Python字符编码和转码
  • 原文地址:https://www.cnblogs.com/stacks/p/7474679.html
Copyright © 2020-2023  润新知