我在zabbix中成功设置了JMX monitpring。
使用默认模板,我可以很好地了解应用程序的性能。
我现在需要监视正在运行的线程的状态。所以要知道天气正在运行,暂停或中断。
在jConsole中,我可以看到这一点。所以我认为,JMX确实允许这样做。
有人知道这是否可以在zabbix监控中完成?我假设我需要为线程定义一个发现规则,但我找不到任何关于此的文档。
感谢您的帮助,感谢所有投入!
答案 0 :(得分:0)
您的问题有两个方面:(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添加的内容很有用。