Netzwerk & IP

Checkmk: Quickstart-Guide

Von der Installation über die Einrichtung einer Site bis hin zu Benachrichtigungen für eine überlastete CPU

Wenn Ihr Checkmk von A bis Z verstehen wollt, schaut ins offizielle Handbuch. Hier geht es nur darum, das Monitoring mit Checkmk so schnell wie möglich soweit einzurichten, dass Ihr einen ersten Rechner überwacht und eine Benachrichtigung bekommt, wenn dort die CPU-Auslastung knapp wird. Und die Fritzbox kommt auch noch ins Monitoring. Wer etwas Erfahrung mit IT-Kram hat, wird dann schon allein weiter mit der Plattform spielen können. Erklärungen beschränken sich auf ein absolutes Minimum.

TLDR

Die Kurzversion, für die aktuelle Beta der Open-Source-Version Checkmk Raw unter Ubuntu 22.04 mit der lokalen IP 192.168.178.100:

  • Download Checkmk RAW Edition: wget https://download.checkmk.com/checkmk/2.3.0b2/check-mk-raw-2.3.0b2_0.jammy_amd64.deb
  • Installation auf Server: sudo apt install ./check-mk-raw-2.3.0b2_0.jammy_amd64.deb
  • Erstellen der Site: sudo omd create --admin-password test meinmonitoring
  • Site starten: sudo omd start meinmonitoring
  • Weboberfläche öffnen: 192.168.178.100/meinmonitoring
  • Server als Host hinzufügen: Setup/Hosts/Add host - IPv4 auf localhost setzen
  • Agent auf Server herunterladen: wget localhost/meinmonitoring/check_mk/agents/check-mk-agent_2.3.0b2-1_all.deb
  • Agent auf Server installieren: sudo apt install ./check-mk-agent_2.3.0b2-1_all.deb
  • Host bei Checkmk anmelden: sudo cmk-agent-ctl register --server 192.168.178.100 --site meinmonitoring --user cmkadmin --hostname localhost
  • Service-Erkennung für Host localhost ausführen: Setup/Hosts/localhost - Save & run service discovery -- Erkannte Services akzeptieren
  • Rechts oben auf x changes klicken und über Activate on selected sites übernehmen/aktivieren
  • Regel für CPU-Auslastung erstellen: Setup/Service monitoring rules/CPU Utilization -- Werte für Levels on total CPU utilization für die Status WARN und CRIT setzen
  • Wieder: Activate on selected sites
  • Regel für Benachrichtigung erstellen: Setup/Events/Notifications -- Je nach Dienst API-Schlüssel, Zugangsdaten oder dergleichen eintragen
  • Weitere Hosts aufnehmen: -- Mit Agent: Agent auf Host herunterladen, zu finden unter Setup/Agents/Windows etc., dann wie oben anmelden -- Ohne Agent, etwa Fritzbox: Als Host aufnehmen, dann Regel Setup/Agents/Other integrations/Hardware/Fritz!Box Devices. aktivieren

Server, Site, Agent, Service, Regel, Host

Damit alle Schritte unten Sinn ergeben, hier mal ein kurzer Abriss, des Checkmk-Aufbaus: Checkmk selbst läuft auf einem Linux-Rechner (Checkmk-Server) im LAN. Mit Checkmk lassen sich mehrere Sites/Instanzen erstellen. Wenn Ihr nur Euer LAN monitoren wollt, braucht Ihr auch nur eine Site. Weitere Sites könnten zum Beispiel zum Testen, für Kunden oder andere Netzwerke genutzt werden. Jede Site hat dann eine eigene Webseite und alle sind völlig unabhänig voneinander. Genau genommen ist für alle das Kommandozeilen-Tool omd (Open Monitoring Distribution) verantwortlich.

Die überwachten Geräte sind die Hosts, beispielsweise Laptops, Tablets, virtuelle Maschinen, Router oder was auch immer eine IP hat oder auf einem Rechner mit IP läuft. Auf den Hosts laufen die Checkmk-Agenten: Die Agenten sind einfach kleine Programme, die auf dem Checkmk-Server konfiguriert und auf den Hosts installiert werden und dann in regelmäßigen Abständen Daten an den Checkmk-Server schicken.

Daten der Hosts, zum Beispiel RAM-, CPU- und Festplattenauslastung, werden dann in der Checkmk-GUI im Browser als Services angezeigt und ausgewertet. Der Agent schickt also etwa die Info "CPU-Auslastung 35 Prozent". In Checkmk legt Ihr dann über eine Regel fest, bei welchen Werten dieser Service von OK auf WARN oder CRIT wechseln soll.

Nochmal als Liste:

  • Checkmk-Server: Linux-Rechner mit Checkmk-Installation
  • Sites: Unabhängige Instanzen von Checkmk
  • Hosts: Überwachte Geräte
  • Agent: Programm auf dem Host, das Daten an Checkmk schickt
  • Services: Einzelne Datensätze aus den Agentendaten, die jeweils einen Status haben
  • Regel: Konfiguration für Statuswechsel bei Services

Schluss mit den Erklärungen, hoffentlich war das kurz genug ;)

1. Checkmk herunterladen

Checkmk gibt es in diversen Editionen. Für die aktuelle Beta der Open-Source-Version auf einem normalen Ubuntu-Linux-Rechner wählt:

  • Checkmk for Linux
  • RAW Edition
  • 2.3.0b2
  • Ubuntu 22.04

Die Beta läuft ziemlich stabil, zum Testen oder auch für kleinere Netze würde ich direkt diese Version empfehlen. Achtet auf die richtige Linux-Distribution und -Version!

checkmk-download.
Raw ist die Open-Source-Version

Den Download-Link findet Ihr dann weiter unten - übrigens auch ohne oben eine E-Mail-Adresse anzugeben.

checkmk-download-command.
Der Befehl für Ubuntu

Praktisch: Ihr bekommt direkt die passende Kommandozeile:

wget https://download.checkmk.com/checkmk/2.3.0b2/check-mk-raw-2.3.0b2_0.jammy_amd64.deb

Weitere Downloads gibt es für Debian, SLES und Red Hat.

2. Checkmk installieren

Die Installation ist trivial wie immer:

sudo apt install ./check-mk-raw-2-2.3.0b2_0.jammy_amd64.deb

3. Checkmk-Instanz erstellen

Checkmk ist nun samt einiger Kommandozeilen-Tools installiert und Ihr könnt eine erste Site anlegen:

sudo omd create --admin-password test meinmonitoring

Der Nutzername ist cmkadmin und das Passwort wie angegeben. Anschließend könnt Ihr diese Instanz auch im Terminal aufrufen:

sudo omd su meinmonitoring

Dann könnt Ihr bei weiteren Befehlen sudo und meinmonitoring weglassen, zum Beispiel bei:

omd status
omd version
omd start 

Und so weiter.

4. Checkmk-Instanz starten und aufrufen

Noch läuft die Site nicht, startet sie mit

sudo omd start meinmonitoring

und prüft gegebenenfalls mit

sudo omd status meinmonitoring

Ruft nun die GUI im Browser auf, beispielsweise 192.168.178.100/meinmonitoring (mit Eurer IP natürlich) oder localhost/meinmonitoring, sofern der Browser auf dem Server läuft.

login-screen.
Checkmk-Login

5. Host ins Monitoring aufnehmen

Natürlich solltet Ihr zunächst den Server selbst als Host ins Monitoring aufnehmen.

Ruft nun Setup/Hosts auf und klickt auf Add host. Für den Host braucht Ihr nur zwei Angaben, Name und IP-Adresse, hier 192.168.178.100 und localhost:

host-config-dialog.
Der Server selbst als Host

Weiter geht es mit Save & run service discovery. Die Service-Erkennung wertet die Agenten-Daten aus und zeigt Euch, welche Dienste auf dem Localhost zur Verfügung stehen. Zunächst sieht das aber so aus:

service-erkennung.
Service-Erkennung: Der Host (technisch: der Agent-Controller) muss registriert werden - für sichere Kommunikation

6. Agent herunterladen und installieren

Nun muss der Agent auf dem Server installiert werden. Also mit

wget localhost/meinmonitoring/check_mk/agents/check-mk-agent_2.3.0b2-1_all.deb

herunterladen und dann mit

sudo apt install ./check-mk-agent_2.3.0b2-1_all.deb

installieren.

7. Host bei Checkmk registrieren

Der Host (auf technischer Ebene: der Agent-Controller) muss erstmal bei Checkmk registriert werden, damit die Daten anschließend verschlüsselt übertragen werden können. Registriert wird so:

sudo  cmk-agent-ctl register --server 192.168.178.100 --site meinmonitoring --user cmkadmin --hostname localhost

Daraufhin müsst Ihr einmal bestätigen, dass Ihr den Host registrieren wollt und das Passwort von cmkadmin eingeben.

8. Services ins Monitoring aufnehmen

Klickt dann im Browser auf Rescan, um die Service-Erkennung erneut durchzuführen - und nun sieht das ganz anders aus:

service-erkennung.
Erfolgreiche Service-Erkennung

Die Seite ist für Einsteiger etwas unübersichtlich, oder? Klickt einfach auf Accept all, um schlicht alles zu überwachen.

Fast fertig. Vielleicht ist Euch oben rechts der Hinweis mit x Changes und dem gelben Schild aufgefallen? Die bisherigen Änderungen, also das Erstellen eines neuen Hosts und die Aufnahme der Services, müssen noch bestätigt werden. Klickt also darauf.

Hier werden nun alle einzelnen Änderungen aufgeführt und mit Activate on selected sites tatsächlich aktiviert. Das Konzept ist ähnlich wie bei Partitions-Managern, wo immer erst alle Einstellungen visualisiert, bevor dann wirklich Festplatten bearbeitet werden.

activate changes.
Änderungen müssen zunächst aktiviert werden

Oben rechts seht Ihr auch direkt den Erfolg, die Übersicht ist gefüllt:

checkmk-übersicht.
Die Übersicht mit ersten Hosts und Services

Über das Hauptmenü, die Startseite oder diese Übersicht gelangt Ihr dann zu den Daten der Hosts und Services.

9. Regel für CPU-Auslastung erstellen

Ruft nun die Services des einzigen Hosts auf, zum Beispiel über Monitor/All hosts/localhost. Hier stehen die einzelnen Services samt Status und Beschreibungen des Hosts. Hier im Bild mal auf CPU Utilization gefiltert:

cpu-service im monitoring.
Die Services des Hosts, hier gefiltert auf die CPU-Auslastung

Hier ist der Wert bei 28,05 Prozent und damit natürlich OK. Standardmäßig geht dieser Service bei 90 Prozent auf WARN und bei 95 Prozent auf CRIT. Wenn Ihr das anders haben wollt, ruft die Regel für diesen Service auf: Setup/Service monitoring rules/CPU Utilization oder nutzt die Suchfunktion im Setup-Menü. Klickt auf Add rule, um eine neue Regel anzulegen.

regel-dialog.
Eine neue Regel anlegen - typische Tätigkeit bei der Checkmk-Konfiguration

Die meisten Felder können frei bleiben. Ihr müsst nur im Bereich Value den Punkt Levels on total CPU utilization aktivieren, Fixed Levels auswählen und dann die gewünschten Werte für Warning/Critical eingeben. Für Warning sollen es hier 20 Prozent sein, damit es auch was zu sehen gibt.

cpu-regel-config.
Werte für WARN und CRIT

Wie immer, nach jeder Regel-Änderung: Wieder oben rechts auf den gelben Hinweis mit x Changes klicken und ein Activate on selected sites durchführen! Wechselt dann wieder zu Ansicht mit den Services des Hosts - und bewundert Eure Tat:

cpu im monitoring neu.
Und wieder die CPU-Auslastung im Monitoring, nun mit eigenen Grenzwerten

Der Service steht nun auf WARN und unter Summary seht Ihr auch die konfigurierten Schwellen.

Auf die gleiche Art lassen sich alle Services konfigurieren, stöbert einfach in den Regeln.

10. Benachrichtigung bei Zustandswechseln einrichten

So, nun geht der Service also wie gewünscht auf WARN oder CRIT - und das wollt Ihr das natürlich auch mitbekommen. Legt also eine Regel über Setup/Events/Notifications an.

Unter Notification method gibt es einige Möglichkeiten zur Auswahl: E-Mail, SMS, Slack, Jira und so weiter. Für Mail-Benachrichtigungen muss natürlich ein lokaler Mail-Server eingerichtet sein, für SMS braucht es ein bestimmtes SMS-Modem, die meisten anderen Dienste werden schlicht über irgendeine Art von API-Schlüssel angebunden. Auch Telegram lässt sich nutzen, allerdings nur per Plugin - wie, zeigen wir hier ausführlich.

benachrichtigungsmethoden.
Methoden für Benachrichtigungen

Unter Conditions könnt Ihr die Benachrichtigungen auf einzelne Dienste und Hosts beschränken, hier also auf die CPU Utilization auf dem Host localhost. Speichern, Änderungen übernehmen/aktivieren, fertig - jetzt steht ein echtes, praktikables Monitoring. Nun, ein sehr kleines ...

filter auf host und service.
Beschränkung der Benachrichtigung auf Host und Service

Übrigens: Benachrichtigungen gibt es nicht nur bei Statuswechseln, sondern bei allen Monitoring-Ereignissen, wie sie bei Checkmk heißen.

11. Weitere Hosts und Fritzbox aufnehmen

Wenn Ihr nun weitere Hosts aufnehmen wollt, ist das Prozedere im Grunde immer gleich, nur dass der Agent dann natürlich von der IP des Checkmk-Servers geladen werden muss. Die Agenten-Downloads findet Ihr unter Setup/Agents/ für Windows und Linux. Dann heißt es wieder installieren, registrieren, Host konfigurieren.

Ihr könnt aber auch Hosts ohne Agenten aufnehmen, dann gibt es eben nur den Status des Hosts selbst, also in der Regel UP oder DOWN.

Und dann gibt es noch Besonderheiten, beispielsweise die Fritzbox: Fügt diese mal dem Monitoring als Host hinzu:

fritzbox-config in checkmk.
Die Fritzbox im Setup

Im Monitoring seht Ihr dann den Fritzbox-Host mit Status UP und einem Service auf OK - das ist der PING-Service. So schaut Checkmk, ob der Host erreichbar ist, per ping-Befehl.

fritzbox-config in checkmk.
Die Fritzbox im Monitoring

Legt nun wieder eine Regel an: Setup/Agents/Other integrations/Hardware/Fritz!Box Devices. Hier braucht es nur einen Filter für den Fritzbox-Host.

fritzbox-config in checkmk.
Die Regel aktiviert den Spezial-Agenten für die Fritzbox

Dann kommt das übliche Prozedere: Service-Erkennung durchführen, Services aufnehmen, Änderungen aktivieren. (Okay, Stand heute, mit der Beta, führt das Aktivieren der Änderungen hier zu einer Fehlermeldung - ist aber nur ein Beta-Problem.)

fritzbox-services.
Die Standard-Services der Fritzbox

12. Wie geht es weiter?

Checkmk bietet noch wesentlich mehr Optionen und Funktionen. Von simplen Erweiterungen des Agenten, über das Monitoring von virtuellen Maschinen, bis hin zum Aufbau eines verteilten Monitorings mit mehreren Sites an mehreren Standorten und einer zentralen Übersichts-Site.

Für die weitere Beschäftigung, hier mal ein paar Ideen für den Anfang:

Der vermutlich beste Tipp, damit Motivation, Lernkurve und Spaß gut ineinandergreifen: Wünsche entwickeln! Zum Beispiel Philips-Hue-Geräte zu überwachen oder einen Newsticker ins Dashboard zu bringen. Nun, anfangs tun es auch normalere Wünsche, etwa eine Mail zu bekommen, wenn der Arbeitsspeicher vermutlich bald überlastet sein wird. Mehr zu diesem auf Prognosen basierendem Monitoring findet Ihr im offiziellen Handbuch. Das gibt es allerdings nicht in der Raw-Version!

Mehr zu Checkmk.

Mirco Lang

Freier Journalist, Exil-Sauerländer, (ziemlich alter) Skateboarder, Dipl.-Inf.-Wirt, Einzelhandelskaufmann, Open-Source-Nerd, Checkmk-Handbuchschreiber. Ex-Saturn'ler, Ex-Data-Becker'ler, Ex-BSI'ler. Computer-Erstkontakt: ca. 1982 - der C64 des großen Bruders eines Freunds. Wenn Ihr hier mehr über Open Source, Linux und Bastelkram lesen und Tutonaut unterstützen möchtet: Über Kaffeesponsoring via Paypal.freue ich mich immer. Schon mal im Voraus: Danke! Nicht verpassen: cli.help und VoltAmpereWatt.de. Neu: Mastodon

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Schaltfläche "Zurück zum Anfang"