Eine komplette IT-Infrastruktur aufzubauen ist schon komplex – sie ständig im Auge zu behalten nicht minder. Wie kann die quelloffene Monitoring-Lösung Checkmk aus München dabei helfen?
Im ersten Teil unseres Checkmk-Monitoring-Workshops befassen wir uns mit den Grundlagen der umfangreichen Überwachungslösung.
(Bild: Lang - Checkmk)
In dieser dreiteiligen Serie zu Checkmk zeigen wir, was die Monitoring-Software zu leisten vermag und vor allem wie sie tickt. Wie sieht ein Workflow generell aus? Wie kommen Geräte und Dienste ins Monitoring? Was sind sinnvolle erste Schritte? Wie genau lassen sich zum Beispiel Webseiten, Mailboxen oder die Auslastung von Speichermedien überwachen?
Die Teile zwei und drei der Serie erscheinen in den nächsten Tagen und werden sehr konkrete Aspekte beleuchten und gängige Beispiele zu Monitoring-Objekten wie Server-Hardware, Netzwerk-Verfügbarkeit oder Webanwendungen zeigen. Zunächst geht es allerdings darum, zu verstehen, wie Checkmk grundsätzlich funktioniert, was es überhaupt zu leisten vermag, wie der Datenfluss läuft – kurz: Wie Checkmk tickt.
Checkmk gibt es bereits seit 2008, damals noch als Check_MK, entwickelt von Mathias Kettner – die mk-Endung taucht auch bei Plugins und Komponenten immer wieder mal auf. Ursprünglich baute Checkmk auf Nagios https://www.nagios.org/ auf und wurde mehr und mehr um eigene Komponenten erweitert, darunter auch eine – für damalige Verhältnisse – recht komfortable Weboberfläche. Heute ist der Nagios-Kern nur noch in der Open-Source-Version verbaut, die kommerziellen Editionen verfügen über einen eigenständigen Kern, der vor allem deutlich performanter arbeitet.
Monitoren lassen sich mit Checkmk grundsätzlich alle Dinge, die über eine IP-Adresse verfügen sowie darauf laufende Dienste. Sprich es können jegliche Arten von Servern und Workstations ins Monitoring aufgenommen werden, Netzwerkgeräte wie Switches oder Drucker, Cloud-Instanzen und sonstige virtuelle Maschinen, Container und so weiter.
All diese einzelnen Geräte werden in Checkmk als „Hosts“ aufgeführt. Alle Hosts zeigen wiederum mehr oder weniger „Services“, also beispielsweise laufende Prozesse, die Auslastung der CPU, die einzelnen Ports eines Switches bis hin zu konkreten SQL-Abfragen von Oracle-Datenbanken. Komplexere Komponenten wie etwa Kubernetes-Cluster dürfen natürlich auch nicht fehlen, hier bietet Checkmk diverse Möglichkeiten, um flüchtige, automatisch erzeugte Objekte ebenso automatisch ins Monitoring zu übernehmen. Zu guter Letzt: Auch ein Hardware-/Software-Inventar gehört zum Feature-Set.
Noch ein Wort zu den Editionen. Der größte Unterschied zwischen Open-Source-Version und kommerziellen Editionen ist wie bereits erwähnt der Monitoring-Kern – der Checkmk-eigene Kern „CMC“ (Checkmk Monitoring Core) ist deutlich performanter und für Projekte mit Tausenden von Hosts und entsprechend vielen Services ausgelegt. Funktional lässt sich dies jedoch genauso mit dem Nagios-Kern erledigen.
Im Detail gibt es etliche Unterschiede zwischen der kommerziellen Standardversion „Enterprise Edition“ und der Open-Source-Basis „Raw Edition“. Zum Beispiel enthält die Enterprise Edition umfangreiche Reporting-Funktionen, verteiltes Monitoring (etwa für mehrere Standorte, Kunden, Netzwerkzonen) oder das durchaus spannende „Predictive Monitoring“, das auf Voraussagen basiert.
Der wohl wichtigste Unterschied liegt jedoch in der so genannten „Agent Bakery“ – und die bringt uns direkt zur Frage, wie Checkmk überhaupt aufgebaut ist. Und das lässt sich am einfachsten am guten alten Grundprinzip der EDV zeigen: Eingabe, Verarbeitung, Ausgabe – EVA.
Eingabe: Agenten, SNMP, APIs
Der Checkmk-Server läuft ausschließlich auf Linux-Systemen und liefert die zentrale Weboberfläche. Hosts, beziehungsweise deren Daten, kommen nun auf drei Wegen ins Monitoring: Über installierte „Agenten“, Spezialagenten oder SNMP-Agenten. Agenten sind die Komponenten, die Roh-Daten ans Monitoring liefern – die Auswertung erfolgt auf dem Server.
Bei SNMP-Hosts wie Switches oder Firewalls werden die Daten direkt via SNMP ans Monitoring geliefert, hier werden allein die Metadaten (IP, Version, Community) benötigt. Spezialagenten laufen ebenfalls rein auf dem Checkmk-Server und holen sich Daten von Geräten, die weder SNMP anbieten noch die Installation von Software ermöglichen – über deren APIs. So lassen sich beispielsweise über die Kubernetes-API sämtliche (flüchtige) Container automatisch ins Monitoring holen und überwachen. Ein weiteres Beispiel für diese Agenten wäre das Monitoring von Füllständen von Tonern in Netzwerkdruckern.
Auf allen „richtigen“ Rechnern, sprich Servern und Workstations, wird in der Regel der Checkmk-Agent installiert. Der Agent führt auf den Hosts allerlei Tools und Skripte aus, sammelt Daten zu Prozessen, Logs oder Hardware-Metriken und liefert diese dann – auf Anfrage – regelmäßig an den Checkmk-Server. Der Datenstrom ist dabei ganz schlicht formatierter, menschenlesbarer Text.
Stand: 08.12.2025
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel IT-Medien GmbH, Max-Josef-Metzger-Straße 21, 86157 Augsburg, einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von Newslettern und Werbung nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Meine Einwilligung umfasst zudem die Verarbeitung meiner E-Mail-Adresse und Telefonnummer für den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern wie z.B. LinkedIN, Google und Meta. Hierfür darf die Vogel Communications Group die genannten Daten gehasht an Werbepartner übermitteln, die diese Daten dann nutzen, um feststellen zu können, ob ich ebenfalls Mitglied auf den besagten Werbepartnerportalen bin. Die Vogel Communications Group nutzt diese Funktion zu Zwecken des Retargeting (Upselling, Crossselling und Kundenbindung), der Generierung von sog. Lookalike Audiences zur Neukundengewinnung und als Ausschlussgrundlage für laufende Werbekampagnen. Weitere Informationen kann ich dem Abschnitt „Datenabgleich zu Marketingzwecken“ in der Datenschutzerklärung entnehmen.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden. Dies gilt nicht für den Datenabgleich zu Marketingzwecken.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://contact.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung.
Und das bringt uns nun wieder zur „Agentenbäckerei“, dem vielleicht größten Unterschied zwischen Open-Source- und kommerzieller Version. Standardmäßig liefert ein installierter Agent lediglich einige Standarddaten. Wird er nun so konfiguriert, dass etwa Nvidia-GPUs überwacht werden sollen, wird das intern über ein Plugin erreicht. In der Open-Source-Version muss dieses Plugin in Form eines Skripts jedoch händisch auf dem Host ausgerollt, sprich in ein Unterverzeichnis des Agenten kopiert werden. Über die Agentenbäckerei lassen sich die Agenten hingegen auf dem Server erweitern, was in einer einzelnen kompilierten EXE-Datei resultiert. Einmal per Agentenbäckerei gebaute und auf den Hosts installierte Agenten lassen sich dann später auch automatisch aktualisieren. Die Agentenbäckerei erspart also händisches Ausrollen und Aktualisieren. So komfortabel dies auch sein mag – freilich kann man in der Open-Source-Version beispielsweise auch Ansible nutzen, um derlei Aktualisierungen ebenso komfortabel umzusetzen.
Natürlich gibt es Monitoring-Systeme, die explizit mit agentenlosem Monitoring werben. Der große Vorteil dort: Die (Basis-)Einrichtung ist unkompliziert, ein Übersichtsmonitoring ist fix eingerichtet. Der Vorteil von Agenten: Sie können extrem detailliert monitoren. Zumal eigene Erweiterungen schon ganz trivial möglich sind, Skripte müssen dem Datenstrom des Agenten lediglich eine Ausgabe in der Form „Zustand – Name – Beschreibung“ hinzufügen.
Verarbeitung: Checks
Der erste Schritt des EVA-Prinzips ist damit erledigt, die Eingabe der Daten erledigen die Agenten. Der nächste Schritt ist demnach die Verarbeitung. Das erledigen in Checkmk die so genannten „Checks“. Mal ein Beispiel: Der Agent liefert Daten zum Arbeitsspeicher in der Form „MemFree: 20501872 KB“. Dass rund 20 GB frei sind, mag interessant sein, aber die Aufgabe des Monitorings ist schließlich zu warnen und zu benachrichtigen, wenn etwa nur noch 5 Prozent des RAMs frei sind.
Diese Auswertungen werden in Checkmk über Regeln konfiguriert. Eine Regel könnte zum Beispiel lauten: „Wenn ein Linux-Host in Köln nur 5 Prozent freien RAM hat, soll der RAM-Service im Monitoring auf den Zustand WARN gehen.“ Der Vorteil dieser Art von Konfiguration: Es lassen sich in einem Schritt Hunderte Hosts/Services konfigurieren! Stellt sich nun die Frage, woher Checkmk weiß, dass es sich um einen Linux-Host in Köln handelt?
Ausgabe: Ansichten, Graphen Dashboards
Vorher aber noch kurz zum letzten Part des EVA-Prinzips, der Ausgabe: Nachdem die Daten von den Agenten geliefert und von den Checks ausgewertet wurden, werden die Ergebnisse in vielfältiger Form in der Weboberfläche ausgegeben. Die Basisausgabe in Listen-Form würde im Grunde so aussehen: „Zustand – Name – Beschreibung“ – also genau das oben bereits angesprochene Format für eigene kleine Erweiterungen. Daneben gibt es aber noch etliche weitere Darstellungen von simplen Grafen für die zeitliche Entwicklung von Metriken über typische, Management-kompatible Dashboards bis hin zu (sehr) abstrakten Visualisierungen von Zusammenhängen und Geschäftsanwendungen (Stichwort Business Intelligence).
Erste Schritte zum Abschluss dieses ersten Teils
Wieder zum Linux-Host in Köln: Checkmk hat diverse Mechanismen, um Hosts und damit das gesamte Monitoring zu strukturieren. Primär sollte über Ordner strukturiert werden, hinzu gesellen sich manuell organisierte „Host-Merkmale“, per Regel gesetzte Host-Gruppen, völlig freie, manuell oder automatisch gesetzte „Labels“ sowie hierarchische Eltern-Kind-Beziehungen, die sich aus dem Netzwerkaufbau ergeben.
Die meisten dieser Einordnungen lassen sich anschließend in den Regeln als Bedingungen nutzen, um eben Linux-Server in Köln von Windows-Workstations in Hamburg unterscheiden zu können. Und natürlich gilt das auch für die Kernfunktion eines jeden Monitoringsystems: Benachrichtigungen. Über die saubere Strukturierung von Monitoring-Objekten und die Zuordnung von Kontakten lässt sich präzise benachrichtigen.
Für ernsthafte Projekte sollte daher genau an dieser Stelle angefangen werden: Die Strukturierung der Hosts nach Standorten, Betriebssystemen, Verwendungszwecken, Benutzergruppen oder dergleichen. Wie sich eine Struktur ergibt und nutzen lässt, lesen Sie im nächsten Teil.