Checkmk
to checkmk.com

1. Grundlegendes zur Alarmierung

Alarmierung (notification) bedeutet in Checkmk, dass Benutzer aktiv darüber benachrichtigt 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 Alarmierung. Es gibt zahlreiche Möglichkeiten, wie Sie das verfeinern können:

  • Sie können per SMS, Pager, Slack und anderen Internetdiensten alarmieren.

  • Sie können Alarmierungen an bestimmten Zeitfenstern 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 selbständig Alarme „abonnieren“ oder abbestellen, wenn Sie das zulassen möchten.

  • Sie können generell über Regeln festlegen, wer wann über was alarmiert werden soll.

Bevor Sie jedoch mit der Alarmierung beginnen, sollten Sie noch Folgendes beachten:

  • Die Alarmierung ist ein optionales Feature. Manche Anwender verzichten auf die Alarmierung, da Sie einen Leitstand haben, der rund um die Uhr besetzt ist und nur mit der Statusoberfläche arbeitet.

  • Aktivieren Sie die Alarmierung 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 Alarmen ist.

  • Aktivieren Sie die Alarmierung 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 Monitoring beschrieben.

2. Mailversand vorbereiten

Der einfachste und bei weitem üblichste Weg ist die Alarmierung per E-Mail. In einer E-Mail ist genug Platz, um auch die Graphen von Messdaten mitzusenden.

Bevor Sie per E-Mail alarmieren können, muss Ihr Checkmk-Server für das Versenden von Mails eingerichtet sein. Bei allen unterstützten Linux-Distributionen läuft das auf Folgendes hinaus:

  1. Installieren Sie einen SMTP-Serverdienst. Dies geschieht meist automatisch bei der Installation der Distribution.

  2. 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 Mailversand 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 Mailversands unter Linux finden Sie im Artikel über die Alarmierung.

3. E-Mail-Alarmierung aktivieren

Wenn der E-Mail-Versand grundsätzlich funktioniert, ist das Aktivieren der Alarmierung sehr einfach. Damit ein Benutzer Alarme 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 hinzufügen und die Kontaktgruppe Everything.

4. Alarmierung testen

Es wäre ein bisschen umständlich, zum Test der Alarmierung 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 Statusansicht mit einer Service-Liste (am schnellsten über den Overview), blenden Sie die Checkboxen ein und wählen die einen Service aus — am besten einen, der gerade OK ist. Klicken Sie im Menü Commands > Fake check results:

fake check results

Klicken Sie auf Critical und bestätigen Sie die Nachfrage, um den Service auf CRIT zu setzen. Dies sollte sofort eine Alarmierung 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 Alarmierung 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 Alarmierung von Checkmk absichtlich unterdrückt wird, z.B.:

  • wenn die Alarmierung im Snapin Master control ausgeschaltet ist;

  • wenn ein Host oder Service sich in einer Wartungszeit befindet;

  • wenn ein Host DOWN ist und daher keine Alarmierungen seiner Services ausgelöst werden;

  • wenn der Status in letzter Zeit zu oft gewechselt hat und der Service deswegen als icon flapping „unstetig“ (flapping) markiert wurde. Dies kann übrigens schnell passieren, wenn Sie mittels Fake check results den Zustand häufig gewechselt haben.

5. Alarmierung feinjustieren

Sie können Sie Alarmierung 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 die Alarmierung.

6. Fehlersuche

Das Alarmierungsmodul in Checkmk ist sehr komplex — einfach 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 alarmiert?“ wird Ihnen deswegen gerade am Anfang öfter gestellt werden, als Sie vielleicht vermuten. Deswegen finden Sie hier ein paar Tipps zur Fehlersuche.

Wenn ein Alarm von einem bestimmten Service nicht ausgelöst wurde, ist der erste Schritt, die History der Alarmierung 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 zur Alarmierung für diesen Service chronologisch von neu nach alt aufgelistet:

service notifications broken alarm

Hier ist ein Beispiel eines Services, für den die Alarmierung versucht wurde, aber der Mailversand gescheitert ist, weil kein SMTP-Server installiert ist.

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 Logdateien 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 Alarmierung:

/var/log/notify.log
2021-03-04 10:21:48 Got raw notification (server-linux-3;CPU load) context with 71 variables
2021-03-04 10:21:48 Global rule 'Notify all contacts of a host/service via HTML email'...
2021-03-04 10:21:48  -> matches!
2021-03-04 10:21:48    - adding notification of martin via mail
2021-03-04 10:21:48 Executing 1 notifications:
2021-03-04 10:21:48   * notifying martin via mail, parameters: (no parameters), bulk: no
2021-03-04 10:21:48 Creating spoolfile: /omd/sites/mysite/var/check_mk/notify/spool/cbe1592e-a951-4b70-9bac-0141d3d74986

Mit dem Einrichten der Alarmierung haben Sie den letzten Schritt vollzogen: Ihr Checkmk-System ist einsatzbereit! Damit sind die Möglichkeiten von Checkmk natürlich noch nicht ansatzweise ausgereizt.

Auf dieser Seite