Monitoring

Erste Hosts und Services in Checkmk hinzufügen

Schritt-für-Schritt-Anleitung, um den Checkmk-Agenten auf einem Server zu installieren und TLS-verschlüsselt zu registrieren, die Services automatisch zu erkennen und Benachrichtigungen per E-Mail und Pushover einzurichten.

AutorMarc Hülsbeck
Veröffentlicht am12. Juni 2026
Min. Lesezeit~9 min
Wörter1.500
Schwierigkeit Fortgeschritten
StackCheckmk · Monitoring · Agent · Pushover · Alerting

Im ersten Teil haben Sie einen Checkmk-Server eingerichtet, der aber noch nichts überwacht. Diese Anleitung zeigt, wie Sie den ersten Host hinzufügen: Sie installieren den Checkmk-Agenten, registrieren ihn TLS-verschlüsselt, lassen die Services automatisch erkennen und richten Benachrichtigungen per E-Mail und Pushover ein. Zusätzlich überwachen Sie einen externen Dienst, ganz ohne Agent.

Voraussetzungen

  • Ein eingerichteter Checkmk-Server aus Teil 1, erreichbar über Ihre Domain (hier monitoring.example.com, Site monitoring)
  • Das cmkadmin-Passwort aus Teil 1
  • Ein zweiter Seed oder Server, den Sie überwachen möchten, mit SSH-Zugriff als root
  • Den Namen oder die ID des Monitoring-Seeds für die Firewall-Regel

So funktioniert das Monitoring: Der Checkmk-Server holt die Messwerte aktiv vom Agenten ab (Pull-Mode, Port 6556). Die Registrierung des Agenten läuft einmalig über die Weboberfläche auf Port 443, also über denselben verschlüsselten Weg wie das Web-UI. Ein zusätzlicher offener Port am Server ist dafür nicht nötig.

Checkmk-Agent installieren

Den Agenten laden Sie direkt vom Checkmk-Server, dann passt die Version automatisch zur Server-Version. Die genauen Dateinamen finden Sie im Web-UI unter Setup > Agents > Linux. Auf dem zu überwachenden Host:

bash
wget https://monitoring.example.com/monitoring/check_mk/agents/check-mk-agent_2.5.0p5-1_all.deb
apt install -y ./check-mk-agent_2.5.0p5-1_all.deb

Der Agent bringt zwei Komponenten mit: das eigentliche Agentenskript und den Agent Controller (cmk-agent-ctl), der die verschlüsselte Verbindung verwaltet. Prüfen, dass der Controller verfügbar ist:

bash
cmk-agent-ctl --version

Host in Checkmk anlegen

Zuerst machen Sie den Host dem Server bekannt, denn registrieren lässt sich ein Agent nur für einen Host, der in Checkmk bereits angelegt ist. Im Web-UI auf Setup > Hosts > Add host. Tragen Sie ein:

  • Hostname: ein sprechender Name, z.B. web-01
  • IPv4 address: die IPv4-Adresse des Hosts (oder einen per DNS auflösbaren Namen)
  • IPv6 address: die IPv6-Adresse, falls der Host über IPv6 erreichbar ist. Ist der Host nur per IPv6 erreichbar, stellen Sie zusätzlich IP address family auf IPv6 only.

Mit Save & view folder speichern. Die Service-Discovery folgt später, dafür muss der Agent erst registriert sein.

Host in Checkmk anlegen
Host in Checkmk anlegen

Agent registrieren

Solange der Agent nicht registriert ist, liefert er keine Daten verschlüsselt aus. Die Registrierung stellt das Vertrauen zwischen Host und Server her.

Für die Registrierung braucht es einen Checkmk-Benutzer mit der passenden Berechtigung. Ihr cmkadmin-Passwort hat auf den überwachten Hosts aber nichts verloren. Genau für diesen Zweck bringt jede Checkmk-Installation den Automation-User agent_registration mit: Seine Rolle erlaubt eine einzige Aktion, das Registrieren von Agenten, und am Web-UI anmelden kann er sich nicht. Sie stellen einmalig ein Secret für ihn bereit und verwenden es danach für alle Hosts.

Im Web-UI auf Setup > Users, den Benutzer agent_registration öffnen. Im Abschnitt Security generieren Sie unter Automation secret for machine accounts über das Würfel-Symbol ein neues Secret. Kopieren Sie es direkt, nach dem Speichern zeigt Checkmk es nicht wieder an. Mit Save speichern. Benutzeränderungen sind sofort aktiv, ein Activate pending changes ist hier nicht nötig.

Die Registrierung führen Sie auf dem zu überwachenden Host aus. --hostname muss exakt dem Namen entsprechen, den Sie gerade in Checkmk angelegt haben:

bash
cmk-agent-ctl register \
  --hostname web-01 \
  --server monitoring.example.com \
  --site monitoring \
  --user agent_registration \
  --password '<Registrierungs-Secret>'

Beim ersten Aufruf zeigt der Controller den Fingerabdruck des Server-Zertifikats an und fragt mit [Y/n], ob die Verbindung aufgebaut werden soll. Stimmt der Fingerabdruck, mit Y bestätigen.

Hinweis: --server monitoring.example.com ohne Portangabe verbindet sich über HTTPS (443) und damit über den Reverse Proxy aus Teil 1. Ein dedizierter Registrierungs-Port am Server ist nicht nötig.

Den Status der Verbindung prüfen:

bash
cmk-agent-ctl status

Die Ausgabe zeigt die registrierte Verbindung zur Site monitoring und dass die Verschlüsselung aktiv ist.

Firewall für den überwachten Host

Der Checkmk-Server holt die Daten über TCP 6556 vom Agenten ab. Dieser Port muss auf dem überwachten Host für den Monitoring-Server erreichbar sein, und zwar nur für diesen. Mit der Firewall von dataforest cloud lässt sich als Quelle direkt der Monitoring-Seed angeben, nicht nur eine IP-Adresse.

Hat der Host noch keine Firewall, legen Sie im Dashboard unter Netzwerk > Firewalls > Firewall erstellen eine an (Name z.B. checkmk-host) und ergänzen folgende eingehende Regel. Hat der Host bereits eine Firewall, fügen Sie die Regel dort hinzu.

NameQuellenProtokollPort
Checkmk-AgentSeed monitoringTCP6556
SSHAlle IPv4, Alle IPv6TCP22

Als Quelle für die Agent-Regel wählen Sie unter Verbundene Ressourcen / Quellen den Monitoring-Seed aus. So darf ausschließlich Ihr Monitoring-Server den Agenten abfragen. Anschließend die Firewall dem überwachten Host zuweisen.

Per API mit dem Monitoring-Seed als Quelle (type: seed) und Zuweisung an den überwachten Host:

bash
curl -X POST "https://api.dataforest.net/api/v1/public/firewalls" \
  -H "Authorization: Bearer <API-Token>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "checkmk-host",
    "inbound_rules": [
      { "protocol": "tcp", "port": "6556", "comment": "Checkmk-Agent", "sources": [{ "type": "seed", "seed_id": "<monitoring-seed-id>" }] },
      { "protocol": "tcp", "port": "22", "comment": "SSH", "sources": [{ "type": "cidr", "cidr": "0.0.0.0/0" }, { "type": "cidr", "cidr": "::/0" }] }
    ],
    "attachments": [
      { "type": "seed", "seed_id": "<host-seed-id>" }
    ]
  }'

<monitoring-seed-id> ist die UUID des Monitoring-Servers, <host-seed-id> die des überwachten Hosts (beide aus GET /seeds).

Services erkennen und aktivieren

Agent registriert, Port freigegeben: Jetzt kann Checkmk die Services einsammeln. Öffnen Sie unter Setup > Hosts den Host web-01 und wählen Sie im Menü Host > Run service discovery. Checkmk verbindet sich mit dem Agenten und listet auf der Discovery-Seite alle gefundenen Services auf: CPU, Arbeitsspeicher, Dateisysteme, Netzwerk-Interfaces, laufende Dienste und mehr. Mit Accept all übernehmen Sie alle vorgeschlagenen Services in die Überwachung.

Service-Discovery: gefundene Services übernehmen
Service-Discovery: gefundene Services übernehmen

Änderungen werden in Checkmk gesammelt und erst mit einem expliziten Schritt aktiv. Klicken Sie links in der Navigation auf Changes (die Anzahl offener Änderungen steht daneben). Unter Quick activation of pending changes auf Activate pending changes klicken, um die neue Konfiguration scharf zu schalten.

Wenige Augenblicke später erscheinen die ersten Services unter Monitor > All hosts. Frisch erkannte Services sind kurz nach der Aktivierung grün (OK), sobald der erste Messwert vorliegt.

Überwachte Services im Monitoring
Überwachte Services im Monitoring

Auf der Kommandozeile des Servers lässt sich dasselbe nachvollziehen. Als Site-Benutzer:

bash
omd su monitoring
cmk -II web-01
cmk -O

cmk -II web-01 führt die Service-Discovery für den Host aus, cmk -O aktiviert die Änderungen (das Pendant zu Activate pending changes).

Einen externen Dienst überwachen

Nicht alles braucht einen Agenten. Externe Webseiten, APIs oder Server überwachen Sie agentenlos. Das ist ein guter Anwendungsfall für einen Server bei dataforest cloud: Durch das eigene Netzwerk mit offener Peering-Politik prüfen Sie externe Ziele von einem sehr gut angebundenen Standort aus.

Legen Sie über Setup > Hosts > Add host einen Host für das externe Ziel an (z.B. example-website mit der öffentlichen IP der Webseite) und setzen Sie unter Monitoring agents > Checkmk agent / API integrations den Wert auf No agent. Checkmk überwacht den Host dann über die Erreichbarkeit (PING), ohne dass dort etwas installiert werden muss.

Für tiefergehende Prüfungen wie Statuscode, Antwortzeit und Zertifikatslaufzeit fügen Sie unter Setup > Services einen HTTP-Check hinzu. Nicht vergessen, anschließend Activate pending changes zu klicken.

Benachrichtigungen einrichten

Monitoring ist nur dann nützlich, wenn Sie von Problemen erfahren. Checkmk verschickt ab Werk eine E-Mail an die Kontakte eines Hosts oder Services, sobald ein Problem auftritt.

E-Mail

Damit die E-Mails ankommen, hinterlegen Sie eine Adresse beim Benutzer. Im Web-UI auf Setup > Users, den Benutzer cmkadmin öffnen und unter Email address Ihre Adresse eintragen. Die Standard-Benachrichtigungsregel sendet damit Problemmeldungen an diese Adresse.

Voraussetzung ist, dass der Server E-Mails versenden kann. Die ausgehende Firewall-Regel für SMTP (Port 587) aus Teil 1 deckt das ab.

Pushover (empfohlen)

Per E-Mail erfahren Sie von Problemen, aber Push-Nachrichten aufs Handy sind im Ernstfall deutlich direkter. Checkmk bringt dafür eine eingebaute Pushover-Anbindung mit. Pushover ist nach einer 30-tägigen Testphase einmalig kostenpflichtig (rund 5 USD pro Plattform), danach dauerhaft nutzbar, auch für andere Alarme.

Zuerst auf pushover.net anmelden und zwei Schlüssel anlegen:

  1. Den User Key (oder einen Group Key) von der Startseite notieren.
  2. Unter Create an Application/API Token eine Anwendung für Checkmk anlegen und den API Token kopieren.

Dann im Checkmk-Web-UI auf Setup > Events > Notifications. Unter Parameters for notification methods den Eintrag Pushover öffnen und Add parameter wählen. Zwei Felder füllen:

  • API key: der API Token der Anwendung
  • User / Group Key: Ihr User Key (oder Group Key)

Anschließend eine Benachrichtigungsregel anlegen oder die bestehende ergänzen, sodass sie die Methode Push Notification (using Pushover) verwendet. Mit Activate pending changes aktivieren.

Pushover-Benachrichtigung in Checkmk einrichten
Pushover-Benachrichtigung in Checkmk einrichten

Zum Testen lösen Sie eine künstliche Benachrichtigung aus, etwa über Monitor, einen Service auswählen und unter den Befehlen eine Custom Notification senden. Die Nachricht sollte kurz darauf auf dem Handy erscheinen.

Zusammenfassung

Der erste Host wird jetzt vollständig überwacht: Der Agent ist installiert und TLS-verschlüsselt registriert, die Services sind erkannt und aktiviert, und Sie werden bei Problemen per E-Mail und Pushover benachrichtigt. Zusätzlich überwachen Sie einen externen Dienst ohne Agent.

Weitere Hosts fügen Sie nach demselben Muster hinzu: Agent installieren, Host anlegen, mit dem bestehenden Registrierungs-Secret registrieren, in der Firewall den Zugriff des Monitoring-Seeds auf Port 6556 erlauben, Services erkennen, aktivieren. Eine Übersicht weiterer Möglichkeiten bietet unsere Monitoring-Lösung.

Bereit loszulegen?

Erstellen Sie Ihren ersten Seed und starten Sie in wenigen Minuten.