Enviar notificaciones HTML en Nagios 4.x

nagios-notif-up

 

 

Es un echo que las notificaciones via correo de Nagios Core dejan mucho que desear al ser en texto plano.

nagios-notif-text

 

 

Por lo cual veremos de manera sencilla como darles  formato HTML en unos cuantos pasos.

Es rigurosamente necesario mencionar que los scripts que comparto no son de mi autoria, un servidor solo se dió a la tarea de modificar los ficheros php para ajustarlos a cualquier version de Nagios 4.x asi como realizar pequeños ajustes.  el Autor es shawnbrito y el post original lo pueden localizar en exchange.nagios.org  .

 

 

Pasos a seguir:


 

Guarda en /usr/local/nagios/lib (Depende de tu version puede variar a /usr/local/nagios/libexec) los archivos nagios_host_mail  y nagios_service_mail

Haz ejecutable ambos archivos


chmod +x nagios_host_mail
chmod +x nagios_service_mail

 

 

Edita los ficheros

Verifica que la primera linea coincida con el directorio de instalación de PHP en tu equipo asi como el del fichero php.ini


#!/usr/bin/php -c /etc/php5/apache2/php.ini

 

Modifica el remitente del correo , ademas de la dirección de tu servidor nagios
html-notif-mod

 

 

Edita el fichero /usr/local/nagios/etc/objects/commands.cfg

Tienes que agregar las siguientes lineas


################ PRUEBA NOTIFICACION HTML #####################
define command{
command_name notify-service-by-email-html
command_line /usr/local/nagios/lib/nagios_service_mail "$NOTIFICATIONTYPE$" "$HOSTNAME$" "$HOSTALIAS$" "$HOSTSTATE$" "$HOSTADDRESS$" "$SERVICEOUTPUT$" "$SHORTDATETIME$" "$SERVICEDESC$" "$SERVICESTATE$" "$CONTACTEMAIL$" "$SERVICEDURATION$" "$SERVICEEXECUTIONTIME$" "$TOTALSERVICESWARNING$" "$TOTALSERVICESCRITICAL$" "$TOTALSERVICESUNKNOWN$" "$LASTSERVICEOK$" "$LASTSERVICEWARNING$" "$SERVICENOTIFICATIONNUMBER$"
}

define command{
command_name notify-host-by-email-html
command_line /usr/local/nagios/lib/nagios_host_mail "$NOTIFICATIONTYPE$" "$HOSTNAME$" "$HOSTALIAS$" "$HOSTSTATE$" "$HOSTADDRESS$" "$HOSTOUTPUT$" "$SHORTDATETIME$" "$SERVICEDESC$" "$SERVICESTATE$" "$CONTACTEMAIL$" "$TOTALHOSTSUP$" "$TOTALHOSTSDOWN$"
}

 

 

A diferencia de lo sugerido por shawnbrito, decide no reemplazar el comando notify-service-by-email,al contrario cree un nuevo comando llamado notify-service-by-email-html para cambiar entre una notificacion y otra cuando sea necesario.

 

 

Cambia el nombre del comando de notificación en /usr/local/nagios/etc/objects/templates.cfg

En tu Define Contact debes modificar las siguientes 2 lineas:


 service_notification_commands   notify-service-by-email-html
 host_notification_commands    notify-host-by-email-html

 

 

 

Reiniciar servicio Nagios


service nagios restart
o
systemctl restart nagios.service

Puedes enviar Custom notifications para realizar las pruebas.
Si todo sale bien, deberan recibir notificaciones como las siguientes:

nagios-notif-up

nagios-notif-down

nagios-notif-warn

 

 

Espero les sea de utilidad.

Saludos

Anuncios

5 respuestas a “Enviar notificaciones HTML en Nagios 4.x

  1. Así fue que me funciono

    define command{
    command_name notify-service-by-email
    command_line /usr/local/nagios/libexec/nagios_service_mail “$NOTIFICATIONTYPE$” “$HOSTNAME$” “$HOSTALIAS$” “$HOSTSTATE$” “$HOSTADDRESS$” “$SERVICEOUTPUT$” “$SHORTDATETIME$” “$SERVICEDESC$” “$SERVICESTATE$” “$CONTACTEMAIL$” “$SERVICEDURATIONSEC$” “$SERVICEEXECUTIONTIME$” “$TOTALSERVICESWARNING$” “$TOTALSERVICESCRITICAL$” “$TOTALSERVICESUNKNOWN$” “$LASTSERVICEOK$” “$LASTSERVICEWARNING$” “$SERVICENOTIFICATIONNUMBER$”
    }

    define command{
    command_name notify-host-by-email
    command_line /usr/local/nagios/libexec/nagios_host_mail “$NOTIFICATIONTYPE$” “$HOSTNAME$” “$HOSTALIAS$” “$HOSTSTATE$” “$HOSTADDRESS$” “$HOSTOUTPUT$” “$SHORTDATETIME$” “$SERVICEDESC$” “$SERVICESTATE$” “$CONTACTEMAIL$” “$TOTALHOSTSUP$” “$TOTALHOSTSDOWN$”
    }

    Me gusta

  2. Estimado tengo Centos 6.8 en mi caso no me esta fucnionado.

    define command{
    command_name notify-service-by-email
    command_line /usr/local/nagios/libexec/nagios_service_mail "$NOTIFICATIONTYPE$" "$HOSTNAME$" "$HOSTALIAS$" "$HOSTSTATE$" "$HOSTADDRESS$" "$SERVICEOUTPUT$" "$SHORTDATETIME$" "$SERVICEDESC$" "$SERVICESTATE$" "$CONTACTEMAIL$" "$SERVICEDURATION$" "$SERVICEEXECUTIONTIME$" "$TOTALSERVICESWARNING$" "$TOTALSERVICESCRITICAL$" "$TOTALSERVICESUNKNOWN$" "$LASTSERVICEOK$" "$LASTSERVICEWARNING$" "$SERVICENOTIFICATIONNUMBER$"
    }

    define command{
    command_name notify-host-by-email
    command_line /usr/local/nagios/libexec/nagios_host_mail "$NOTIFICATIONTYPE$" "$HOSTNAME$" "$HOSTALIAS$" "$HOSTSTATE$" "$HOSTADDRESS$" "$HOSTOUTPUT$" "$SHORTDATETIME$" "$SERVICEDESC$" "$SERVICESTATE$" "$CONTACTEMAIL$" "$TOTALHOSTSUP$" "$TOTALHOSTSDOWN$"
    }

    Luego de reiniciar servicios httpd, posftix y nagios no caen las alertas en formato html. Ahora si vuelvo a la anterior configuración si.

    define command{
    command_name notify-host-by-email
    command_line /usr/bin/printf “%b” ” Servidor de Monitoreo \n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n” | /bin/mail -s “** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **” $CONTACTEMAIL$
    }

    Me pueden dar una mano.

    Me gusta

Agradezco tu opinión

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s