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 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.i386.rpm
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á
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
Referencias:
http://www.voztovoice.org/?q=node/354
No hay comentarios:
Publicar un comentario