Nagios: enviar las notificaciones a una cuenta GoogleTalk

En artículos anteriores, hemos visto como configurar SMNP en Asterisk y como, luego, instalar y configurar Nagios para monitorear el servidor Asterisk. Las notificaciones con esa configuración se reciben a una cuenta de correo electrónico. Hoy vamos a hacer un paso más. Veremos como enviar las mismas notificaciones, además de una cuenta de correo electrónico, a una cuenta GoogleTalk como mensaje instantáneo. La misma configuración es valida para cualquier tipo de servidor XMPP. Como los planes de datos para celulares en Colombia son bastantes utilizados, la idea es recibir esas notificaciones de manera inmediata. Para activar nuestra cuenta GoogleTalk en el celular, podemos apoyarnos a distintos productos, entre los cuales:

La configuración de este tipo de solución se hace a través de un plugin para Nagios escrito en perl (notify_via_jabber.pl) y la modifica de tres archivos de configuración de Nagios:

  • templates.cfg
  • commands.cfg
  • contacts.cfg

Como prerrequisito tenemos que instalar la librería Perl Net::JAbber y sus dependencias.

Como esa librería no se encuentra en los repositorios estándar de CentOS, tendremos que instalar el repositorio rpmforge:

cd /usr/src

wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.i...

rpm -ivh rpmforge-release-0.5.1-1.el5.rf.i386.rpm

Luego instalamos la librería perl:

yum install perl-Net-Jabber

Seguimos con el plugin para Nagios:

cd /usr/lib/nagios/plugins/

wget http://www.voztovoice.org/tmp/notify_via_jabber.pl

Lo abrimos:

nano notify_via_jabber.pl

y se modifican estas líneas:

my $username = "usuarioGoogleTalk";
my $password = "password";

Si el usuario de GoogleTalk es fulano@gmail.com y la password es sesamo se pone:

my $username = "fulano";
my $password = "sesamo";

Se guardan los cambios y se vuelve ejecutable el archivo:

chmod +x notify_via_jabber.pl

Se cambian los permisos del archivo para que sea ejecutable por el usuario nagios:

chown nagios:nagios notify_via_jabber.pl

La sintaxis del plugin es muy sencilla:

Usage...
[jabberid] [message]

  • jabberid es el usuario googletalk que recibirás las notificaciones (se indica solamente la parte que precede @gmail.com
  • message es el mensaje que se enviará

Terminada esta parte se pasa a la configuración de Nagios iniciando por el archivo templates.cfg:

nano /etc/nagios/objects/templates.cfg

Retomamos el bloque “define contact” y añadimos la parte en negrita:

define contact{
        name                            generic-contact
        service_notification_period     24x7                  
        host_notification_period        24x7                  
        service_notification_options    w,u,c,r,f,s           
        host_notification_options       d,u,r,f,s             
        service_notification_commands   notify-service-by-email,notify-service-jabber
        host_notification_commands      notify-host-by-email,notify-host-jabber
        can_submit_commands             1
        register                        0
        }

Guardamos los cambios. De esta forma le decimos a Nagios que las notificaciones de los servidores y de los servicios hay que enviarlas utilizando los comandos notify-host-jabber y notify-service-jabber

Ahora hay que definir estos dos nuevos comandos en el archivo commands.cfg:

nano /etc/nagios/objects/commands.cfg

en en Bloque “SAMPLE NOTIFICATION COMMANDS” añadimos estos dos bloques:

# 'host-notify-by-jabber' command definition
define command{
        command_name    notify-host-jabber
        command_line    /usr/lib/nagios/plugins/notify_via_jabber.pl $CONTACTADDRESS1$ "Host '$HOSTALIAS$' is $HOSTSTATE$ - Info: $HOSTOUTPUT$"

}

# 'service-notify-by-jabber' command definition
define command {
        command_name    notify-service-jabber
        command_line    /usr/lib/nagios/plugins/notify_via_jabber.pl $CONTACTADDRESS1$ "$NOTIFICATIONTYPE$ $HOSTNAME$ $SERVICEDESC$ $SERVICESTATE$ $SERVICEOUTPUT$ $LONGDATETIME$"
        }

Nótese que la línea “command_line” de ambos bloques empieza con la variable/macro  $CONTACTADDRESS1$ Esta variable la configuramos en el ultimo archivo de Nagios que tenemos que modificar:

nano /etc/nagios/objects/contacts.cfg

en este bloque:

define contact{
        contact_name       admin             
        use                             generic-contact         
        alias                           Nagios Admin            
        email                         sutano@gmail.com;
        }

añadimos la línea que aparece en negrita:

define contact{
        contact_name        admin             
        use                             generic-contact       
        alias                           Nagios Admin           
        email                         sutano@gmail.om;
        address1                  sutano
        }

En define contact podemos indicar, además de la línea “email”, 6 líneas más contenientes direcciones de correo electrónico y/o valores personalizado. En este caso la línea address1 contiene el valor sutano que es la cuenta GoogleTalk donde queremos recibir las notificaciones. Cada vez que se define una de estas direcciones, el valor será contenido en la variable $CONTACT más el nombre, en mayúscula, de la etiqueta asignada; en este caso, como la etiqueta es address1 el valor sutano será contenido en la variable $CONTACTADDRESS1$ que no es nada más la variable que hemos definido en el archivo de configuración commands.cfg

Terminada la parte dedicada a la configuración de Nagios se controla que todo esté bien con el comando:

nagios –v /etc/nagios/nagios.cfg

El resultado debe ser:

Total Warnings: 0
Total Errors:   0

Se reinicia Nagios:

/etc/init.d/nagios restart

Ahora las notificaciones llegarán al correo electrónico y como mensajes instantáneos al usuario sutano@gmail.com

Un ejemplo:

jabber1

Vota el Articulo: 

Sin votos (todavía)
Evalúa la calidad del articulo
Suscribirse a Comentarios de "Nagios: enviar las notificaciones a una cuenta GoogleTalk" Suscribirse a VozToVoice - Todos los comentarios