tresMonitor

 

     Utilizar tresMonitor es muy sencillo. Para una monitorización simple de un servidor web, basta con editar el archivo monitor.xml, alterando los campos relativos a la localización del servicio. Un posible fichero sería este:

<?xml version="1.0"?>
<monitorConfig>
 <logPath>d:/monitor/log/</logPath>
 <service name="MiServicio">
  <frecuence>300000</frecuence>
  <tries>3</tries>

  <testActions>
   <action class="org.tres.monitor.actions.HttpPing">
   <parameter name="url" value="http://localhost:8080/index.jsp"/>
   <parameter name="timeout" value="10000"/>
   <parameter name="validHTTPCodes" value="200,202"/>
  </action>
  </testActions>
  <successActions>
 </successActions>
 <failActions>
  <action class="org.tres.monitor.actions.SendEmail">
   <parameter name="from" value="monitor@dominio.com"/>
   <parameter name="to" value="admin@dominio.com"/>
   <parameter name="subject" value="Tomcat se ha caído"/>
   <parameter name="body" value="Se intenta levantar..."/>
   <parameter name="smtp" value="mail.correo.com"/>
  </action>
  <action class="org.tres.monitor.actions.RuntimeCommand">
   <parameter name="command" value="/etc/init.d/tomcat start"/>
  </action>
 </failActions>
 <postRecoveryActions>
  <action class="org.tres.monitor.actions.SendEmail">
   <parameter name="from" value="monitor@dominio.com"/>
   <parameter name="to" value="admin@dominio.com"/>
   <parameter name="subject" value="Tomcat vuelve a responder"/>
   <parameter name="body" value="Duerme tranquilo :-P"/>
   <parameter name="smtp" value="mail.correo.com"/>
  </action>
 </postRecoveryActions>
</service>
</monitorConfig>

Se han señalado en rojo las regiones que habría que modificar. Hecho esto, arrancamos el servicio ejecutando el script bin/tresMonitor.sh start, y ya está. tresMonitorejecutará periódicamente las pruebas que hayamos indicado en el fichero de configuración, según la frecuencia establecida, y nos enviará un correo electrónico cuando la prueba no sea superada, además de intentar levantar el servidor. Podremos detener o reiniciar el servicio mediante el mismo script: bin/tresMonitor.sh stop|restart.

Los servicios

La etiqueta <service> define un servicio que queremos monitorizar. Para ese servicio definimos las acciones de prueba, las de éxito (si se pasa la prueba correctamente) y las de fracaso (si no se pasa la prueba). Además, podemos definir cada cuánto tiempo (en milisegundos) queremos lanzar las acciones de prueba, mediante la etiqueta <frecuence> y el número de fallos que se permiten antes de lanzar las acciones de fracaso, en la etiqueta <tries>.

Las acciones

Las etiquetas <action...> del fichero de configuración definen las acciones que queremos realizar, ya sea como parte de la prueba de que el servidor sigue en pié como para levantarlo o informar al administrador. Las acciones predefinidas son HttpPing, RuntimeCommand, SendEmail y TimeStampLog, que proporcionan funcionalidades básicas pero muy útiles para la monitorización.

Si alguna vez has utilizado Ant, te sonará este modelo, y habrás imaginado que es sencillo ampliar la funcionalidad de tresMonitor definiendo nuevas acciones. La clase a heredar es org.tres.monitor.actions.AbstractAction. Échale un vistazo a los JavaDocs para hacerte una idea de cómo está pensado.


Mister-i Mobile Solutions SourceForge.net Logo