Zabbix permite el seguimiento de métricas vía JMX.
El servidor Puppet proporciona métricas JMX a través de jolokia https://puppetserver:8140/metrics/v2
, utilizando su propia CA para el certificado.
Tengo mi host Puppetserver configurado en Zabbix con un nombre DNS y una interfaz JMX en el puerto 8140.
He configurado un elemento de monitoreo de Zabbix para este host, como tipo JMX Agent
, con clavejmx["puppetserver:name=puppetlabs.{HOST.DNS}.jruby.num-free-jrubies",Value]
Sin embargo, la consulta nunca encuentra ningún dato y el indicador de Agente del host sigue estando gris.
Definitivamente hay conectividad entre los hosts y puedo conectarme al puerto desde el host de Zabbix. No existe una configuración de autenticación personalizada en Puppetserver, por lo que hay acceso de lectura anónimo a este atributo, que he verificado mediante un script separado en el host.
¿El problema se debe a la CA del certificado, a que utiliza https, al punto final en particular o a algún otro motivo?
¿Cómo configuro Zabbix para monitorear las métricas de Puppetserver vía JMX, o es imposible?
Respuesta1
Logré que esto funcionara (zabbix/jxm/puppetserver) agregando lo siguiente a /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
El 'preferIPv4Stack' marcó la diferencia, ¡sin él el jmx permanece ROJO en zabbix! Sé que esto no es seguro pero para empezar...