Monitorizando WebLogic (y la JVM)

Es posible utilizar una serie de herramientas disponibles en cualquier JDK para monitorizar la evolución en el tiempo del uso de los recursos de una instancia de JVM. Esto puede ser especialmente útil para monitorzar, por ejemplo, el funcionamiento de una aplicación en remoto, como puede ser la desplegada en una instancia de WebLogic.

A continuación se presentan dos formas de monitorizar una instancia manejada de WebLogic, con sus variantes, que no es ni más ni menos que monitorizar una instancia de JVM en local o en remoto, usando estas herramientas estándar.

1. Usando Jconsole

a. Habilitar JMX en la JVM que se va a monitorizar. En el caso de WebLogic, equivale a incluir las opciones de la JVM correspondientes en el fichero de arranque de la instancia manejada, o en el que establece las opciones del dominio (startManagedWebLogic.sh o setDomainEnv.sh).

En este caso se usará el puerto 8888, pero puede ser cualquier otro puerto disponible.

b. Iniciar la instancia de WebLogic o de la JVM que se quiere monitorizar.

c. Iniciar Jconsole. Si la instancia está en remoto, usar la siguiente cadena de conexión:

Por ejemplo, segun el caso anterior, el puerto JMX es el 8888, asi que la cadena de conexión para el localhost seria:

jconsole

Aunque no trataremos este punto aqui, también es posible usar MBeans para monitorizar una instancia de WebLogic. en este caso se usaría la implementación MBeans del propio WebLogic, y utilizando una cadena de conexión algo diferente, podríamos conectar la instancia de forma similar a la expuesta usando Jconsole.

2. Usando VisualVM

VisualVM es una herramienta que aparece en los JDK a partir de la version 6, y que permite monitorizar de igual manera el uso de recursos por parte de una instancia de JVM, pero es este caso de una manera más visual, ofreciendo alguna herramienta de visualización y manipulación de datos adicional, aunque con el coste de ser más lenta y pesada que Jconsole.

Además, para poder usar VisualVM de forma remota, es necesario lanzar una aplicación del lado servidor. Esta aplicación es jstatd y se encarga de enviar los datos de la instancia que monitorizamos al cliente en local.

a. Lanzar jstatd en el lado servidor.

El contenido del fichero de política de seguridad (jstatd.all.policy) para habilitar todos los permisos es:

[codesyntax lang="java"]

[/codesyntax]

b. Ahora se puede lanzar Visual VM desde el JDK local y crear la conexión al nodo remoto usando la GUI en cuestión.

visualvm