Zabbix 允许通过 JMX 监控指标。
Puppet 服务器通过 jolokia 提供 JMX 指标https://puppetserver:8140/metrics/v2
,并使用自己的 CA 作为证书。
我在 Zabbix 中配置了我的 Puppetserver 主机,其 DNS 名称和端口 8140 上的 JMX 接口。
我已经为该主机配置了一个 Zabbix 监控项,类型为JMX Agent
,键为jmx["puppetserver:name=puppetlabs.{HOST.DNS}.jruby.num-free-jrubies",Value]
但是,查询从未找到任何数据并且主机的代理指示器仍然为灰色。
主机之间肯定存在连接,我可以从 Zabbix 主机连接到端口。Puppetserver 上没有自定义身份验证配置,因此可以匿名读取此属性,我已通过主机上的单独脚本对此进行了验证。
问题是由于证书 CA 引起的,还是因为它使用了 https,还是由于特定的端点,或者是其他原因?
如何配置 Zabbix 以通过 JMX 监控 Puppetserver 指标,或者这是否不可能?
答案1
通过在 /etc/default/puppetserver 中添加以下内容,成功实现此操作(zabbix/jxm/puppetserver):
-Djava.net.preferIPv4Stack=true
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=12345
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
'preferIPv4Stack' 造成了差异,没有它,jmx 在 zabbix 中保持红色!我知道这不安全,但要开始……