1. Grundlegendes zu Benachrichtigungen
Benachrichtigungen (notifications) bedeuten in Checkmk, dass Benutzer aktiv darüber informiert werden, wenn sich der Zustand eines Hosts oder Services ändert.
Nehmen wir an, zu einem bestimmten Zeitpunkt geht auf dem Host mywebsrv17
der Service HTTP foo.bar
von OK auf CRIT.
Checkmk erkennt dies und sendet standardmäßig an alle Kontaktpersonen dieses Services eine E-Mail mit den wichtigsten Daten zu diesem Ereignis.
Später ändert sich der Zustand wieder von CRIT auf OK und die Kontakte bekommen eine erneute E-Mail — diesmal zu dem Ereignis, das Recovery genannt wird.
Dies ist aber nur die einfachste Art der Benachrichtigung. Es gibt zahlreiche Möglichkeiten, wie Sie das verfeinern können:
Sie können per SMS, Pager, Slack und anderen Internetdiensten benachrichtigen.
Sie können Benachrichtigungen an bestimmten Zeitperioden festmachen, z.B. um Bereitschaftsdienste zu berücksichtigen.
Sie können Eskalationen definieren, falls der zuständige Kontakt nicht schnell genug aktiv wird.
Benutzer können selbstständig Benachrichtigungen „abonnieren“ oder abbestellen, wenn Sie das zulassen möchten.
Sie können generell über Regeln festlegen, wer wann über was benachrichtigt werden soll.
Bevor Sie jedoch mit den Benachrichtigungen beginnen, sollten Sie noch Folgendes beachten:
Benachrichtigungen sind ein optionales Feature. Manche Anwender verzichten auf Benachrichtigungen, da Sie einen Leitstand haben, der rund um die Uhr besetzt ist und nur mit der Statusoberfläche arbeitet.
Aktivieren Sie die Benachrichtigungen zunächst nur für sich selbst und machen Sie sich für alles zuständig. Beobachten Sie mindestens ein paar Tage, wie groß das Volumen an Benachrichtigungen ist.
Aktivieren Sie die Benachrichtigungen für andere Benutzer erst dann, wenn Sie die Fehlalarme (false positives) auf ein Minimum reduziert haben. Was Sie dafür tun können, haben wir im Kapitel über die Feinjustierung des Monitorings beschrieben.
2. E-Mail-Versand vorbereiten
Der einfachste und bei weitem üblichste Weg ist die Benachrichtigung per E-Mail. In einer E-Mail ist genug Platz, um auch die Graphen von Metriken mitzusenden.
Bevor Sie per E-Mail benachrichtigen können, muss Ihr Checkmk-Server für das Versenden von E-Mails eingerichtet sein. Bei allen unterstützten Linux-Distributionen läuft das auf Folgendes hinaus:
Installieren Sie einen SMTP-Serverdienst. Dies geschieht meist automatisch bei der Installation der Distribution.
Geben Sie einen Smarthost an. Nach diesem werden Sie meist bei der Installation des SMTP-Servers gefragt. Der Smarthost ist ein Mailserver in Ihrem Unternehmen, der für Checkmk die Zustellung der E-Mails übernimmt. Sehr kleine Unternehmen haben meist keinen eigenen Smarthost. In diesem Fall verwenden Sie den SMTP-Server, der Ihnen von Ihrem E-Mail-Provider bereitgestellt wird.
Wenn der E-Mail-Versand korrekt eingerichtet ist, sollten Sie in der Lage sein, auf der Kommandozeile eine E-Mail zu versenden, z.B. über diesen Befehl:
OMD[mysite]:~$ echo "Testcontent" | mail -s Test harry.hirsch@example.com
Die E-Mail sollte ohne Verzögerung zugestellt werden.
Falls das nicht klappt, finden Sie Hinweise in der Logdatei des SMTP-Servers im Verzeichnis /var/log/
.
Mehr Details zum Einrichten des E-Mail-Versands unter Linux finden Sie im Artikel über Benachrichtigungen.
3. E-Mail-Benachrichtigungen aktivieren
Wenn der E-Mail-Versand grundsätzlich funktioniert, ist das Aktivieren der Benachrichtigungen sehr einfach. Damit ein Benutzer Benachrichtigungen per E-Mail erhält, müssen die folgenden zwei Voraussetzungen erfüllt sein:
Dem Benutzer ist eine E-Mail-Adresse zugeordnet.
Der Benutzer ist für Hosts oder Services zuständig — über die Zuweisung von Kontaktgruppen.
E-Mail-Adresse und Kontaktgruppen weisen Sie über die Eigenschaften des Benutzers zu, wie wir es zuvor im Kapitel über die Benutzerverwaltung gezeigt haben, z.B. indem Sie Ihrem Benutzerkonto cmkadmin
Ihre E-Mail-Adresse und die Kontaktgruppe Everything hinzufügen.
4. Benachrichtigungen testen
Es wäre ein bisschen umständlich, zum Test der Benachrichtigungen auf ein echtes Problem zu warten oder gar eines zu provozieren.
Einfacher geht das mit Fake check results, einem Kommando, mit dem Sie testweise den Zustand eines Hosts oder Services manuell verändern können — sofern Sie ein Checkmk-Administrator sind, d.h., die Rolle admin
besitzen.
Sie finden Fake check results auf einem ähnlichen Weg wie die Kommandos zum Quittieren von Problemen und zur Festlegung von Wartungszeiten: Öffnen Sie eine Tabellenansicht mit einer Service-Liste (am schnellsten über den Overview), blenden Sie die Checkboxen ein und wählen Sie einen Service aus — am Besten einen, der gerade OK ist. Klicken Sie im Menü Commands > Fake check results. Dieses Kommando wird allerdings nur dann angeboten, wenn im Menü der „Show more“-Modus aktiv ist.
![Dialog zur manuellen Festlegung des Status eines Hosts/Services.](../images/intro_fake_check_results.png)
Klicken Sie auf Critical und bestätigen Sie die Nachfrage, um den Service auf CRIT zu setzen. Dies sollte sofort eine Benachrichtigung auslösen. Nach spätestens einer Minute — wenn der nächste reguläre Check ausgeführt wird — geht der Service dann von selbst wieder auf OK und eine zweite Benachrichtigung zum Recovery sollte ausgelöst werden.
Falls Sie keine E-Mail bekommen haben, muss das nicht gleich ein Fehler sein, denn es gibt Situationen, in denen die Benachrichtigungen von Checkmk absichtlich unterdrückt werden, z.B.:
wenn Benachrichtigungen im Snapin Master control ausgeschaltet sind;
wenn ein Host oder Service sich in einer Wartungszeit befindet;
wenn ein Host DOWN ist und daher keine Benachrichtigungen seiner Services ausgelöst werden;
wenn der Status in letzter Zeit zu oft gewechselt hat und der Service deswegen als
„unstetig“ (flapping) markiert wurde. Dies kann übrigens schnell passieren, wenn Sie mittels Fake check results den Zustand häufig gewechselt haben.
5. Benachrichtigungen feinjustieren
Sie können Benachrichtigungen in Checkmk auf unterschiedlichste Art mit komplexen Regeln an Ihre Bedürfnisse (bzw. die Ihrer Firma) anpassen. Alle Einzelheiten dazu erfahren Sie im Artikel über Benachrichtigungen.
6. Fehlersuche
Das Benachrichtigungsmodul in Checkmk ist sehr komplex — weil es sehr viele, sehr unterschiedliche Anforderungen abdeckt, die sich in langjähriger Praxiserfahrung als wichtig herausgestellt haben. Die Frage „Warum hat Checkmk hier nicht benachrichtigt?“ wird Ihnen deswegen gerade am Anfang öfter gestellt werden, als Sie vielleicht vermuten. Deswegen finden Sie hier ein paar Tipps zur Fehlersuche.
Wenn eine Benachrichtigung von einem bestimmten Service nicht ausgelöst wurde, ist der erste Schritt, die Historie der Benachrichtigungen für diesen Service zu kontrollieren. Dazu öffnen Sie die Detailseite des Services (indem Sie im Monitoring auf den Service klicken). Wählen Sie im Menü Service > Service notifications. Dort finden Sie alle Ereignisse zu Benachrichtigungen für diesen Service chronologisch von neu nach alt aufgelistet.
Hier ist ein Beispiel eines Services, für den die Benachrichtigung versucht wurde, aber der E-Mail-Versand gescheitert ist, weil kein SMTP-Server installiert ist.
![Liste der Ereignisse zu Benachrichtigungen für einen Service.](../images/intro_service_notifications.png)
Noch mehr Informationen finden Sie in der Datei ~/var/log/notifiy.log
.
Diese können Sie als Instanzbenutzer z.B. mit dem Befehl less
auslesen:
OMD[mysite]:~$ less var/log/notify.log
Falls Sie less
noch nicht kennen:
Mit der Tastenkombination Shift+G
springen Sie ans Ende der Datei (was bei Log-Dateien nützlich ist), und mit der Taste Q
beenden Sie less
.
Mit dem Kommando tail -f
können Sie den Dateiinhalt auch fortlaufend beobachten.
Das ist dann sinnvoll, wenn Sie nur an neuen Meldungen interessiert sind, also solchen, die erst nach der Eingabe von tail
entstehen.
Hier ist ein Ausschnitt aus notify.log
für eine erfolgreich ausgelöste Benachrichtigung:
2022-03-04 10:21:48 Got raw notification (localhost;CPU load) context with 71 variables
2022-03-04 10:21:48 Global rule 'Notify all contacts of a host/service via HTML email'...
2022-03-04 10:21:48 -> matches!
2022-03-04 10:21:48 - adding notification of martin via mail
2022-03-04 10:21:48 Executing 1 notifications:
2022-03-04 10:21:48 * notifying martin via mail, parameters: (no parameters), bulk: no
2022-03-04 10:21:48 Creating spoolfile: /omd/sites/mysite/var/check_mk/notify/spool/cbe1592e-a951-4b70-9bac-0141d3d74986
Mit dem Einrichten der Benachrichtigungen haben Sie den letzten Schritt vollzogen: Ihr Checkmk-System ist einsatzbereit! Damit sind die Möglichkeiten von Checkmk natürlich noch nicht ansatzweise ausgereizt.