Enviado por admin el
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:
Comentarios recientes