Checkmk gibt Ihnen ein einziges Board ueber Server, Netzwerk, Dienste und Anwendungen, mit automatischem Discovery und Alarmen. Dieser Guide fuehrt Sie von der Installation bis zum verteilten Monitoring, Schritt fuer Schritt — und warum jedes Teil funktioniert.
Installation und Erstellen eines Site
Checkmk arbeitet auf isolierten Sites, verwaltet mit omd (Open Monitoring Distribution). Sie koennen mehrere Sites auf einem Server betreiben.
apt install ./check-mk-raw-2.3.0p*_0.bookworm_amd64.deb # Raw = kostenlos
omd create monitor # Site erstellen
omd config monitor set ADMIN_MAIL alerts@example.com
omd start monitor
omd status monitor # apache, core, rrdcached usw.
# das initiale 'cmkadmin'-Passwort wird beim create gezeigt; in der UI aendern
Der Agent: Installation + TLS-Registrierung
Standardmaessig arbeitet Checkmk im Pull-Modus: der Server verbindet sich mit dem Agenten auf Port 6556 (TLS) und holt die Daten in jedem Zyklus — der Agent sendet sie nicht. (Push gibt es nur fuer Hosts, die der Server nicht erreichen kann.) Der neue Agent (cmk-agent-ctl) registriert sich verschluesselt und exponiert keinen Klartext-Port mehr. Laden Sie das Paket aus Setup > Agents.
dpkg -i check-mk-agent_2.3.0p*.deb
cmk-agent-ctl register --hostname web01 \
--server checkmk.example.com --site monitor \
--user automation --password '***'
cmk-agent-ctl status # TLS: connection established
systemctl status check-mk-agent.socket
Host hinzufuegen + Discovery
Host hinzufuegen (UI oder API), Discovery ausfuehren und aktivieren. Checkmk findet Platten, Interfaces und Dienste von selbst.
cmk -vI web01 # Inventory/Discovery: welche Dienste der Host hat
cmk -II web01 # vollstaendiges Re-Discovery (inkl. verschwundener Dienste)
cmk -O # Aenderungen aktivieren (Core neu laden)
cmk -D web01 # Dump: wie der Host konfiguriert ist
SNMP fuer Switch, Firewall, USV
Netzwerkgeraete haben keinen Agenten — Sie lesen sie per SNMP. Setzen Sie Community/v3-Credentials auf dem Host und fuehren Discovery aus.
# in Host-Eigenschaften: SNMP community / SNMPv3 credentials
cmk -v --snmpwalk sw01 # pruefen, dass es antwortet
cmk -vI sw01 # Ports, Temperatur, PSU, Traffic
# Regeln: 'Interfaces' fuer Traffic-Schwellen, 'Temperature' usw.
Regeln, Ordner und Schwellenwerte
Checkmks Staerke sind Regeln: Sie wenden Schwellen auf Host-Gruppen (Ordner) an, nicht manuell pro Host. Z.B. Platten- und CPU-Schwellen auf dem ganzen Ordner /kunden.
# Setup > Host & Service Parameters > Filesystems (used space)
# WARN 80% / CRIT 90%, angewandt auf den Ordner /kunden
# Setup > ... > CPU utilization, Memory, Uptime
# 'Periodic service discovery' — entdeckt taeglich automatisch neue Dienste
Benachrichtigungen mit Eskalation
Alarme per E-Mail, Telegram, Webhook — mit Regeln (wer, wann, welche Schwere) und Eskalation, wenn nicht bestaetigt.
# Setup > Notifications > Add rule
# - contact group: NOC-Team
# - Bedingungen: CRIT + Host im Ordner /kunden
# - Methode: E-Mail + Telegram (HTML-Skript)
# - Eskalation: alle 30 Min wiederholen, wenn nicht ACKed
# Test: 'Analyse notification' auf einem Dienst in der UI
Verteiltes Monitoring
Fuer viele Standorte: ein zentrales Site und Remote-Sites, die lokal sammeln und an das zentrale weiterleiten. Nuetzlich beim Monitoring mehrerer Kunden aus einem NOC.
# auf central: Setup > Distributed Monitoring > Add connection
# -> das Remote-Site verbinden (livestatus TCP/TLS auf 6557)
# das Remote laeuft mit eigenem Core; central aggregiert die Ansichten
omd config remote1 set LIVESTATUS_TCP on
omd restart remote1
Local Checks + API
Fuer jede eigene Metrik schreiben Sie einen Local Check (ein Skript, das Status + Wert zurueckgibt). Und alles, was Sie in der UI tun, geht auch per REST API.
# Local Check auf dem Agenten: /usr/lib/check_mk_agent/local/backup_age
#!/bin/bash
AGE=$(( ($(date +%s) - $(stat -c %Y /backup/last)) / 3600 ))
if [ $AGE -gt 26 ]; then echo "2 BackupAge age=$AGE last backup too old"; else echo "0 BackupAge age=$AGE ok"; fi
# API: Host hinzufuegen + aktivieren
curl -X POST '.../api/1.0/domain-types/host_config/collections/all' -H 'Authorization: Bearer automation ***' ...