domingo, 20 de mayo de 2012

Monitorear con Nagios un proceso Python

En el Server que corre el Python (192.168.0.100):


Creamos el script para chequear el python:

server# vim /usr/local/apps/nagios/libexec/check_miPython
#!/bin/bash
/usr/bin/ps -efa |grep mi_python.py|grep -v grep > /tmp/mi_python.py.log
if test $? -eq 0
then
echo OK - Python mi_python.py is RUNNING
/usr/bin/rm /tmp/mi_python.py.log
exit 0
else
echo CRITICAL - Python mi_python.py is NOT RUNNING !!!
/usr/bin/rm /tmp/mi_python.py.log
exit 2
fi
NOTA: el 0 devuelve OK, el 1 WARNING y el 2 CRITICAL


Damos permisos de ejecución:
server# chmod a+x /usr/local/apps/nagios/libexec/check_miPython.sh


Editamos la configuración del NRPE y lo agregamos en la sección de comandos customizados:
server# vim /usr/local/apps/nagios/etc/nrpe.cfg
command[check_miPython]=/usr/local/apps/nagios/libexec/check_miPython


Matamos y volvemos a correr el nrpe:
server# ps -efa |grep nrpe
  nagios 24497     1   0 12:47:49 ?           0:00 /usr/local/nagios/bin/nrpe -d -c /usr/local/nagios/etc/nrpe.cfg
    root 24920 24763   0 12:57:59 pts/22      0:00 grep nrpe
server# kill -9 24497
server# /usr/local/nagios/bin/nrpe -d -c /usr/local/nagios/etc/nrpe.cfg


Lo testeamos:
server# /usr/local/nagios/libexec/check_miPython
OK - Python miPython is RUNNING


Cambiamos en el script el nombre del proceso para ver que realmente funciona y nos devuelve critical:
server# vim /usr/local/nagios/libexec/check_miPython
#Cambiamos mi_python.py por mi_piton.py
#en la línea: /usr/bin/ps -efa |grep mi_python.py|grep -v grep > /tmp/mi_python.py.log


Volvemos testear y ahora nos devuelve CRITICAL:
server# /usr/local/nagios/libexec/check_miPython
CRITICAL - Python miPython is NOT RUNNING !!!

Volvemos a cambiarlo para que funcione correctamente como estaba anteriormente.


Ahora vamos al server del nagios para agregar al monitoreo:



Testeamos el servicio mediante el check_nrpe:
nagios# /usr/local/nagios/libexec/check_nrpe -H 192.168.0.100 -c check_miPython
OK - Python miPython is RUNNING


Editamos el archivo services.conf:
nagios# vim /usr/local/nagios/etc/services.cfg
..... define service{
use                             generic-service
host_name                       pythonServer
service_description             mi_Python
check_command                   check_nrpe!check_miPython
}
        .....


Checkeamos la config del nagios:
nagios# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg


Reiniciamos el servicio de nagios:
nagios# /etc/init.d/nagios reload


No hay comentarios: