Zabbix では、JMX 経由でメトリックを監視できます。
Puppet サーバーはhttps://puppetserver:8140/metrics/v2
、証明書に独自の CA を使用して、jolokia 経由で JMX メトリックを提供します。
私は、DNS 名とポート 8140 の JMX インターフェースを使用して、Puppetserver ホストを Zabbix で構成しました。
このホストにZabbix監視アイテムをタイプとして設定しましたJMX Agent
。キーはjmx["puppetserver:name=puppetlabs.{HOST.DNS}.jruby.num-free-jrubies",Value]
ただし、クエリではデータが見つからず、ホストのエージェント インジケーターは灰色のままです。
ホスト間の接続は確実に確立されており、Zabbix ホストからポートに接続できます。Puppetserver にはカスタム認証構成がないため、この属性への匿名読み取りアクセスがあり、ホスト上の別のスクリプトで確認しました。
問題は証明書 CA が原因でしょうか、それとも https を使用していることが原因でしょうか、それとも特定のエンドポイントが原因でしょうか、それとも他の何らかの理由でしょうか?
JMX 経由で Puppetserver メトリックを監視するように Zabbix を構成するにはどうすればよいでしょうか。それとも不可能でしょうか。
答え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」が違いを生み出しました。これがないと、zabbix で jmx が RED のままになります。これは安全ではないことはわかっていますが、まずは...