Checkmk
to checkmk.com

1. Einleitung

CEE 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.

Tip

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:

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.

Das Checkmk Relay auf Windows

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:

PS C:\whatever> wsl.exe --install
PS C:\whatever> wsl.exe --update
PS C:\whatever> wsl.exe --install -d Ubuntu
Befehl(e) in die Zwischenablage kopieren
Befehl(e) erfolgreich in die Zwischenablage kopiert!
Schreibzugriff auf die Zwischenablage wurde verweigert!

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.

Im Quick Setup für ein neues Relay zeigt der Schritt den Curl-Befehl zum Herunterladen des Installationsskripts.
Im ersten Schritt wird der Downloadlink des Installationsskripts bereitgestellt

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.

Tip

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:

user@host:~$ systemctl status checkmk_relay
● checkmk_relay.service - Checkmk Relay Container
     Loaded: loaded (/etc/containers/systemd/checkmk_relay.container; generated)
     Active: active (running) since Thu 2026-03-19 07:44:27 UTC; 2h 41min ago
   Main PID: 2063 (conmon)
      Tasks: 21 (limit: 4646)
     Memory: 669.5M (peak: 686.2M)
        CPU: 1min 38.577s
     CGroup: /system.slice/checkmk_relay.service
             ├─libpod-payload-cd8f4482262c4812546c5cf25796548037a1cb0cacca4a23e239a6a6d1a5d439
             │ ├─2067 python3 /opt/check-mk-relay/bin/cmk-relay daemon
             │ ├─2113 python3 /opt/check-mk-relay/bin/fetcher
             │ ├─2114 python3 /opt/check-mk-relay/bin/fetcher
             │ ├─2115 python3 /opt/check-mk-relay/bin/fetcher
             │ ├─2116 python3 /opt/check-mk-relay/bin/fetcher
             │ ├─2117 python3 /opt/check-mk-relay/bin/fetcher
             │ ├─2118 python3 /opt/check-mk-relay/bin/fetcher
             │ ├─2119 python3 /opt/check-mk-relay/bin/fetcher
             │ ├─2120 python3 /opt/check-mk-relay/bin/fetcher
             │ ├─2121 python3 /opt/check-mk-relay/bin/fetcher
             │ ├─2122 python3 /opt/check-mk-relay/bin/fetcher
             │ ├─2123 python3 /opt/check-mk-relay/bin/fetcher
             │ ├─2124 python3 /opt/check-mk-relay/bin/fetcher
             │ ├─2125 python3 /opt/check-mk-relay/bin/fetcher
             │ ├─2126 python3 -m cmk.fetcher_helper.fetch_ad_hoc
             │ ├─2127 python3 -m cmk.fetcher_helper.fetch_ad_hoc
             │ ├─2128 python3 -m cmk.fetcher_helper.fetch_ad_hoc
             │ └─2129 python3 -m cmk.fetcher_helper.fetch_ad_hoc
             └─runtime
               └─2063 /usr/bin/conmon --api-version 1 -c cd8f4482262c4812546c5cf25796548037a1cb0cacca4a23e239a6a6d1a5d439 -u cd8f4482262c4812546c5cf25796548037a1cb0cacca4a23e239a6a6d1a5d439 -r /usr/bin/crun -b /var/lib/containers/storage/overlay-containers/cd8f4482262c4812546c5cf25796548037a1cb0cacca4a23e239a6a6d1a5d439/userdata -p /run/containers/storage/overlay-containers/cd8f4482262c4812546c5cf25796548037a1cb0cacca4a23e239a6a6d1a5d439/userdata/pidfile -n checkmk_relay-container --exit-dir /run/libpod/exits --full-attach -l journald --log-level warning --syslog --runtime-arg --log-format=json --runtime-arg --log --runtime-arg=/run/containers/storage/overlay-containers/cd8f4482262c4812546c5cf25796548037a1cb0cacca4a23e239a6a6d1a5d439/userdata/oci-log --conmon-pidfile /run/containers/storage/overlay-containers/cd8f4482262c4812546c5cf25796548037a1cb0cacca4a23e239a6a6d1a5d439/userdata/conmon.pid --exit-command /usr/bin/podman --exit-command-arg --root --exit-command-arg /var/lib/containers/storage --exit-command-arg --runroot --exit-command-arg /run/containers/storage --exit-command-arg --log-level --exit-command-arg warning --exit-command-arg --cgroup-manager --exit-command-arg systemd --exit-command-arg --tmpdir --exit-command-arg /run/libpod --exit-command-arg --network-config-dir --exit-command-arg "" --exit-command-arg --network-backend --exit-command-arg netavark --exit-command-arg --volumepath --exit-command-arg /var/lib/containers/storage/volumes --exit-command-arg --db-backend --exit-command-arg sqlite --exit-command-arg --transient-store=false --exit-command-arg --runtime --exit-command-arg crun --exit-command-arg --events-backend --exit-command-arg journald --exit-command-arg container --exit-command-arg cleanup --exit-command-arg --rm --exit-command-arg cd8f4482262c4812546c5cf25796548037a1cb0cacca4a23e239a6a6d1a5d439
user@host:~$ sudo podman container list
CONTAINER ID  IMAGE                                 COMMAND               CREATED         STATUS         PORTS  NAMES
6c5bf8861dc5  localhost/checkmk_relay:checkmk_sync  sh -c cmk-relay d...  49 minutes ago  Up 49 minutes         checkmk_relay-container
Befehl(e) in die Zwischenablage kopieren
Befehl(e) erfolgreich in die Zwischenablage kopiert!
Schreibzugriff auf die Zwischenablage wurde verweigert!

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:

root@linux# podman images
REPOSITORY                        TAG           IMAGE ID      CREATED       SIZE
docker.io/checkmk/check-mk-relay  2.5.0b1       423f9b67558b  5 months ago  428 MB
localhost/checkmk_relay           checkmk_sync  72c27637aa5a  5 months ago  428 MB
docker.io/checkmk/check-mk-relay  2.5.0b2       72c27637aa5a  5 months ago  428 MB
Befehl(e) in die Zwischenablage kopieren
Befehl(e) erfolgreich in die Zwischenablage kopiert!
Schreibzugriff auf die Zwischenablage wurde verweigert!

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:

user@host:~$ systemctl status checkmk_relay-update-manager
○ checkmk_relay-update-manager.service - Checkmk Relay Update Manager
     Loaded: loaded (/etc/systemd/system/checkmk_relay-update-manager.service; static)
     Active: inactive (dead)
TriggeredBy: ● checkmk_relay-update-manager.path
Befehl(e) in die Zwischenablage kopieren
Befehl(e) erfolgreich in die Zwischenablage kopiert!
Schreibzugriff auf die Zwischenablage wurde verweigert!

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:

user@host:~$ systemctl status checkmk_relay-update-manager
● checkmk_relay-update-manager.service - Checkmk Relay Update Manager
     Loaded: loaded (/home/ubuntu/.config/systemd/user/checkmk_relay-update-manager.service; enabled; preset: enabled)
     Active: activating (start) since Tue 2026-01-20 17:47:38 CET; 46s ago
TriggeredBy: ● checkmk_relay-update-manager.path
   Main PID: 47108 (checkmk_relay-u)
      Tasks: 12 (limit: 9484)
     Memory: 772.8M (peak: 780.0M)
        CPU: 15.249s
     CGroup: /user.slice/user-1000.slice/user@1000.service/app.slice/checkmk_relay-update-manager.service
             ├─47108 /bin/bash /home/ubuntu/.local/bin/checkmk_relay-update-manager.sh
             └─47110 podman pull docker.io/checkmk/check-mk-relay:2.5.0p3
Befehl(e) in die Zwischenablage kopieren
Befehl(e) erfolgreich in die Zwischenablage kopiert!
Schreibzugriff auf die Zwischenablage wurde verweigert!

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.

root@linux# systemctl restart checkmk_relay
root@linux# systemctl status checkmk_relay
Befehl(e) in die Zwischenablage kopieren
Befehl(e) erfolgreich in die Zwischenablage kopiert!
Schreibzugriff auf die Zwischenablage wurde verweigert!

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:

user@host:~$ journalctl -u checkmk_relay.service -f
Mar 14 11:01:30 relay checkmk_relay-container[2783]: 2026-03-14 11:01:30,944 - cmk.relay.processors.configuration - INFO - Extracting config update [context: {"type":"'ConfigUpdateTask'","id":"'ab63eee2-71ef-40db-92ae-d47606cf7917'","serial":"56"}]
Mar 14 11:01:30 relay checkmk_relay-container[2783]: 2026-03-14 11:01:30,946 - cmk.relay.processors.configuration - INFO - Config update extracted [context: {"type":"'ConfigUpdateTask'","id":"'ab63eee2-71ef-40db-92ae-d47606cf7917'","serial":"56"}]
Mar 14 11:01:30 relay checkmk_relay-container[2783]: 2026-03-14 11:01:30,947 - cmk.relay.processors.configuration - INFO - Updated 'latest' symlink to point to serial '56' [context: {"type":"'ConfigUpdateTask'","id":"'ab63eee2-71ef-40db-92ae-d47606cf7917'","serial":"56"}]
Mar 14 11:01:30 relay checkmk_relay-container[2783]: 2026-03-14 11:01:30,947 - cmk.relay.processors.configuration - INFO - Successfully unpacked configuration [context: {"type":"'ConfigUpdateTask'","id":"'ab63eee2-71ef-40db-92ae-d47606cf7917'","serial":"56"}]
Mar 14 11:01:30 relay checkmk_relay-container[2783]: 2026-03-14 11:01:30,948 - cmk.relay.processors.fetcherpool - INFO - Scaling fetcher pool adhoc to size: 4 [context: {"type":"'ApplyConfigTask'","id":"'ab63eee2-71ef-40db-92ae-d47606cf7917'"}]
Mar 14 11:01:30 relay checkmk_relay-container[2783]: 2026-03-14 11:01:30,948 - cmk.relay.processors.fetcherpool - INFO - Scaling fetcher pool relay to size: 13 [context: {"type":"'ApplyConfigTask'","id":"'ab63eee2-71ef-40db-92ae-d47606cf7917'"}]
Mar 14 11:01:30 relay checkmk_relay-container[2783]: 2026-03-14 11:01:30,948 - cmk.relay - INFO - Log level set: INFO [context: {"type":"'ApplyConfigTask'","id":"'ab63eee2-71ef-40db-92ae-d47606cf7917'"}]
Mar 14 11:01:30 relay checkmk_relay-container[2783]: 2026-03-14 11:01:30,949 - cmk.relay.processors.site_client - INFO - Using serial '56'
Mar 14 11:01:30 relay checkmk_relay-container[2783]: 2026-03-14 11:01:30,949 - cmk.relay.processors.site_client - INFO - Submitting Result [context: {"id":"'ab63eee2-71ef-40db-92ae-d47606cf7917'"}]
Befehl(e) in die Zwischenablage kopieren
Befehl(e) erfolgreich in die Zwischenablage kopiert!
Schreibzugriff auf die Zwischenablage wurde verweigert!

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.

root@linux# bash install_relay.sh --uninstall
=== Checkmk Relay Installer ===
[2026-03-14 11:52:55] [INFO] Checking prerequisites for uninstall...
[2026-03-14 11:52:55] [INFO] Uninstalling Checkmk Relay...
[2026-03-14 11:52:55] [INFO] Stopping services...
[2026-03-14 11:53:06] [INFO] Disabling services...
[2026-03-14 11:53:07] [INFO] Removing installed files...
[2026-03-14 11:53:07] [INFO] Removing data directories...
[2026-03-14 11:53:07] [INFO] Reloading Systemd daemon...
[2026-03-14 11:53:07] [INFO] Removing Podman volumes...
relay
[2026-03-14 11:53:07] [INFO] Relay uninstalled.

--------------------------------------------------------
The Checkmk Relay has been removed.
--------------------------------------------------------
Befehl(e) in die Zwischenablage kopieren
Befehl(e) erfolgreich in die Zwischenablage kopiert!
Schreibzugriff auf die Zwischenablage wurde verweigert!

Vergessen Sie nicht, das verbundene Relay in Ihrer Checkmk-Instanz zu löschen, nachdem Sie das Relay entfernt haben.


Letzte Änderung: Tue, 05 May 2026 12:19:46 GMT via Commit 6e711ff53
Auf dieser Seite