Wie man Windows-Systeme mit Checkmk in einem Docker-Container überwacht

Der Einsatz eines Überwachungstools bietet dir eine großartige Möglichkeit, die Betriebszeit und die Zuverlässigkeit deiner Infrastruktur zu erhöhen. In der Tat ist die Überwachung für jedes Unternehmen unerlässlich. In meinem letzten Tutorial habe ich bereits über die Bedeutung der Überwachung gesprochen und gezeigt, wie man Checkmk auf einem Linux-Server installiert. Jetzt benutze ich einen normalen PC mit Windows 10, um Checkmk in Docker auszuführen und möchte dir zeigen, wie du Checkmk auf einem normalen Computer ausführen kannst. Du brauchst keine Erfahrung mit Monitoring oder Linux. Dieses Tutorial ist auch für Windows-Nutzer/innen geeignet und bietet dir einen einfachen Einstieg in die professionelle Monitoring-Welt.

Voraussetzungen

Du brauchst ein Hostsystem, das Docker-Container ausführen kann. In diesem Lehrgang wird Docker Desktop Version 4.3.2 für Windows verwendet, das du im ersten Schritt installieren musst, es sei denn, du verwendest eine andere Docker-Engine. Falls du Docker auch unter Windows verwendest, stelle sicher, dass dein Hostsystem über genügend Hardwareressourcen verfügt: Als Linux-basiertes Tool hat Checkmk relativ niedrige Systemanforderungen, aber die Kombination aus Windows als Hostsystem und Container-Virtualisierung bringt einen ziemlichen Overhead mit sich. Außerdem muss der Host mit dem Internet verbunden sein. Diese Anleitung basiert auf der Checkmk Raw Edition Version 2.0.0p17.

Erste Schritte

Als ersten Schritt musst du Docker Desktop für Windows oder eine andere Docker Engine deiner Wahl herunterladen und installieren. Ich habe Docker Desktop verwendet, weil es für Privatanwender kostenlos und einfach zu bedienen ist.

  • Lade Docker Desktop für Windows herunter und installiere es.
  • Abhängig von deiner Windows-Version musst du nach der Installation von Docker Desktop auch das WSL2 Linux Kernel-Update für Windows herunterladen und installieren.
  • Nachdem du das WSL2 Linux-Kernel-Updatepaket heruntergeladen und installiert hast, öffne die Eingabeaufforderung. Du findest sie unter dem Startmenü und suchst nach „cmd“.
  • Du musst WSL 2 als Standardversion festlegen, wenn du Linux-basierte Systeme wie Docker Desktop installierst. Verwende den Befehl:
wsl --set-default-version 2

Installieren der Checkmk Raw Edition unter Windows

Für dieses Tutorial werde ich die Checkmk Raw Edition verwenden, die Community GPLv2 Edition, die auch auf Docker Hub verfügbar ist. Als Alternative gibt es eine Testversion der Checkmk Enterprise Edition. Die Enterprise Edition bietet einige zusätzliche Funktionen, die du mit der Testversion 30 Tage lang kostenlos nutzen kannst. Der Hauptunterschied besteht darin, dass du die Enterprise Edition nicht von Docker Hub ziehen kannst, sondern sie von der Checkmk-Website herunterladen musst, bevor du den nächsten Schritt machst. Wenn du die Checkmk Raw Edition verwendest, kannst du im Windows-Terminal bleiben und den folgenden Befehl verwenden, um die Raw Edition zu ziehen:

docker container run -dit -p 8080:5000 --tmpfs /opt/omd/sites/cmk/tmp:uid=1000,gid=1000 -v monitoring:/omd/sites --name cmk_demo -v /etc/localtime:/etc/localtime:ro --restart always checkmk/check-mk-raw:2.0.0-latest

In dem Befehl habe ich die im Checkmk-Leitfaden für Docker empfohlenen Parameter hinzugefügt. Es steht dir natürlich frei, sie anzupassen, aber bevor du das tust, solltest du die Seite des Leitfadens lesen. Warte darauf, dass Docker die Checkmk-Images holt. Du hast jetzt einen Container erstellt (in meinem Fall „cmk_demo“), in dem Checkmk läuft. Außerdem hast du die Daten der Website in diesem Container an einen dauerhaften Speicherort im Dateisystem des Docker-Knotens gebunden. Ich habe das Volume „Monitoring“ genannt, du kannst aber auch einen anderen Namen wählen, wenn du willst.

Dein Monitoring läuft jetzt schon, aber du musst das zufällig generierte Passwort für den Benutzer cmkadmin kennen. Standardmäßig erzeugt Checkmk einen ersten Benutzer „cmkadmin“ mit einem zufälligen Passwort für deine Checkmk-Site. Du findest dieses Passwort in den Container-Logs. Verwende den Befehl docker container logs und füge den Namen deiner Checkmk-Site in deiner Windows-Eingabeaufforderung hinzu:

docker container logs cmk_demo

cmd zeigt Docker-Protokolle an

Mach dir keine Gedanken über den Terminalbefehl, um dein Passwort zu ändern. Du könntest das CLI dieses Containers in Docker Desktop (nicht in der Windows-Eingabeaufforderung) öffnen und die Befehle „omd su cmk“ und „htpasswd etc/htpasswd cmkadmin“ verwenden. Es ist aber einfacher, das in der Benutzeroberfläche von Checkmk zu tun.

Kopiere das Passwort, du wirst es im nächsten Schritt brauchen. Wenn die Installation richtig funktioniert hat, kannst du über den Link http://localhost:8080/cmk/check_mk/ in deinem Browser auf deine Checkmk-Seite zugreifen.

Ändere dein Passwort in Checkmk

  • Melde dich bei Checkmk mit dem Benutzer „cmkadmin“ und deinem Passwort an, das du zuvor aus der Eingabeaufforderung kopiert hast.
  • Du wirst ein leeres Dashboard sehen, weil dein Monitoring noch keine Hosts enthält. Bevor du sie hinzufügst, gehst du zunächst im Menü links auf „Benutzer“ und klickst auf Passwort ändern.
  • Gib dein altes Passwort ein und bestätige das neue.

Füge den localhost als ersten Host zu Checkmk hinzu

Als ersten Host solltest du deinen Überwachungshost hinzufügen, der in diesem Fall ein Docker-Container ist. Checkmk bietet ein ausgereiftes Docker- und Kubernetes-Monitoring, aber für den Einstieg ist es in diesem Fall am einfachsten, den Checkmk Linux-Agenten zu verwenden, der bereits in deinem Checkmk-Container läuft.

  • Gehe in der linken Seitenleiste auf Setup -> Hosts und klicke auf „Host hinzufügen“.
  • Gib „localhost“ unter „Hostname“ ein und klicke auf „Speichern & zur Dienstkonfiguration gehen“.

Screenshot von Checkmk beim Hinzufügen des Localhosts

  • Warte auf die automatische Diensterkennung. Checkmk prüft nun, ob es Daten vom Agenten abrufen kann und ob es neue Überwachungsdienste gibt.
  • In meinem Fall hat Checkmk 13 Dienste und auch ein paar Labels entdeckt. Klicke auf die Schaltfläche „Alle reparieren“, um alle diese Dienste in dein Monitoring aufzunehmen.

Automatisierte Dienstsuche in Checkmk

In diesem Fall hat Checkmk die Dienste auf dem Container entdeckt, der vom Checkmk-Agenten bereitgestellt wird, aber die automatische Diensterkennung funktioniert auch mit SNMP oder anderen Protokollen, was Checkmk zu einem guten Werkzeug für die Netzwerküberwachung macht. Die automatische Erkennung von Labels ist eine gute Möglichkeit, verschiedene Arten von Geräten zu verwalten, und du kannst natürlich auch deine eigenen Labels hinzufügen. Die Schaltfläche „Alle reparieren“ fügt alle erkannten Dienste und Host-Labels zu deinem Monitoring-Dashboard hinzu und entfernt Dienste, die verschwunden sind. Natürlich kannst du die Dienste auch manuell verwalten, aber die Funktion „Alles reparieren“ macht es viel einfacher. IP Adressen kannst Du auf einem Linux Server mittels ifconfig abfragen.

Überwachung von Windows-Systemen mit Checkmk

Da der Container auf meinem Windows-Laptop läuft, möchte ich dir zeigen, wie du Windows-Systeme mit Checkmk überwachen kannst. Die beste Möglichkeit, Windows-Geräte zu überwachen, ist der Checkmk-Agent für Windows. Obwohl der Linux-Agent bereits im Checkmk-Container läuft, musst du ihn zuerst auf deinem Windows-Rechner installieren, bevor du den Host in deine Überwachung einbeziehst.

  • Gehe zu Einrichtung -> Agenten und wähle das entsprechende Paket für dein Betriebssystem aus. In meinem Fall Setup -> Agents -> Windows -> check_mk_agent.msi
  • Lade den Agenten herunter und installiere ihn, indem du ihn anklickst. Führe die .msi-Datei aus.

Screenshot von Checkmk zeigt den Checkmk-Agenten für Windows

  • Klicke auf Setup -> Hosts und „Host hinzufügen“ wie zuvor
  • Füge den Namen deines Windows-Hosts unter „Hostname“ in den „Grundeinstellungen“ und die IP-Adresse des Hosts unter „Netzwerkadresse“ in das Feld neben „IPv4-Adresse“ ein. Wenn du dir über die IP-Adresse deines Windows-Hosts nicht sicher bist, kannst du den Befehl ipconfig in der Windows-Eingabeaufforderung verwenden.
  • Lass die anderen Bereiche unverändert und klicke auf „Speichern & zur Dienstkonfiguration gehen“. Warte auf die automatische Diensterkennung und klicke auf „Alles reparieren“.

Letzter Schritt: Aktiviere die Änderungen in Checkmk

Jetzt befinden sich zwei Hosts in deinem Monitoring, aber Checkmk hat einen Sicherheitsmechanismus. Alle vorgenommenen Änderungen werden zuerst unter „Ausstehende Änderungen“ aufgelistet, damit du alle Änderungen überprüfen kannst, bevor sie sich auf dein Monitoring auswirken

  • Aktiviere deine Änderungen, indem du auf das hervorgehobene Feld mit dem gelben Ausrufezeichen (!) in der oberen rechten Ecke klickst.
  • Klicke auf „Auf ausgewählten Websites aktivieren“ und du hast deine Hosts erfolgreich zu deinem Monitoring hinzugefügt.

Screenshot von Checkmk aktivieren ausstehende Änderungen

Checkmk unterscheidet zwischen dem Setup als Konfigurationsumgebung, in der du die Hosts, Services und Einstellungen verwaltest, und dem Bereich namens Monitor, in dem die eigentliche Betriebsüberwachung stattfindet. Neue Hosts und andere Änderungen in der Konfiguration haben zunächst keinen Einfluss auf die Überwachung. Du musst sie erst aktivieren, bevor sie in Produktion gehen.

Und das war’s. Klicke im Menü auf der linken Seite auf Monitor -> Alle Hosts, um deine Hosts zu finden. Die Kombination von Docker unter Windows ist ziemlich unkonventionell, eignet sich aber hervorragend zum Testen von Checkmk oder zur Überwachung von Servern in Windows-Umgebungen. Wenn du größere Umgebungen überwachen willst und nur Windows-Server hast, solltest du darüber nachdenken, die virtuelle oder physische Checkmk-Appliance für die Überwachung zu nutzen.

Das könnte dich auch interessieren …