Direkt zum Inhalt
28.11.2023 - Fachbeitrag

Checkmk-Monitoring automatisieren mit unserem Data2label-Plugin

Checkmk Grafik

Mit dem von Heinlein Support entwickelten Data2label können Administratoren viel Zeit sparen: Die Checkmk-Erweiterung hilft, die eigene Serverlandschaft automatisch mit Monitoring zu versorgen, erkennt neue Hosts besser und bindet diese auf Wunsch maßgeschneidert in die Überwachung ein.

Dazu nutzt unser Data2label die von Checkmk gesammelten Informationen, um die Konfiguration für weitere Tests und detailliertere Informationsgewinnung zu spezifizieren. Mithilfe der Checkmk-API extrahiert es aus vorhandenen Daten, beispielsweise aus dem Hard- oder Software-Inventory von Checkmk Host-Eigenschaften in Form von "Label". Diese können dann für die Monitoring-Konfiguration selbst oder auch für Filter in Checkmk-Ansichten genutzt werden. So kann beispielsweise ein sehr einfacher Test feststellen, ob es sich bei einem System um einen Linux-Server handelt. Ist die Antwort positiv, kann das Data2label-Plugin untersuchen, ob ein Webserver vorliegt. Finden sich beispielsweise die Begriffe Apache oder NginX in der Liste der installierten Pakete, dann handelt es sich sehr wahrscheinlich um einen Linux-Webserver. Je nach Ergebnis dieses Tests könnten dann weitere Apache- oder NginX-spezifische Monitoringchecks gestartet werden - auf Wunsch auch komplett automatisch, immer wenn neue Server in die Monitoring-Konfiguration aufgenommen werden.

Jeder Label-Key kann mehrere Label-Values haben

Für die Checkmk-Konfiguration werden Merkmale von Hosts in Regelbedingungen verwendet. Die erwähnten Label sind da nur eines der möglichen Merkmale, aber sie helfen dem Admin auch dabei, Hosts auf simple Weise zu gruppieren. Jeder Label-Key kann dabei mehrere Label-Values haben. Die Labels stellen also ganze Dimensionen an Optionen bereit.

Über das angesprochene Hard-und Software-Inventory von Checkmk stehen die angesprochenen Informationen über das Betriebssystem, die installierte Software und sogar Versionsnummern zur Verfügung. Data2label nutzt zwei Ansichten (Views), die von den Beispielkonfigurationen abgefragt werden: inv_hosts_cpu und invswpac_search. Letzteres dient im Listing unten dazu, die installierten Webserver-Pakete zu finden.

Das folgende Listing zeigt das Beispiel, um bei installiertem Apache oder NginX die entsprechenden Label (software/apache:yes oder software/nginx:yes und beides mal software/webserver:yes) zu setzen:

 1 {
 2    'view_name': 'invswpac_search',
 3    'args': {
 4       'filled_in': 'filter',
 5       'invswpac_name': '^(apache2|nginx)$',
 6    },
 7    'labelmap': {
 8       'invswpac_name': {
 9          'apache2': ['apache', 'webserver'],
10         'nginx': ['nginx', 'webserver'],
11       },
12    },
13    'label_prefix': {
14       'invswpac_name': 'software/',
15    },
16    'label_value': {
17       'invswpac_name': 'yes',
18    },
19 }
  • Zeile 2 definiert die anzusprechende Ansicht, in dem Fall "invswpac_search".
  • In den Zeilen 3 bis 6 benennt der Admin Argumente für die Ansicht. In diesem Beispiel definiert er eine Suche, die im Feld invswpac_name nach dem Regulären Ausdruck  (RegEx) "^(apache2|nginx)$" sucht, hier also dem Namen der Softwarepakete der Webserver.
  • Die Zeilen 7 bis 12 definieren ein Mapping für die Label, wobei die Software in der in Zeile 8 definierten Spalte  "invswpac_name" nach Werten per Regulärem Ausdruck gesucht, der wiederum in Zeile Zeile 9 und 10 zu finden ist. Diese Werteliste aus Zeile 9 bzw. 10 dient Data2label dazu, später den Label-Key zu konstruieren.
  • Gemeinsame Label-Prefixe sind in den Zeilen 13 bis 15 spezifiziert, für die Spalten aus der Labelmap (Zeile 7 bis 12) – hier sind folglich die gleichen Schlüssel notwendig. Das "invswpac_name" aus Zeile 14 muss mit dem Eintrag aus Zeile 8 übereinstimmen. Alle so erzeugten Label haben den gemeinsamen Prefix "software/".
  • Die Zeilen 16 bis 18 definieren dann den Label-Wert, ebenfalls mit Bezug auf die Labelmap von Zeile 7 bis 12. Jedes Label hat somit die Form "software/apache:yes", mit dem Namen oder Platzhalter des Softwarepaketes vor dem Doppelpunkt (apache, webserver, nginx, ...).

Data2label ist auch für Mailserver geeignet

Derlei funktioniert selbstverständlich auch für Mailserver, erklärt Heinlein-Consultant Robert Sander: "Data2label automatisiert Konfigurationen, etwa aufgrund von installierter Software, so lassen sich dann gezielt Plugins für bestimmte Software an den Checkmk-Agenten über die Agentenbäckerei verteilen. Der Admin muss nicht mehr per Hand die Eigenschaft zuweisen, dass der neue Host ein Dovecot-Server ist, nur um einen IMAP-Check einzurichten. Mit dem Label "software/dovecot:yes" lässt sich der IMAP-Check automatisch zuweisen, sobald Checkmk per HW/SW-Inventory ein installiertes Dovecot entdeckt. Die Konfigurationssemantik ist dabei so flexibel, dass beliebige Ansichten (Views) von Checkmk nach Informationen abgefragt werden können."

Diese Konfigurationsdatei kann der Administrator in der Checkmk-Instanz in einem Verzeichnis $OMD_ROOT/etc/data2label ablegen. – Das Tool selbst kann via Cronjob regelmäßig gestartet werden, es liegt in $OMD_ROOT/local/bin und nutzt den Checkmk-API-Wrapper, der ebenfalls installiert sein muss. Die Labels, so Sander, ließen sich auch in JSON-Dictionaries spezifizieren, die in einem Spool-Verzeichnis des Checkmk-Agenten hinterlegt sind und zentral vom Konfigurationsmanagement (Puppet, Salt, Ansible, ...) bespielt werden. So könnten Admins zentrale Vorgaben machen, die das Checkmk-Monitoring automatisch umsetzt, sobald ein den Spezifikationen entsprechender Host im Netz "auftaucht".

Lust bekommen das Data2label-Plugin auszuprobieren? - Dann ran an die Tastatur. ;-)

Bei Fragen hilft unser Consulting-Team gern

Für uns hat sich Checkmk in den letzten Jahren zur "State of the Art"-Lösung entwickelt: Schnell, performant und mit vielen Automatisierungsmöglichkeiten, die das Admin-Herz höher schlagen lassen. Unsere Consultants geben ihr Wissen dazu gern in unseren Akademie-Schulungen Checkmk - Grundlagen und Checkmk - Fortgeschrittene an alle Admins weiter.

Bei individuellen Fragen zu Konzeption, Aufbau und Konfiguration von Checkmk stehen wir ebenso gern mit Rat und Tat zur Verfügung. Auch und erst recht zu fortgeschrittenen Themen wie komplexen Alarmierungsregeln oder kundenspezifischen Entwicklungen.

Schreiben Sie unserem Team unter support@heinlein-support.de.