Hace un par de meses escribí un artículo destinado a monitorizar Tomcat usando las Java Management Extensions (JMX) y JConsole, interfaz gráfica que permite monitorizar todo lo que ofrece JMX. OpenDJ (open source Lightweight Directory Access Protocol) también permite monitorizar la JVM que utiliza a través de JMX.
Para habilitar JMX en OpenDJ utilizamos la línea de comandos para activar el connection handler de JMX, como siempre, el comando a utilizar es dsconfig.
# $OPENDJ_HOME/bin/dsconfig \ set-connection-handler-prop \ --hostname localhost \ --port 4444 \ --bindDN "cn=Directory Manager" \ --bindPassword password \ --handler-name "JMX Connection Handler" \ --set enabled:true \ --trustAll \ --no-prompt
Es necesario reiniciar OpenDJ para que los cambios surtan efecto:
# $OPENDJ_HOME/bin/stop-ds --restart
Por defecto el conector escucha por el puerto TCP 1689.
tcp 0 0 :::1689 :::* LISTEN 2431/java
JConsole está disponible en el Java Development Kit (JDK), dentro de $JDK_HOME/bin. Los datos necesarios para conectar al JMX de OpenDJ son:
- URI: service:jmx:rmi:///jndi/rmi://localhost:1689/org.opends.server.protocols.jmx.client-unknown
- Usuario: cn=directory manager (o cualquiera con privilegios jmx-notify, jmx-read, y jmx-write).
- Password: contraseña del usuario.
Si OpenDJ está en un servidor remoto, lo más cómodo y rápido es crear un tunel SSH contra el servidor de OpenDJ y ejecutar jconsole igualmente contra localhost:
$ ssh foo@opendj-server -L 1689:localhost:1689
Y listo…