【问题标题】:Get threads when monitoring Java application with JMX in Zabbix在 Zabbix 中使用 JMX 监控 Java 应用程序时获取线程
【发布时间】:2014-02-12 19:49:40
【问题描述】:

我在zabbix中成功设置了JMX monitpring。

使用默认模板,我可以很好地了解我的应用程序的性能。

我现在需要监控正在运行的线程的状态。所以找出它正在运行、暂停或中断的天气。

在 jConsole 中,我可以看到这一点。所以我认为,JMX 确实允许这样做。

有人知道这是否可以在 zabbix 监控中完成吗?我假设我需要为线程定义一个发现规则,但我找不到任何关于此的文档。

感谢您的帮助,感谢所有输入!

【问题讨论】:

    标签: java jmx zabbix


    【解决方案1】:

    您的问题有两个方面:(a) 通过 JMX 观察现有线程的状态和 (b) 使用 Zabbix 进行 JMX 线程监控的低级发现。

    关于 (a),我目前不知道有任何 JMX 对象会公开此信息。默认情况下,JVM 提供像jmx["java.lang:type=Threading",ThreadCount]jmx["java.lang:type=Threading",DaemonThreadCount] 这样的对象,它们都包含在默认的“Template JMX Generic”中。但是,我不知道有任何 JMX 对象会提供更详细的信息。如果你知道一些,请分享。

    关于 (b),有一个内置项 jmx.discovery,它返回在 JMX 代理上找到的所有 JMX 对象的列表。但是,由于过滤能力有限,并且无法根据 {#JMXTYPE} 宏创建正确类型的项目,它主要用于内部测试目的,这就是它未记录在案的原因。

    但是,您可以在ZBX-6273 找到jmx.discovery 的示例。随着最近在 ZBXNEXT-581 中添加了多个 LLD 过滤器,您可以尝试过滤感兴趣的线程对象。或者,您可以等到 ZBXNEXT-1223 实施或同时使用其中提到的补丁和实用程序。特别是,https://www.zabbix.org/wiki/Docs/howto/jmx_discovery 最近添加的内容很有用。

    【讨论】:

    • 不是我希望的答案,但由于似乎没有更好的方法,我非常感谢您的良好解释,我将排除答案!
    猜你喜欢
    • 2018-12-28
    • 1970-01-01
    • 2014-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多