我在zabbix中成功设置了JMX monitpring。
使用默认模板,我可以很好地了解我的应用程序的性能。
我现在需要监控正在运行的线程的状态。因此,找出它正在运行、暂停或中断的天气。
在 jConsole 中,我可以看到这一点。所以我认为,JMX 确实允许这样做。
有人知道这是否可以在 zabbix 监控中完成吗?我假设我需要为线程定义一个发现规则,但我找不到任何关于此的文档。
感谢您的帮助,感谢所有输入!
您的问题有两个方面:(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),有一个内置 item jmx.discovery
,它返回在 JMX 代理上找到的所有 JMX 对象的列表。但是,由于过滤能力有限,并且无法根据{#JMXTYPE}
宏创建正确类型的项目,它主要用于内部测试目的,这就是它没有被记录的原因。
但是,您可以jmx.discovery
在ZBX-6273找到一个示例。随着最近在 ZBXNEXT-581 中添加了多个 LLD 过滤器,您可以尝试过滤感兴趣的线程对象。或者,您可以等到 ZBXNEXT-1223 实施或同时使用其中提到的补丁和实用程序。特别是,最近在https://www.zabbix.org/wiki/Docs/howto/jmx_discovery添加的内容很有用。