同一主机上的两个 JMX 接口:如何复制 JMX 项?

Two JMX intefaces on the same host : How duplicate JMX items?

在主机上,有两个 Java 应用程序正在运行,公开 JMX 数据(应用程序 1:JBoss Wildfly。应用程序 2:Apache Tomcat)

我在 Zabbix 服务器的主机配置中设置了两个 JMX 接口。现在,我想创建一些将获取 JVM 数据的项目?例如:

jmx["java.lang:type=ClassLoading",LoadedClassCount]

我无法使用相同的密钥创建两个项目。我怎样才能绕过这个控制?

简短回答:没有解决方案。

长答案:

为什么你可能不想这样做

由于错误https://support.zabbix.com/browse/ZBXNEXT-4677,Zabbix 无法正确处理同一类型的多个接口。 如果其中一个接口不可用(如 JVM 变慢或关闭),Zabbix 将停止监视相同类型的其他接口。

无论如何都要做

在配置中手动修改

您可以手动编辑项目以使键不同 - 例如,在逗号后添加 space 会使键不同,但它仍然会以相同的方式工作。当然,这完全打败了模板,并且在几个项目之外是不可持续的。

在 Java 网关源码中破解这个

您可以修改 Java 网关以忽略第三个参数。这样 LLD 可以将端口作为第三个参数(在 JMX URL 中也是如此),使密钥唯一。

https://support.zabbix.com/browse/ZBXNEXT-4510 要求将更改包含在网关中,但被拒绝了。

功能请求

这些功能请求可能会解决您的需求,但您最多只能对它们进行投票。