lunes, 20 de enero de 2014

Monitoreo de Recursos WebLogic con WebLogic Diagnostic Framework (WLDF)

El Servidor WebLogic incluye un módulo específico para el monitoreo y diagnóstico  tanto de sus propios recursos como los de las aplicaciones que sirve, éste modulo se denomina WebLogic Diagnostic Framework (WLDF). Por ejemplo, WLDF nos pérmite el monitoreo y diagnóstico de:
  • La JVM sobre la cual esta corriendo el propio servidor WebLogic.
  • Recursos JDBC, como Datasource, Multidata Source.
  • Recursos JMS, como servidores JMS, fábricas de conexión, entre otros.
  • Aplicaciones Web, EJB, etc.
  • Y mucho más, en donde hace hechar a volar nuestra imaginación.

Para efectos de respuesta inmediata, WLDF proporciona varios mecanismos para la notificación de una alerta cuando se ha cumplido el criterio de una condición, y que determina un estatus específico de un recurso o del sistema entero. Por ejemplo: 
  • La notificación cuando el uso de memoria ha alcanzado el 80% se puede realizar a través de un correo electrónico a la cuenta del administrador del sistema.
  • La notificación cuando en el log del servidor se ha detectado el código de error BEA-320034 se puede realizara a través de un servidor SNMP.
  • La notificación de threads atorados (StuckThreads) puede emitir un mensaje JMS, o una notificación JMX.
  • Crear una imagen de diagnóstico cuando ocurre una excepción inesperada (UncheckedException).

Como siempre, WebLogic Server facilita la configuración y puesta en marcha del módulo WLDF a través de la Consola de Administración, utilizando una cuenta con privilegios de admnistrador.

A continuación voy a ejemplificar el uso de WLDF para la detección de StruckThreads y su notificación a través de correo electrónico. Este procedimiento puede servirles como guía para otros casos.

1. Ingresamos a la Consola de Administración WebLogic y a través del panel de estructura de dominio nos dirigímos a la sección Services > Mail Sessions. En ésta sección creamos una Sesión de Mail que utilizaremos para el envío de la notificación por correo electrónico.


Como destino del recurso seleccionamos todos aquellos servidores en donde queremos realizar el monitoreo.

Nota: La implementación de Mail Session no soporte conexiones a servidores que requieren SSL, en este caso necesitamos de un servidor SMTP que acepte conexiones sin SSL.


2. Ahora nos dirigímos a Diagnostic > Diagnostic Modules. En esta sección comenzamos a crear nuestro Módulo de Diagnóstico.



3. Una vez creado, entramos a la configuración del mismo y nos vamos a la sección Configuration > Watches and Notifications > Notifications. En este apartado creamos la notificación de tipo SMTP (E-Mail).




Por simplicidad dejo valores por defecto.


4. En el apartado Watches configuramos las propiedades de nuestro monitor para la detección y notificación de StuckThreads.








5. Finalmente, en la sección Targets seleccionamos los destinos (servidores) en los que deseamos mantener el monitoreo, similar a los destinos de nuestra Sesión de Mail. Salvamos y activamos los cambios.


En este punto, los servidores WebLogic estan habilitados para notificar por correo electrónico cuando se presente un error 'WL-000337' o 'BEA-000337', los cuales indican un problema en los hijos de ejecución del servidor (StuckThreads).

En la siguiente figura se resalta un ejemplo de la detección de un StuckThread, derivado del thread '8' con 658 segundos de ejecución, superior al máximo permitido antes de ser considerado como Stuck.




Este es un pequeño ejemplo de lo que podemos hacer con WLDF, en donde tenemos otro método de monitoreo más especifico y profundo, como lo es la Instrumentación y su capacidad para el rastreo de peticiones a recursos del sistema o aplicaciones personalizadas.

Espero que les sea utilidad para configurar diferentes alertas con las cuales puedan mejorar la prevención y/o detección de fallas en sus dominios WebLogic.








No hay comentarios:

Publicar un comentario