O Zabbix permite o monitoramento de métricas via JMX.
O Puppet Server fornece métricas JMX via jolokia on https://puppetserver:8140/metrics/v2
, usando sua própria CA para o certificado.
Tenho meu host Puppetserver configurado no Zabbix com um nome DNS e uma interface JMX na porta 8140.
Configurei um Item de Monitoramento Zabbix para este host, como type JMX Agent
, com Keyjmx["puppetserver:name=puppetlabs.{HOST.DNS}.jruby.num-free-jrubies",Value]
No entanto, a consulta nunca encontra nenhum dado e o indicador do Agente para o host ainda está cinza.
Definitivamente há conectividade entre os hosts e posso me conectar à porta do host Zabbix. Não há configuração de autenticação personalizada no Puppetserver, portanto, há acesso de leitura anônimo a esse atributo, que verifiquei por meio de um script separado no host.
O problema é devido ao certificado CA, ou porque ele está usando https, ou devido ao endpoint específico, ou por algum outro motivo?
Como configuro o Zabbix para monitorar as métricas do Puppetserver via JMX, ou é impossível?
Responder1
consegui fazer isso funcionar (zabbix/jxm/puppetserver) adicionando o seguinte ao /etc/default/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
O 'preferIPv4Stack' fez a diferença, sem ele o jmx fica RED no zabbix! Eu sei que isso não é seguro, mas para começar ....