Guía de supervisión de Sun Java Enterprise System 5

Funcionamiento de la supervisión en Java ES

La supervisión es el proceso completo de recopilación de datos de tiempo de ejecución, de exposición de dichos datos y de cálculo de la calidad de criterios de servicio para que el administrador del sistema pueda evaluar el rendimiento y recibir notificación de alarmas. Durante el funcionamiento en el tiempo de ejecución, los administradores sólo deben interactuar con Consola de supervisión para ver estadísticas de rendimiento, crear reglas para supervisar de forma automática y aceptar alarmas. No obstante, para la configuración, solución de problemas y supervisión avanzada, ayuda a comprender la arquitectura de Monitoring Framework y cómo se conecta a Consola de supervisión.

La supervisión en Java ES se basa en los siguientes conceptos:

En las siguientes secciones se describe con más detalle cada uno de estos conceptos de la arquitectura de supervisión.

Common Monitoring Model (CMM)

La base de un mecanismo de supervisión estandarizado es definir qué objetos se supervisan y la adopción de estos objetos en todos los componentes supervisados. Para este fin, la arquitectura de supervisión define Common Monitoring Model (CMM) como una ampliación de Common Information Model (CIM) mantenido por DMTF (Distributed Management Task Force). CMM es tanto un modelo de información que especifica objetos supervisados tales como un equipo, una aplicación, etc., como un modelo de datos que especifica valores uniformes tales como los valores de estado de funcionamiento. Como parte del modelo de información, CMM define también los atributos de un objeto (por ejemplo, el número de solicitudes gestionadas por un servicio) y las relaciones entre objetos, tales como el hecho de que un servicio se encuentre alojado en un determinado equipo.

Gracias a CMM, conceptos tales como aplicaciones, servicios, puntos de acceso, etc., son los mismos para todos los componentes del producto, aunque la implementación subyacente sea distinta. Por ejemplo, Web Server podría exponer un servicio que gestiona solicitudes HTTP, mientras que Directory Server podría exponer un servicio que gestiona solicitudes LDAP. No obstante, el objeto estándar capturará lo que es común a estas dos funciones, por ejemplo, la capacidad de medir el número de solicitudes gestionadas, el tiempo medio de respuesta a una solicitud en un determinado periodo de tiempo, etc.

Además, ciertos valores de datos se estandarizan para que su significado sea uniforme en todo el sistema. Por ejemplo, el estado de funcionamiento DEGRADED significa siempre que un servicio está aún disponible pero que el rendimiento se ha reducido de forma significativa, independientemente del componente de producto que se esté supervisando.

La especificación de CMM está incluida en las clases e interfaces Java utilizadas para la instrumentación, las cuales se describen en el Apéndice A, Referencia de objetos CMM.

Instrumentación de CMM

En Monitoring Framework, la instrumentación es un conjunto de clases e interfaces Java que implementan las definiciones de CMM. Para la nueva función de supervisión incluida en Java ES, los componentes del producto han instrumentado su código para instanciar los objetos de CMM y exponer los valores de tiempo de ejecución mediante los atributos de los objetos supervisados. Los objetos de CMM que cada componente implementa determinan qué se puede supervisar y, por este motivo, algunos componentes exponen menos atributos que otros. La lista de objetos y atributos que cada componente del producto expone para la supervisión se encuentra en el Apéndice B, Objetos supervisados expuestos por cada componente.

Agentes de nodo

En terminología de supervisión, un nodo es un host lógico identificado por una dirección IP o un nombre de dominio exclusivos totalmente cualificados. Un nodo puede ser un sistema completo o una zona Solaris configurada como sistema virtual. El agente de nodo se comunica con todos los componentes instrumentados de ese host y expone todos sus objetos supervisados. El agente de nodo administra también toda la lógica para recopilar estadísticas de rendimiento, supervisar umbrales definidos en reglas y generar alarmas para los objetos supervisados que contiene.

En el siguiente diagrama se representa el contenido de un agente de nodo en un único host que tiene instancias de tres componentes del producto Java ES. También se muestra la forma en que la instrumentación se instancia en el agente de nodo para exponer los valores que proporcionan los componentes del producto.

Figura 1–1 Diagrama de un agente de nodo

Dentro del agente de nodo, hay objetos que representan atributos instrumentados y reglas de supervisión tales como esperar alarmas de umbral.

El agente de nodo se implementa como un módulo cargado en Common Agent Container, que es en sí una máquina virtual de Java. La implementación del agente de nodo se basa en JMX (Java Management Extension), que es la extensión estándar de Java para la supervisión y la administración remota. Las aplicaciones de supervisión habilitadas con JMX que entienden el modelo CMM pueden acceder a los objetos supervisados del agente de nodo. Utilizando la funcionalidad JMX, el agente de nodo puede exponer también ciertos objetos supervisados mediante el protocolo de supervisión de red simple (SNMP).

Agente principal

El agente principal se implementa en un equipo independiente como parte de la instalación de Consola de supervisión. El agente principal se configura con el nombre o dirección de todos los nodos para que pueda agregar los objetos supervisados de todos los agentes de nodo. El agente principal se basa también en JMX, que lo utiliza para comunicarse con los agentes de nodo, e igualmente se carga en su Common Agent Container local.

El siguiente diagrama representa un agente principal conectado a dos nodos. La Consola de supervisión se conecta al agente principal para supervisar los tres componentes en cada nodo. Si desea utilizar SNMP para supervisar, deberá realizar la conexión a cada uno de los nodos por separado, ya que el agente principal no agrega atributos de SNMP. El agente principal está diseñado para utilizarse con la Consola de supervisión solamente y no se puede acceder a él mediante otras aplicaciones de supervisión.

Figura 1–2 Diagrama de la arquitectura de supervisión general

El agente principal se conecta a varios agentes de nodo JMX y expone todos los objetos supervisados de la Consola de supervisión.