1. Einleitung
Es gibt Fälle, in denen eine Checkmk-Instanz den zu überwachenden Host nicht erreichen kann – beispielsweise, wenn eine Firewall eingehenden Datenverkehr blockiert.
Bei
Checkmk Ultimate
können Sie das Checkmk Relay einsetzen, um Monitoring-Daten einzusammeln und zu Ihrer Checkmk-Instanz zu schicken.
Die hier vorgestellte Funktionalität ist ein Technical Preview, also die Vorschau auf ein neues Feature, das bis auf weiteres Wandel und Erweiterung unterworfen sein wird. Während dieser Phase ist es möglich, dass Funktionalität nicht nur hinzugefügt, sondern auch so umgebaut wird, dass bereits vorhandene Konfiguration obsolet wird und Sie diese neu erstellen müssen. Wir bitten dafür um Verständnis. |
1.1. Unterschiede zum verteilten Monitoring
Die folgenden Unterschiede verglichen mit verteiltem Monitoring sind zu beachten:
Die Kommunikationsrichtung: Das Relay sendet Daten immer zur Monitoring-Instanz.
Der Ort der Datenverarbeitung: Das Relay verarbeitet weder Daten, noch speichert es sie – es sammelt nur Monitoring-Daten ein und gibt sie weiter.
Die Verwendung des Relays in Kombination mit verteiltem Monitoring ist derzeit auf die Zentralinstanz beschränkt. In Umgebungen, die Checkmk Ultimate mit Multi-Tenancy bestimmungsgemäß einsetzen, gibt es daher derzeit keinen praktischen Nutzen für das Relay.
1.2. Funktionsumfang
Der gegenwärtige Stand des Relays umfasst die folgende Funktionalität:
Eine wachsende Auswahl an Spezialagenten
Monitoring via SNMP
An der Erweiterung der Funktionalität um die Ausführung aktiver Checks arbeiten wir. Die Priorisierung der hinzugefügten Spezialagenten hängt von Nutzen für die Anwendenden und dem benötigten Aufwand ab. Eine Liste der im Relay enthaltenen Spezialagenten kann auf GitHub eingesehen werden. Spezialagenten, die via MKP zu einer Checkmk-Instanz hinzugefügt wurden, werden nicht auf das Relay übertragen.
1.3. Unterstützte Plattformen
Das Checkmk Relay wird als Container für die Plattform x86-64 bereitgestellt.
Unterstützte Betriebssysteme
Für die Installation stellen wir ein Skript bereit, das voraussetzt, dass das von der Distribution angebotene Podman-Paket vorhanden ist. Derzeit unterstützt das Installationsskript Ubuntu Linux 24.04 sowie Red Hat Enterprise Linux 8.10, 9.7 und 10.
Wir haben uns für Podman entschieden, weil dessen enge Integration mit Systemd automatische Updates des Relay-Containers erleichtert.
Das Ausbringen auf anderen Container-Runtimes als Podman, der Betrieb auf anderen als den genannten Distributionen, die Aktualisierung auf anderen Wegen als dem direkten Zugriff auf hub.docker.com, die Nutzung mit anderen Podman-Paketen als denen der Distribution oder die Verwendung von mehreren Relays auf einem Linux-Host mag für erfahrene Nutzer funktionieren – allerdings bietet Checkmk keinen Support für derartige Umgebungen an.
Wir testen derzeit den Betrieb des Relays auf Windows. Präziser: auf dem Windows Subsystem for Linux (aka WSL). Bislang hatten wir positive Resultate mit WSL2, bei aktiviertem Systemd, unter Verwendung der letzten stabilen Version (2.6.3 bei letzter Bearbeitung dieses Textes) zusammen mit Ubuntu 24.04.
Windows Server 2025 aktiviert alle benötigten Abhängigkeiten mit wenigen Befehlen:
Bei älteren Windows-Versionen müssen Sie darauf achten, dass WSL2 ausgewählt ist und Systemd als Init-System verwendet wird. Wir werden Skripte zur Prüfung und Installation in den Monaten nach Release von Checkmk 2.5.0 bereitstellen.
Hardware-Anforderungen
In Standardkonfiguration (13 Fetcher) sollte ein Arbeitsspeicherbedarf von etwa einem Gigabyte und die Auslastung eines Prozessorkerns aktueller Hardware mit weniger als 20 % eingeplant werden. Mit diesem Ressourcenumfang konnten wir problemlos mehr als 50 SNMP-Geräte überwachen. Bei einer deutlich höheren Zahl zu überwachender Geräte muss gegebenenfalls die Zahl der Fetcher erhöht werden. Nach oben skaliert der Ressourcenbedarf nahezu linear mit der Zahl zu überwachender Geräte.
2. Einrichtung
Für einfaches Herunterladen, die Installation und anschließende Verbindung stellen wir ein Installationsskript bereit. Um den Downloadlink für das Installationsskript zu erhalten, navigieren Sie zu Setup > Hosts > Relays. Klicken Sie dort auf Add Relay configuration, um den Einrichtungsassistenten zur Konfiguration eines neuen Relays zu starten.

Folgen Sie den Anweisungen des Assistenten. Nach einigen vorbereitenden Schritten werden Ihnen die Parameter angezeigt, mit denen das Skript auszuführen ist. Beim Ausführen des Skripts wird der Container mit dem Relay heruntergeladen und eingerichtet, der Dienst für die Aktualisierung installiert und das Relay mit der Checkmk-Instanz verbunden – in einem einzigen Schritt.
Die zum Kopieren und Einfügen angebotenen Parameter für Installation und Registrierung enthalten ein Einmal-Token (one-time token). Dieses ist nach Erzeugung eine Stunde lang gültig. Sollte diese Stunde nicht ausreichend sein, können Sie die Registrierung auch mit Benutzername und Passwort eines Benutzers vornehmen, der ausreichende Berechtigungen für die Registrierung des Relays hat. |
Nach der Installation prüfen Sie den Betriebszustand des Relays mit den folgenden Befehlen:
In der Checkmk-Instanz, zu der Sie eben das Relay hinzugefügt haben, müssen Sie jetzt noch die Änderungen aktivieren, um dessen Registrierung abzuschließen.
2.1. Updates
Ein mit dem bereitgestellten Installationsskript verteiltes Checkmk Relay hält sich automatisch auf dem neuesten Stand. Sobald es erkennt, dass sich die Version der zugehörigen Checkmk-Instanz geändert hat, lädt es das passende Container Image von Docker Hub herunter und startet ohne manuellen Eingriff neu. Abhängig von Ihrer Netzwerkgeschwindigkeit kann dieser Vorgang bis zu 10 Minuten dauern.
3. Monitoring mit dem Relay
Nachdem Sie das Relay eingerichtet haben, können Sie nun damit loslegen, es zur Überwachung von Hosts via Spezialagent oder SNMP zu nutzen. Beim Hinzufügen eines Hosts aktivieren Sie Monitored on Relay im Abschnitt Basic settings und wählen Sie das Relay aus, welches den Host kontaktieren kann, den Sie gerade hinzufügen. Beachten Sie dabei, dass Hosts, die einem Relay zugeordnet sind, nicht mit dem Checkmk-Agenten überwacht werden können.
Das Relay wird mit der Überwachung der zugeordneten Hosts erst dann beginnen, wenn Spezialagenten oder SNMP-Verbindungen für diese Hosts konfiguriert sind.
Jedes Relay kontaktiert die ihm zugeordnete Checkmk-Instanz regelmäßig für Konfigurations-Updates. Nachdem eine aktualisierte Konfiguration erhalten wurde, führt es die Spezialagenten und andere Checks sofort aus. Eine Service-Erkennung für Spezialagenten sollte schnell abgeschlossen sein, bei langsamen SNMP-Geräten kann es jedoch länger dauern. Generell ist die Verzögerung durch das Relay marginal und liegt in den meisten Fällen im Bereich weniger Sekunden.
4. Troubleshooting
Zur Erinnerung: Diese Komponente von Checkmk ist Work-in-Progress! Obwohl schon recht stabil, ist es möglich, dass Sie auf den einen oder anderen Bug stoßen.
4.1. Prüfung der Version des Relays
Die Version des Relay Container Images muss genau mit der Version der Checkmk-Instanz übereinstimmen, der es zugeordnet ist.
Sie können die Version mit dem Befehl podman images überprüfen.
Führen Sie diesen Befehl als Root oder mit vorangestelltem sudo aus, um sicherzustellen, dass die Ausgabe alle relevanten Images enthält:
Bei der Verteilung über das mitgelieferte Installationsskript richtet das Checkmk Relay einen Dienst ein, der das Container Image automatisch auf die gleiche Version wie die zugehörige Instanz aktualisiert und den Container anschließend neu startet.
Um den Status des Aktualisierungsdienstes für das Checkmk Relay zu überprüfen, führen Sie folgenden Befehl aus:
Hier ist der Dienst geladen, es wurde jedoch noch keine Aktualisierung durchgeführt.
Da die Aktualisierung selbst erst getriggert wird, wenn eine Datei auftaucht, zeigt der Dienst den (irreführenden) Status inaktive (dead).
Wenn Sie den Dienst manuell neu starten und den Status unmittelbar danach überprüfen, werden Sie möglicherweise eine Ausgabe wie die folgende zu sehen bekommen:
Hier zeigt der laufende Prozess podman pull, dass gerade ein Update läuft und der neueste Container heruntergeladen wird.
4.2. Neustart des Containers
Wie bereits erwähnt, ist Podman eng mit Systemd integriert. Daher sind Neustarts von Containern einfach Neustarts von Systemd Units.
4.3. Container-Logs prüfen
Falls etwas nicht richtig funktioniert oder Ihr Support-Ansprechpartner bei Checkmk Sie um Log-Einträge bittet, werfen Sie einen Blick in die Container-Logs.
Verwenden Sie journalctl mit der Option -f (wie follow), um zehn Log-Zeilen anzuzeigen und hinzukommende Zeilen sofort auszugeben:
4.4. Das Relay entfernen
Falls Sie das Relay nicht mehr benötigen, nutzen Sie die Option --uninstall des Installationsskripts, wodurch das Relay ohne weitere Rückfrage entfernt wird.
Vergessen Sie nicht, das verbundene Relay in Ihrer Checkmk-Instanz zu löschen, nachdem Sie das Relay entfernt haben.
