[ Blog ]
[ Wiki ]
[ Slideshare ]
[ Twitter ]

Bloggers recientes

Cesar Capillas Mensajes: 110
Estrellas: 7
Fecha: 18/05/13
Gustavo Fernandez Mensajes: 44
Estrellas: 7
Fecha: 10/05/13
Patricia Yagüe Mensajes: 2
Estrellas: 0
Fecha: 2/04/12

Archivo

Tags

noBlogo - El blog de zylk.net

Entradas con etiqueta <em>nagios</em>.

Monitorizando Liferay Portal con Nagios

Un aspecto fundamental en el mantenimiento y prevención de desastres en un sistema es la monitorización de los diferentes servicios que proporciona. Un herramienta muy popular es este campo dentro del mundo opensource es Nagios debido a la gran comunidad de usuarios y plugins existentes. Uno de ellos es check_jmx, que permite la monitorización de variables de un servidor de aplicaciones java, activando la consola jmx.

En primer lugar es necesario configurar el acceso via jmx en el servidor de aplicaciones a monitorizar, y reiniciarlo. Basicamente hay que localizar el punto del script de arranque de Jboss o Tomcat donde especificamos las opciones de java $JAVA_OPTS de modo:

JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote=true"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.port=9999"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.authenticate=true"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.ssl=false"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.password.file=/opt/liferay/jmxremote.password"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.access.file=/opt/liferay/jmxremote.access"

También es necesario editar los archivos jmxremote.access:

admin readwrite
zylk readonly

y jmxremote.password:

admin secret1
zylk secret2

Podemos probar que el jmx está listo con jconsole, una vez reiniciado el servidor de aplicaciones:


Luego nos descargamos el plugin para Nagios, y configuramos los comandos y servicios correspondientes. Por cierto, es un script de shell que invoca a un jar, luego para ejecutarlo en el servidor de monitorización es necesario instalar java.

La configuración del comando (commands.cfg) en Nagios:

define command {
  command_name check_alfresco_HeapMemoryUsage_Used
  command_line    /usr/local/nagios/plugins/check_jmx -U service:jmx:rmi:///jndi/rmi://’$HOSTADDRESS$’:'$ARG1$’/jmxrmi -O java.lang:type=Memory -A HeapMemoryUsage -K used -username ‘$ARG2$’ -password ‘$ARG3$’ -w ‘$ARG4$’ -c ‘$ARG5$’
}

y la del servicio (services.cfg):

define service {
  host_name               baco
  service_description  heap memory used
  check_command     check_jmx_HeapMemoryUsage_Used!9999!zylk!secret1!750000000!800000000
  use                           generic-service
}

En el caso específico que nos ocupa, monitorizamos la memoria heap de un contenedor de servlets Tomcat con un gestor de portales Liferay, aunque podría ser cualquier aplicación java, como Alfresco ECM o Nuxeo. En el blog de Toni de la Fuente, hay un detallado artículo de monitorización de Alfresco a través de varios métodos, entre los que incluye Nagios.

Como complemento a este artículo en la parte que se refiere a Nagios, es posible graficar la evolución temporal de las variables java en PNP4Nagios mediante performance data. Para ello necesitamos modificar un poco el script el check_jmx, añadiéndole los datos de rendimiento, de modo que tendremos en Nagios gráficas diarias, semanales, mensuales tipo Cacti (rrdtool) en nuestro Nagios.

El cambio en la parte final del script es el siguiente:

DIR=`dirname $0`
JMX=`$JAVA_CMD -jar $DIR/check_jmx.jar "$@"`
JMXVAL=$?
VAL=`echo $JMX | awk '{print $5}'`
echo $JMX "|$6=$VAL;;;"
exit $JMXVAL

Y este sería el resultado para la memoria heap de java del servidor Liferay:

Y esto es todo.

Monitorizando Liferay Portal con Nagios II

Siguiendo con el artículo recientemente publicado por Cesar, vamos a dar los tips para monitorizar algun mbean específico de Liferay, en vez de monitorizar un atributo general de la maquina virtual. Para ello accedemos a jconsole y localizamos el mbean que queremos monitorizar,

En el caso que nos ocupa, hemos localizado el bean que tiene como atributo el número de páginas de publicadas en el wiki. Para ello nos hemos ayudado de la herramienta jconsole:

 

Una vez localizado el bean testamos el comando a ejecutar,  en este caso:

./check_jmx -U service:jmx:rmi:///jndi/rmi://192.168.94.115:9999/jmxrmi -O "JSPWiki:component=Core,name=Core bean" -A pages -K used -username zylk -password secret1 -w 1000 -c 2000

obtenemos el resultado del mismo
JMX OK -pages.used = 45 |pages=45;1000;2000;0

 

Ahora solo quedaría ajustar el máximo y el mínimo y añadirlo al nagios tal como se ha explicado en el anterior artículo. Con esto podremos monitorizar:

  • Número de usuarios
  • Páginas cacheadas
  • % de error en la búsqueda de paginas cacheadas
  • .....

 

Una breve revisión de Alfresco Enterprise 3.2

Hace un par de meses salió la versión Enterprise de Alfresco 3.2 con numerosas novedades y he tenido tiempo de madurar algunas de las nuevas funcionalidades que en mi opinión suponen un salto cualitativo y cuantitativo en las capacidades funcionales del popular gestor documental de empresa. Menciono a continuación algunas de ellas:

  • Configuración: La configuración del repositorio, los programas externos y subsistemas se hace ahora un sólo archivo de configuración, facilitando enormemente configurar una cadena de autenticación (LDAP, NTML, Alfresco...). Por otro lado, aumentan las posibilidades de despliege dinámico directamente a través del cliente web, añadir modelos de contendido, webscripts, javascripts, templates de freemaker a través del gestor web (Alfresco Explorer).
  • Soporte IMAP: Siempre hemos comentado que el correo electrónico es un punto clave hoy en día como entrada de información y documentación en la empresa. En esta versión de Alfresco es posible navegar por el repositorio desde nuestro cliente de correo favorito a través de IMAP, añadir documentos y visualizar los metadatos (via webscripts) extendiendo el concepto de unidad compartida al correo electrónico.

  • Mejoras en Alfresco Share 3.2: La verdad es que Alfresco Share 3.2 esta mejorando en cada versión y se presenta como un sustituto natural al monolítico Alfresco Explorer al que según tengo entendido están pensando en jubilar. En esta versión es posible navegar por fin, por todo el repositorio (esta funcionalidad no está activada por defecto) y no sólo por sus sites, y se han implementado numerosas mejoras como la integración con el módulo de records. Además hay que tener en cuenta que Alfresco Share si dispone de un componente para subir varios archivos a la vez, una característica imprescindible que antes sólo se podía hacer via unidad compartida. Por otro lado, son posibles además, ciertas acciones avanzadas como editar metadatos, gestionar aspectos, cambiar tipos o asignar un workflow.

  • Capacidades JMX: Es posible monotorizar numerosos parámetros del servidor de aplicaciones y del gestor documental tales como: el número de usuarios y grupos de Alfresco, el tamaño del repositorio, el número de conexiones activas en la bbdd, las sesiones abiertas, las caches o incluso valores de hibernate y lucene. Ha salido recientemente un módulo para nagios para Alfresco Enterprise 3.2
  • El Content Store Selector y las posibilidades de repositorio distribuido: Dos de las características más potentes y flexibles de Alfresco son sin ninguna duda los aspectos (el modelo AOP de los tipos de contenido de Alfresco) y las reglas de automatización de contenido (condición / acción). Con estas dos patas se puede hacer practicamente de todo en Alfresco, y aquí dejo un buen ejemplo. En esta versión es posible definir almacenes distribuidos, permitiendo guardar la información en base a reglas de contenido a través del aspecto cm:storeSelector. Esto podría utilizarse en las siguientes situaciones:
    • Repositorios distribuidos de una organización multidepartamental donde a cada unidad le corresponde un determinado repositorio. Desde el punto de vista lógico, los diferentes espacios de los departamentos se gestionarían con reglas de contenido entrante que alojarían los archivos en diferentes unidades de red departamentales y ubicadas en general en máquinas o discos en red diferentes. Las acciones de la regla serían en primer lugar aplicar el aspecto cm:storeSelector si no esta definido por defecto y aplicar un pequeño script de javascript que modifica la propiedad  contentStore del aspecto.
    • Almacenaje distribuido de documentos según su mimetype (también en base a reglas de contenido). Esta es una de esas cosas que siempre ha buscado el consultor documental que viene de Documentum y permite el guardado de información selectiva en discos en red según mimetype.
    • Otras posibilidades también se refieren al archivado de documentos.
  • CMIS: Alfresco lleva unas cuantas versiones apostando fuerte por el CMIS, como ya hemos señalado en este blog anteriormente en relación a la integración de Alfresco con Joomla. En breve publicaremos un artículo de la integración de Drupal y Alfresco con motivo a nuestra visita al próximo Drupal Camp de Barcelona.
  • Portlets: Una de las últimas características de Alfresco Enterprise es la habilidad de convertir Web Scripts en portlets que se ejecutan en portales (contenedores de portlets) como Liferay incluyendo soporte para SSO y generando URLs amigables.
Mostrando 3 resultados.