Das Versenden von Benachrichtigungen per E-Mail ist mit Checkmk recht einfach und über die Benutzeroberfläche schnell konfigurierbar. Es gibt jedoch eine Voraussetzung: Es muss ein Mailserver vorhanden sein, über den die E-Mails versendet werden können. Wie richtet man einen solchen Server ein? Das ist das Thema dieses Tutorials.

Hinweis: Dieses Tutorial behandelt eine Postfix-Konfiguration, die für Checkmk-Installationen jeder Größe geeignet ist. Wenn Sie eine eher kleine Installation betreiben (weniger als ein paar hundert Benachrichtigungs-E-Mails pro Stunde), sollten Sie vielleicht DragonFly Mail Agent in Betracht ziehen. Die hier vorgestellte Postfix-Einrichtung entspricht jedoch derjenigen, die Tausende von professionellen Checkmk-Anwendern verwenden.

Wir zeigen Ihnen, wie Sie den Postfix-Mailserver installieren und konfigurieren. Postfix ist ein moderner, weit verbreiteter Mailserver, der sich gut mit checkmk einsetzen lässt. Dabei gehen wir davon aus, dass der Postfix-Mail-Transport-Agent auf derselben Maschine wie Checkmk läuft und die Mail-Zustellung lokal mit dem Befehl „sendmail” erfolgt.

Postfix fungiert als lokaler MTA (Mail Transfer Agent), an den Checkmk E-Mails senden kann. Liegt das Ziel außerhalb Ihres LANs, leitet Postfix die Nachricht an den zuständigen Mailserver weiter, der die Zustellung übernimmt. Mit anderen Worten: Postfix stellt E-Mails intern zu und leitet sie bei Bedarf an externe Mailserver weiter.

Postfix-Installation

Falls Postfix noch nicht installiert ist, können Sie es über die offiziellen Repositorys zum System hinzugefügt werden. Unter Debian/Ubuntu verwenden Sie dazu folgenden Befehl:

sudo apt update
sudo apt install postfix

Auf RHEL/CentOS:

sudo yum install postfix

Sollte die Installation eine Auswahl der Mailkonfiguration erfordern, wählen Sie „Internet Site“. Damit teilen Sie Postfix mit, dass es zum Senden von E-Mails an andere E-Mail-Server eingesetzt werden soll – also als sogenannter „SmartHost“ beziehungsweise Relay-Host.

Postfix-Konfiguration

Die Hauptkonfigurationsdatei von Postfix befindet sich unter /etc/postfix/main.cf. Nach der Installation sollte die Datei bereits vorhanden und mit den Standardoptionen gefüllt sein. Wir interessieren uns nur für einige davon.

myhostname = checkmk.yourdomain.com
myorigin = /etc/mailname
inet_interfaces = loopback-only
relayhost = [smtp.yourmailprovider.com]:587
# smtp_sasl_auth_enable = yes
# smtp_sasl_password_maps = static:YOUR-SMTP-USER-NAME-HERE:YOUR-SMTP-SERVER-PASSWORD-HERE
# smtp_sasl_security_options = noanonymous

Die wichtigste Einstellung an dieser Stelle ist relayhost, also die Adresse Ihres Servers. Statt des üblichen Ports 25 wird Port 587 verwendet, da viele Provider den Standardport zur Eindämmung von Spam blockieren. Die Option myorigin verweist auf eine Datei, die Ihren vollständigen Domainnamen enthält. Debian- und Ubuntu-basierte Distributionen erstellen diese Datei normalerweise automatisch während der Postfix-Installation. Falls nicht, können Sie sie selbst erstellen oder Ihren Domainnamen direkt als Wert für myorigin eintragen.

Hinweis: Achten Sie auf die Zeile inet_interfaces = loopback-only. Diese weist Postfix an, dass es nur auf dem lokalen Interface lauscht und keine Ports auf externen Netzwerkschnittstellen öffnet. Überprüfen Sie zusätzlich, ob von außen auf die Ports 25, 465 und 587 zugegriffen werden kann und blockieren Sie gegebenenfalls den Zugriff auf diese Ports per Firewall.

Wir haben einige Optionen im Zusammenhang mit der SASL-Authentifizierung auskommentiert, da sie nicht unbedingt erforderlich sind Ihre Organisation oder Ihr ISP könnte diese jedoch voraussetzen. In diesem Fall entfernen Sie die vorübergehende Auskommentierung bei smtp_sasl_auth_enable, smtp_sasl_password_maps und smtp_sasl_security_options. Anpassen müssen Sie lediglich die Option password_maps, indem Sie dort Ihren Namen und Ihr Passwort hinterlegen. Alternativ können Sie auch eine lokale SASL-Implementierung verwenden und die dort eingerichteten Zugangsdaten nutzen. Für die meisten kleineren Organisationen reicht es allerdings aus, sämtliche E-Mails über den Provider zu verwenden und dessen Zugangsdaten zu verwenden.

Wenn Sie mehr als ein Konto auf dem Mailserver Ihres Providers haben oder wenn einfach mehr als ein Benutzer diese Postfix-Installation verwenden sollen, ist es am besten, deren Zugangsdaten in der Datei /etc/postfix/sasl_passwd abzulegen. Diese sollte folgendermaßen aussehen:

user1@example.com			        
username1:password1
user2@example.com
username2:password2
# Login info for the default relayhost    
[smtp.youmailprovider.com]			  
username:password

Und in main.cf verwenden:

sudo systemctl restart postfix

Denken Sie daran, nach jeder Änderung an der Datei den Befehl postmap /etc/postfix/sasl_passwd auszuführen. 

Sobald die Postfix-Konfiguration wie oben beschrieben eingerichtet ist, laden Sie den Mailserver mit dem folgenden Befehl neu:

sudo systemctl restart postfix

Die Einstellungen sind nun übernommen und der Postfix-Mailserver sollte laufen. Sie können die korrekte Zustellung von  E-Mails mit folgendem Befehl testen:

echo "This is a test email body." | mail -s 
"Subject" -r "you<your-domain-dot-com>"
you@example-dot-com

Checkmk wird mit Heirloom mailx ausgeliefert, das den oben genannten Befehl enthält (in ~/bin/mail). Sie können dieses verwenden oder auf die Variante Ihres Betriebssystems zurückgreifen, für dieses Tutorial spielt das keine Rolle. Wichtig ist nur, dass wir eine Möglichkeit haben, zu prüfen, ob Postfix E-Mails korrekt weiterleitet.

Geben Sie dem Server ein paar Sekunden Zeit – insbesondere, wenn Sie an einen entfernten Mailserver zustellen – und prüfen Sie anschließend, ob die Test-E-Mail zugestellt wurde. Die Postfix-Logs finden Sie unter /var/log/mail.log. Achten Sie auf eine Zeile mit status=sent, um die erfolgreiche Zustellung zu bestätigen. Zusätzlich können Sie auch das Journal von systemd prüfen mit:

sudo journalctl -u postfix

Checkmk-Konfiguration für E-Mail-Benachrichtigungen

Die Konfiguration von Checkmk für E-Mail-Benachrichtigungen ist unkompliziert. Wahrscheinlich haben Sie bereits alles Nötige eingerichtet, damit sie funktionieren. Checkmk benötigt lediglich drei Dinge:

  • Einen funktionierenden E-Mail-Server (den wir gerade eingerichtet haben).
  • Einen Benutzer mit einer gültigen E-Mail-Adresse.
  • Eine Kontaktgruppe für diesen Benutzer.

Nachdem Sie den ersten Punkt erledigt haben, prüfen Sie unter Setup > Users > Users, ob Ihrem Benutzer eine gültige E-Mail-Adresse zugewiesen ist. Falls nicht, fügen Sie diese jetzt hinzu. In derselben Benutzer-Detailansicht müssen Sie weiter unten im Abschnitt „Contact Groups” sicherstellen, dass der Benutzer einer Kontaktgruppe zugeordnet ist. Dies ist erforderlich, um E-Mail-Benachrichtigungenzu aktivieren, die je nach eingerichteten Regeln durch bestimmte Ereignisse ausgelöst werden. Die Regeln selbst gehen weit über den Rahmen dieses Tutorials hinaus; weitere Informationen hierzu finden Sie im Checkmk-Benutzerhandbuch im Abschnitt über Regeln

Hinweis: Abhängig davon, wie strikt der E-Mail-Server Ihres Providers konfiguriert ist, kann es zusätzlich erforderlich sein, unter Parameter for HTML email die E-Mail-Adresse einzutragen, die dem Konto entspricht, mit dem Sie sich anmelden.

Von Checkmk-Seite ist nichts weiter erforderlich. Mit dem funktionierenden Postfix-Server wird nun jedes Mal, wenn eine Regel ein Ereignis für die Kontaktgruppe des Benutzers auslöst, eine E-Mail-Benachrichtigung an die mit dem Benutzer verknüpfte E-Mail-Adresse gesendet. Die E-Mail wird dabei an Postfix übergeben. Handelt es sich um eine lokale Adresse, stellt Postfix die Zustellung direkt im lokalen Netzwerk sicher.  Ist es hingegen eine externe Adresse, leitet Postfix die Nachricht über den in der Postfix-Hauptkonfiguration unter relayhost angegeben Mailserver Ihres Providers weiter.

Es ist ratsam, nicht auf ein Ereignis zu warten, das eine Benachrichtigung auslöst, sondern die E-Mail-Benachrichtigung gleich zu testen. Dies können Sie unter Setup > Events > Notifications tun. Dort finden Sie die Schaltfläche test notification. 

Weitere Informationen zu E-Mail-Benachrichtigungen finden Sie im offiziellen Checkmk Handbuch. Dieser erläutert im Detail, wie Sie Regeln einrichten und das Erscheinungsbild von E-Mails anpassen können.