Monitor erstellen

Um z. B. eine Webseite oder einen Server zu überwachen, wird in Kuma ein sog. Monitor angelegt. Beim Erstellen des Monitors kann ausgewählt werden, um was für einen Typ es sich handelt. Je nachdem welcher Typ ausgewählt wird, müssen andere Parameter konfiguriert werden. Außerdem bestimmt der Typ, welche Metriken Kuma ermittelt und welche Daten später für den Monitor angezeigt werden.

Einige Typen werden in diesem Kapitel kurz vorgestellt. Tags und Gruppen können mit allen Typen verwendet werden. Deswegen wird diesen jeweils eine eigene Seite gewidmet.

Einstellungen für Monitore

Im folgenden werden die Felder genauer betrachtet, die bei allen Monitor Typen konfiguriert werden können.

Monitor Type

Durch den Typ wird letztlich ausgewählt, welcher Test von Kuma ausgeführt werden soll. Je nach gewähltem Typ werden die Einstellungen angepasst, um die benötigten Parameter abzufragen.

Friendly Name

Hier kann ein beliebiger Text eingefügt werden, welcher für einem selbst den Test sowie Service am besten beschreibt. Der Friendly Name wird nur in Übersichten und E-Mails angezeigt und hat keinerlei Auswirkungen auf die Tests an sich.

Heartbeat Interval

Mit dem Hearbeat Interval wird angegeben, wie häufig Kuma den Test ausführen soll. Die Angabe erfolgt in Sekunden und das Minimum sind 20 Sekunden. Standardmäßig sind 60 Sekunden vorausgewählt.

Retries

Die Anzahl der Fehlversuche, bevor Kuma den Dienst als Down markiert. Standardmäßig ist 0 angegeben, sodass jeder Fehlversuch unmittelbar zu einer Down Meldung führt.

Heartbeat Retry Interval

Diese Option ist nur relevant, wenn Retries größer als 0 ist. Wenn der Test fehlschlägt, dann wartet Kuma nicht so lange wie bei Heartbeat Interval angegeben ist, sondern die Anzahl an Sekunden, die in Heartbeat Retry Interval festgelegt ist. So lässt sich z. B. ein Dienst alle 10 Minuten testen, aber wenn Fehler auftreten, das Zeitintervall auf 1 Minuten herabsetzen, um schneller wieder informiert zu werden, wenn der Dienst wieder erreichbar ist.

Resend Notification if Down

Markiert Kuma einen Dienst als Down, die Anzahl der Fehlversuche wurde erreicht, dann wird eine Benachrichtigung versendet. Standardmäßig wird nur eine Down-Meldung versendet (Feld = 0). Wird hier z. B. eine 1 eingetragen, dann wird bei jedem Fehlerversuch eine weitere Benachrichtigung versendet oder bei Eingabe einer 5 bei jedem 5. Fehlversuch.

Monitor Group

Mit dieser Option lässt sich der Monitor oder auch die Gruppe zu einer Gruppe hinzufügen. Gruppen können nochmal separat überwacht werden. Hierdurch lässt sich z. B. eine Wordpress Seite samt MySQL Datenbank zu einer Gruppe hinzufügen, sodass in Kuma die Webseite als Down markiert wird, wenn die Wordpress Instanz oder die Datenbank ausgefallen ist.

Description

Eine Freitext Beschreibung für den Monitor. Diese hat keine Auswirkungen auf die Tests. Sie dient nur als Beschreibung in den Dashboards.

Tags

Es können selbst verschiedene Tags mit Namen und Farbe erstellt werden. Einem Monitor können keine, einer oder mehrere Tags zugewiesen werden. Sie haben keinerlei Auswirkungen auf Tests, sondern dienen nur der besseren Übersicht und bieten Filtermöglichkeiten in den Dashboards.

Ping

Die einfachste Art der Überwachung, es wird ein Ping gesendet und auf ein Pong gewartet. Es handelt sich um ein eigenes sehr schlankes Protokoll (ICMP), um die Erreichbarkeit von Geräten zu prüfen. Es reicht einen Anzeigenamen zu vergeben und den Hostnamen oder die IP des Gerätes anzugeben, welches getestet werden soll. Wie bei den anderen Typen auch können das Intervall geändert, Tags oder Gruppen oder Benachrichtigungen konfiguriert werden.

grafik.png

Nachdem der Monitor erstellt wurde, liefert Kuma folgende Metriken zurück. Die Antwortzeit, wie lange Kuma warten musste, bis der Pong zurückgekommen ist und daraus ergeben sich Durchschnitt und Verfügbarkeit.

grafik.png

HTTP(s)

Damit können Weboberflächen überwacht werden. Es werden sowohl verschlüsselte (HTTPS) als auch unverschlüsselte Seiten (HTTP) unterstützt. Im folgenden Beispiel wird ein neuer Monitor für die Seite https://jaeckel.one erstellt. Diese wird alle 60 Sekunden geprüft und zusätzlich wird auch ermittelt, wann das Zertifikat abläuft (Benachrichtigung ablaufendes Zertifikat).

grafik.png

Zusätzlich könnte dieser Monitor, wie jeder andere Typ auch, noch einer Gruppe hinzugefügt oder mit einem Tag versehen werden.

Außerdem kann bei diesem Typ noch eine HTTP Option gesetzt werden, um z. B. JSON Rückgaben auszuwerten, damit könnten HTTP Rest APIs überwacht werden. Zusätzlich unterstützt dieser Monitor auch einige Authentifizierungsverfahren, womit Logins getestet werden können.

Wenn eine HTTP Seite getestet wird, haben die Optionen zum Prüfen des Zertifikatsablauf und das ignorieren von Zertifikatsfehlern keine Auswirkungen und werden von Kuma ignoriert.

Sobald die Einstellungen gespeichert werden, testet Kuma die gewünschte Seite sofort und meldet, ob diese erreichbar ist oder nicht. Dadurch wird sofort ersichtlich, ob alles richtig konfiguriert ist oder etwas nicht passt. Anschließend wird die Seite im gewünschten Intervall getestet und bei einem Fehler, wird dieser im Web angezeigt und gemeldet.

Für dieses Beispiel sehen die Statistiken wie folgt aus.

grafik.png

Beim HTTPS Test werden neben der Antwortzeit und der Verfügbarkeit auch das Zertifikat geprüft und wann dieses abläuft.

Wenn die HTTPS Seite einer Webseite mit einem selbst signierten Zertifikat überwacht werden soll, dann muss die Option Ignoriere TLS-/SSL-Fehler von Webseiten gesetzt werden, da Kuma ansonsten einen Fehler meldet. Dieser Fehler wurde beim Erstellen eines Monitors für den Router FritzBox im folgenden gemacht. Anschließend wurde der Monitor nochmal bearbeitet und die Option nachträglich gesetzt. Unten auf der Seite werden die Statuswechsel angezeigt, wo auch der Fehler des selbst signierten Zertifikats gemeldet wurde und nach der Änderung ist der Status von Inaktiv auf Aktiv gewechselt.

Leider hat das Deaktivieren der Option den Nachteil, dass Kuma auch nicht mehr den Ablauf des Zertifikats prüfen kann. Diese Option sollte somit nur aktiviert werden, wenn es unbedingt notwendig ist. Um eine bestmögliche Sicherheit zu gewährleisten sollten unbedingt gültige und korrekt signierte Zertifikate z. B. von Let's Encrypt verwendet werden.

grafik.png

Docker Container

Kuma kann andere Docker Container überwachen, auch wenn es selbst als Container ausgeführt wird. Hierfür muss natürlich ein Docker Host in Kuma konfiguriert werden. Entweder über die Einstellungen -> Docker Hosts oder beim Erstellen eines Monitors einfach auf das "+" neben Feld für Docker Host anklicken.

Im folgenden soll der Container mongo überwacht werden. Dieser läuft auf dem selben Docker Host wie Kuma selbst. Deswegen wird in diesem Fall auf den Zugriff mit dem Docker Socket zurückgegriffen. Dafür muss die Konfiguration angepasst werden, was auf der Seite Docker Monitoring konfigurieren beschrieben ist. Für dieses Beispiel wurde die Konfiguration bereits angepasst.

Es wird ein neuer Monitor erstellt und als Monitor Typ wird Docker Container ausgewählt. Es werden ein Anzeigename für Kuma und der eigentliche Name des Containers eingegeben, dieser muss mit dem Namen in Docker übereinstimmen. Die ID sollte nicht verwendet werden, da diese sich beim neu erstellen des Containers ändern kann, z. B. bei einem Update. Da noch kein Docker Host konfiguriert ist, erfolgt ein Klick auf das "+" Zeichen neben dem Eingabe-Feld vom Docker Host:

grafik.png

Hier kann der Anzeigename angepasst werden. Die anderen Optionen müssen gleich sein. Außer es soll eine Verbindung über TCP/HTTP mit dem Docker Host erfolgen.

Das ausgefüllte Formular sieht dann wie folgt aus:

grafik.png

Nachdem der Monitor erstellt wurde, prüft Kuma direkt, ob der Container läuft und meldet dies in der Weboberfläche. Im folgenden Screenshot wurde der Container nach einigen Minuten Laufzeit manuell gestoppt und etwas später wieder gestartet. Dies ist anhand der Ereignisse ersichtlich und wird auch in der Grafik angezeigt. Hinweis: nur die Downtime wird rot eingefärbt, die Uptime jedoch nicht in grün.

grafik.png

Gruppe

Der Typ Gruppe ist besonders, da andere Monitore in die Gruppe aufgenommen werden können. Die Gruppe ist grün, sofern alle zugeordneten Monitore auch grün sind. Sobald ein sog. Child (der Gruppe zugeordneter Monitor) rot ist, wird die Gruppe ebenfalls rot eingefärbt und es wird ein Fehler ausgeworfen. Auch Gruppen können wiederum anderen Gruppen zugeordnet werden und lassen sich auch mit Tags versehen.

grafik.png

Um nun der Gruppe Children (Monitore) hinzuzufügen, müssen die Einstellungen der gewünschten Monitore bearbeitet werden. Dazu einfach im gewünschten Monitor das Feld Monitor Gruppe setzen und die gerade erstelle Gruppe auswählen.

Nachdem der Gruppe Monitore zugewiesen wurden, werden diese entsprechend im Admin Dashboard dargestellt und vereinfachen die Ansicht, indem sie die Informationen zusammenführen. Wenn die Gruppe angeklickt wird, werden alle Ereignisse der Gruppe angezeigt. Bei komplexen Diensten, die sich aus mehreren einzelnen Diensten zusammensetzen, wird so sofort ersichtlich ist, wann dieser nicht lief.

grafik.png