Mail Templates Nagios (Con Link de Ver Alarma y Link de Acknowledge)

Una opción para mejorar cosmética y funcionalmente los envíos de Mails en Nagios Core.

Se debe definir previamente en el generic template de host y service (o en el los que sean mejores según su configuraición), la variable que defina la URL de su instancia de Nagios.

Por ejemplo:

    define service{
            name                            generic-service
            _NAGIOS_SERVICE_URL             http://nagios.3ops.com/nagios
            register                        0
            }

    define host{
            name                            generic-host
            _NAGIOS_URL                     http://nagios.3ops.com/nagios
            register                        0
            }

Y a continuación la configuración para notify-host-by-email y notify-service-by-email:

    define command{
            command_name    notify-host-by-email
            command_line    /usr/bin/printf "%b" "\n\
            HOST: "$HOSTNAME$"\n\
            IP: "$HOSTADDRESS$"\n\n\
            Info: $HOSTOUTPUT$\n\n\
            Date/Time: $LONGDATETIME$\n\n\
            ACKNOWLEDGE: "$_HOSTNAGIOS_URL$"/cgi-bin/cmd.cgi?cmd_typ=34&host="$HOSTALIAS$"&service="$SERVICEDESC$"\n\
            VER ALARMA: "$_HOSTNAGIOS_URL$"/cgi-bin/extinfo.cgi?type=2&host="$HOSTALIAS$"&service="$SERVICEDESC$"" | \
            /usr/bin/mail -s "HOST $HOSTSTATE$: $HOSTNAME$" $CONTACTEMAIL$
            }

    define command{
            command_name    notify-service-by-email
            command_line    /usr/bin/printf "%b" "\n\
            HOST: "$HOSTALIAS$"\n\
            IP: "$HOSTADDRESS$"\n\n\
            SERVICIO: "$SERVICEDESC$"\n\
            $SERVICEOUTPUT$\n\n\
            Tipo de Notificacion: "$NOTIFICATIONTYPE$"\n\
            Estado: "$SERVICESTATE$"\n\n\
            Date/Time: $LONGDATETIME$\n\n\
            ACKNOWLEDGE: '$_SERVICENAGIOS_SERVICE_URL$/cgi-bin/cmd.cgi?cmd_typ=34&host=$HOSTALIAS$&service=$SERVICEDESC$'\n\
            VER ALARMA: '$_SERVICENAGIOS_SERVICE_URL$/cgi-bin/extinfo.cgi?type=2&host=$HOSTALIAS$&service=$SERVICEDESC$'" | \
            /usr/bin/mailx -s "SERVICE $SERVICESTATE$: $HOSTALIAS$ ($SERVICEDESC$)" $CONTACTEMAIL$
            }

VER ALARMA y ACKNOWELDEGE se arman con la variable que define la URL de Nagios, y los parámetros del servicio o el host.

También se podría definir el comando de envío con otro nombre y manejar uno y otro (o varios), según la alarma, o incluso según el remitente (por ejemplo un logo del cliente que lo recibe, si fuese multi-cliente).

Saludos!

Read more