Home   Profil   Fun
#38 Linux  01.09.2008

Nagios notification-Kommandos mit Postfix sendmail

Postfix installiert leider kein Programm mit dem Namen "mail". Dieses wird jedoch von Nagios in den notification-Kommandos der Defaultkonfiguration erwartet. Postfix installiert stattdessen sein eigenes sendmail-Programm. Dieses arbeitet mit einer anderen Syntax und befindet sich auch in einem anderen Verzeichnis. Um Nagios nun dazu zu bringen sendmail zu verwenden am besten zuerst die Datei commands.cfg der Nagioskonfiguration öffnen und darin die folgenden Zeilen suchen.
# 'notify-host-by-email' command definition
define command{
       command_name    notify-host-by-email
       command_line    /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HO
STADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /usr/bin/mail -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEM
AIL$
       }

# 'notify-service-by-email' command definition
define command{
       command_name    notify-service-by-email
       command_line    /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddre
ss: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$" | /usr/bin/mail -s "** $NOTIFICATIONTYPE$ Servi
ce Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$
       }

Mit diesen Zeilen versendet Nagios die Email-Notifications. Nur zwei Änderungen sind notwendig um sie auf Postfix sendmail umzustellen. Die erste ist, das Email-Subject hinter dem Parameter (-s) an den Anfang des zweiten Strings zu verschieben, der nach printf folgt. Die zweite ist das Kommando und den Pfad von /usr/bin/mail auf /usr/sbin/sendmail zu ändern.
# NEW 'notify-host-by-email' command definition
define command{
        command_name    notify-host-by-email
        command_line    /usr/bin/printf "%b" "Subject:** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **\n***** Nagios *****\n\nNotification Type
: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /usr/sbin/sendmail $
CONTACTEMAIL$
        }

# NEW 'notify-service-by-email' command definition
define command{
        command_name    notify-service-by-email
        command_line    /usr/bin/printf "%b" "Subject:** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **\n***** Nagios *****
\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATE
TIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$" | /usr/sbin/sendmail $CONTACTEMAIL$


Nagios und Cacti
Nagios-Training