同一主机上的两个 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 要求将更改包含在网关中,但被拒绝了。
功能请求
这些功能请求可能会解决您的需求,但您最多只能对它们进行投票。
- https://support.zabbix.com/browse/ZBXNEXT-735 要求项目唯一性从主机更改为接口。
- https://support.zabbix.com/browse/ZBXNEXT-1983 在 JMX 项目中要求端口参数,允许直接使用 LLD。
在主机上,有两个 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 要求将更改包含在网关中,但被拒绝了。
功能请求
这些功能请求可能会解决您的需求,但您最多只能对它们进行投票。
- https://support.zabbix.com/browse/ZBXNEXT-735 要求项目唯一性从主机更改为接口。
- https://support.zabbix.com/browse/ZBXNEXT-1983 在 JMX 项目中要求端口参数,允许直接使用 LLD。