Zabbix JMX : Auto Discovery + JBoss + Weblogic T3
Dernièrement j’ai patché le code source du collecteur JMX de Zabbix pour rajouter quelques features :
- Découverte automatiques des attributs / Name
- JMX JBoss
- JMX Weblogic en T3
Les sources sont disponibles sur mon github
Comment ça marche ?
Il faut spécifier une macro Zabibx $JMX_USER avec <login>:<protocol> ou juste « :<protocole> » si il n’y a pas d’authentification JMX.
Voici les valeurs possible pour protocole :
- jmx : URL JMX classique
- jboss : URL jboss remoting JMX
- t3 : Pour utiliser une connection weblogic t3
- t3s : Pour se connecter à la console weblo en T3S
voici les URL exacte définies pour chaque protocole :
String jmx_url = "service:jmx:rmi:///jndi/rmi://[" + conn + "]:" + port + "/jmxrmi"; // default
String jboss_url = "service:jmx:remoting-jmx://" + conn + ":" + port; // jboss
String t3_url = "service:jmx:t3://"+conn+":"+port+"/jndi/weblogic.management.mbeanservers.runtime"; // T3
String t3s_url = "service:jmx:t3s://"+conn+":"+port+"/jndi/weblogic.management.mbeanservers.runtime"; // T3S
Ainsi, dans chaque template JMX, on ajoute 2 macros {$JMX_USER} et {$JMX_PASS} et on renseigne le protocole dans {$JMX_USER}.
Si aucun protocole n’est renseigné, c’est l’url classique qui est utilisée.
Dépendances
Copier les libs suivantes dans le répoertoire lib de zabbix_java_gateway :
- wlthint3client.jar : pour faire du weblogic t3
- jboss-remoting-3.2.18.GA-redhat-1.jar : pour jboss
Pour compiler tout ça il y a juste a cloner le repo git, éditer le Makefile pour renseigner le PATH de la JDK et des binaiures javac / jar.
Puis :
make
Ca va générer un package bin/zabbix-java-gateway-X.Y.Z.jar
Deploiement
Pour installer, il suffi de copier le jar généré dans le répertoire bin de zabbix_java_gateway. et de re-démarrer zabbix_java_gateway.