Definieren der E-Mail-Adresse, von der Nagios E-Mails sendet


16

Hallo, zurzeit sendet Nagios Benachrichtigungen von nagios@server.domain.com. Wie konfiguriere ich das? Vielen Dank

nagios 

Antworten:


14

In einer Nagios-Standardinstallation ist dies auch in den Befehlen host-notify-by-mailoder definiert service-notify-by-mail, die Sie in finden commands.cfg. Der Standard wäre so etwas wie:

/bin/echo -e "$NOTIFICATIONTYPE$ - Service notification for $SERVICEDESC$ from host $HOSTNAME$ - $HOSTALIAS$\n$SERVICEDESC$: $SERVICEOUTPUT$\n" | /bin/mail -s '$NOTIFICATIONTYPE$/$SERVICESTATE$ - $HOSTNAME$/$SERVICEDESC$' $CONTACTEMAIL$

Fügen Sie einfach eine -r sender@addressOption zum Befehl mail hinzu, und das sollte funktionieren.


Das habe ich getan und es hat gut funktioniert. Aufgrund unseres automatisierten Ticketing-Programms werden verschiedene Benachrichtigungen von verschiedenen Konten gesendet.
Breadly

1
Ich habe dies zwischen /bin/mailund dem-s
jgritty

@RainyRat - Gibt es eine Möglichkeit, Ihre Antwort zu bearbeiten, um -r als ersten Parameter zu setzen? - Wie andere Antworten vorschlagen, dann freuen wir uns, Ihre Antwort zu stimmen: o)
Dazed

3

Die Lösung "-r nagios@domain.com" konnte nicht zum Laufen gebracht werden. Es stellt sich heraus, dass Optionen nach "-" Optionen für sendmail sind. Wenn Sie sich die sendmail-Optionen ansehen, sollte dies "-fnagios @ domain" sein. HINWEIS KEIN LEERZEICHEN zwischen -f und nagios@domain.com.

Also das folgende funktioniert jetzt: -

  command_line    /usr/bin/printf "%b" "Notification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTNAME$\Address: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$LONGSERVICEOUTPUT$" | /bin/mail -s "$SERVICESTATE$ - Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$ -- -fnagios@domain.com

3

Stellen Sie -r nagios @ domain vor $ CONTACTEMAIL $ in commands.cfg


2

Was für mich gearbeitet wurde die Zugabe -r $ADMINEMAIL$vor der -s(unmittelbar nach /bin/mail), und natürlich $ADMINEMAIL$muss in festgelegt werden nagios.cfgmit der admin_emailEinstellung.


1

Ich konnte dies tun, indem ich den Befehl in etwas Lügenhaftes änderte:

command_line /usr/bin/printf "%b" "Notification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTNAME$\Address: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$LONGSERVICEOUTPUT$" | /bin/mail -s "$SERVICESTATE$ - Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$ -- -r $ADMINEMAIL$

Die Magie ist der '- -r'-Teil.

ADMINEMAIL ist in Ihrer Datei nagios.cfg festgelegt, kann jedoch eine beliebige E-Mail-Adresse für die Absenderadresse sein.


1

Keine der oben genannten Funktionen funktioniert mit aktuellen Versionen von Nagios und / oder Postfix. Das Flag, das zu den Nagios-Befehlen "host-notify-by-mail" oder "service-notify-by-mail" in der Datei "commands.cfg" hinzugefügt werden muss, lautet wie folgt:

-a "From: john.doe@uzh.ch"

Beachten Sie, dass die Anführungszeichen unbedingt erforderlich sind!


Dadurch wird die Absenderadresse geändert, die Rücksprungadresse jedoch nicht. Möglicherweise möchten Sie beide ändern.
Christopher K.

0

Dies ist in definiert etc/nagios3/conf.d/contacts_nagios2.cfg

Sie können Benutzer mit E-Mails und Gruppen definieren. Sie können auch verschiedene Gruppen für verschiedene Zwecke konfigurieren - z. B. web_admin für http-Warnungen, admin für Host-Warnungen usw.


In der Kontaktkonfiguration konfigurieren Sie die Empfänger der gesendeten E-Mails, nicht die Absenderadresse . Diese Frage ist , wie die Absenderadresse zu ändern ( „wo es sendet Mails aus “).
Christopher K.

0

Für die bsd-mailx, auf die mein /usr/bin/mailBefehl verweist, schien nichts zu funktionieren, daher habe ich /usr/sbin/sendmail(von postfix bereitgestellt) Folgendes verwendet:

command_line   /usr/bin/printf "%b" "Subject:** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **\n\n**** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /usr/sbin/sendmail -r "nagios@example.com" $CONTACTEMAIL$

Für sendmailzwei Dinge zu beachten:

  • Verwenden Sie -rdiese Option, um den Rückgabepfad (und die Absenderadresse) anzugeben.
  • Es gibt keine -sfür das Thema. Fügen Sie stattdessen den Subject:E-Mail-Header in die printffolgenden zwei Zeilen ein\n\n
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.