Zabbix JMX : Auto Discovery + JBoss + Weblogic T3

2016-08-08 0 Par seuf

zabbix_logo_500x131Java_logo

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

Compilation

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.