Checkmk
to checkmk.com

1. Einleitung

Host-Merkmale (englisch: host tags) sind Schlagworte, die Hosts zugeordnet werden können, um diese zu strukturieren und zu organisieren, etwa nach Wichtigkeit, IP-Adressfamilie oder nach dem Weg, auf dem der Host seine Daten erhält. So werden Host-Merkmale über die Ordnerstruktur in Checkmk vererbt und können als Bedingung in einer Regel ausgewählt werden, um Hosts gezielt anzusprechen.

Host-Merkmale sind aber nicht nur bei in der Konfiguration, sondern auch im Monitoring nützlich. Zum Beispiel gibt es in Tabellenansichten einen Filter für Host-Merkmale und das Snapin Virtual host tree kann Ihre Ordner anhand der Merkmale in einem Baum anordnen.

Und auf der Kommandozeile können Sie bei vielen Befehlen mit der Syntax @foo alle Hosts mit dem Merkmal foo auswählen.

Damit alles richtig Sinn ergibt, sollten Sie Ihr eigenes Schema für Host-Merkmale einrichten, welches für Ihre Umgebung optimal passt und mit den anderen Möglichkeiten der Strukturierung von Hosts zusammenpasst. Nachträgliche Änderungen einmal eingerichteter Host-Merkmale sind möglich, sollten aber vermieden werden — da die Umbenennung der ID eines Merkmals in den meisten Fällen manuelle Nacharbeit erfordert.

Aber bevor wir Ihnen zeigen, wie Sie im Setup eigene Host-Merkmale definieren können, klären wir zunächst einige Begriffe.

1.1. Host-Merkmalsgruppen

Host-Merkmale sind in Gruppen organisiert, den sogenannten Host-Merkmalsgruppen (englisch: host tag groups). Von diesen Merkmalsgruppen gibt es zwei verschiedene Sorten. Diese Unterscheidung ist für den gesamten Aufbau Ihrer Host-Merkmale sehr wichtig. Es gibt Merkmalsgruppen, die mehrere Merkmale enthalten und es gibt Merkmalsgruppen, die nur ein einziges Merkmal enthalten: die Checkbox-Merkmale.

Gruppen mit mehreren Merkmalen

Ein gutes Beispiel für eine solche Host-Merkmalsgruppe ist Data center mit den möglichen Merkmalen Data center 1 und Data center 2. Damit wäre dann jeder Host genau einem der beiden Rechenzentren zugeordnet. Möchten Sie Hosts anlegen, die in keinem der beiden Rechenzentren stehen, so brauchen Sie eine dritte Auswahlmöglichkeit, z.B. Not in a data center.

Jeder Host in Checkmk erhält aus dieser Merkmalsgruppe genau ein Merkmal. Daher ist die Festlegung des Standardwerts wichtig. Der Standardwert wird gesetzt, wenn einem Host ein Merkmal aus der Gruppe nicht explizit zugewiesen wird. Bei der Erstellung einer Merkmalsgruppe ist das erste Merkmal in der Liste der Standardwert. Für das Beispiel Data center ist das Merkmal Not in a data center wahrscheinlich der geeignete Standardwert.

Manche Anwender haben versucht, die Anwendung, die auf einem Host läuft, in einer Merkmalsgruppe abzubilden. Die Gruppe hieß z.B. Application und hatte die Ausprägungen Oracle, SAP, MS Exchange, usw. Das geht so lange gut, bis der Tag kommt, an dem ein Host zwei Anwendungen hat — und der kommt sicher!

Die richtige Lösung, um Anwendungen Hosts zuzuordnen, ist eine andere: Erzeugen Sie pro Anwendung eine eigene Merkmalsgruppe, die nur zwei Möglichkeiten (sprich: Merkmale) anbietet: Ja oder Nein. Und wenn Sie auf ein Merkmal wie Nein gänzlich verzichten können und ein Merkmal einfach nur aktivieren oder deaktivieren möchten, dann nützen Sie einfach die Checkbox-Merkmale in Checkmk.

Checkbox-Merkmale

Checkmk erlaubt es Ihnen nämlich, Merkmalsgruppen mit nur einem einzigen Merkmal anzulegen, die sogenannten Checkbox-Merkmale (englisch: checkbox tags). Für das obige Beispiel einer Anwendung können Sie dann eine Merkmalsgruppe Oracle mit dem einzigen Merkmal Ja erzeugen — d.h. das Nein können Sie sich sparen. Ein Checkbox-Merkmal wird in den Host-Eigenschaften nicht als Liste, sondern als eben eine Checkbox dargestellt. Ein Ankreuzen der Checkbox setzt das Merkmal, andernfalls entfällt das Merkmal. Im Gegensatz zu den Merkmalsgruppen mit mehreren Merkmalen, bei denen immer genau ein Merkmal gesetzt bzw. aktiviert ist, verbleiben Checkbox-Merkmale standardmäßig deaktiviert.

1.2. Themen

Damit das Ganze nicht unübersichtlich wird, wenn Sie sehr viele Host-Merkmalsgruppen haben (z.B. weil Sie sehr viele verschiedene Anwendungen abbilden), können Sie die Merkmalsgruppen zu Themen (englisch: topics) zusammenfassen. Alle Merkmalsgruppen des gleichen Themas

  • werden in den Host-Eigenschaften in einem eigenen Kasten zusammengefasst und

  • zeigen bei den Bedingungen einer Regel den Namen des Themas vor dem der Merkmalsgruppe, z.B. Anwendungen / Oracle.

Die Themen haben also „nur“ eine optische Funktion und keine Auswirkung auf die eigentliche Konfiguration.

1.3. Hilfsmerkmale

Hilfsmerkmale (englisch: auxiliary tags) lösen folgendes Problem: Stellen Sie sich vor, dass Sie eine Host-Merkmalsgruppe Betriebssystem definieren, mit den Ausprägungen Linux, AIX, Windows 2016 und Windows 2019. Nun möchten Sie eine Regel definieren, welche für alle Windows-Hosts gelten soll.

Eine Möglichkeit ist es, ein Hilfsmerkmal namens Windows zu definieren. Ordnen Sie den beiden Merkmalen Windows 2016 und Windows 2019 dieses Hilfsmerkmal zu. Ein Host, der eines der beiden Merkmale hat, erhält dann von Checkmk automatisch immer auch das Hilfsmerkmal Windows. In den Regeln erscheint Windows als eigenes Merkmal für die Formulierung von Bedingungen.

Diese Lösung hat den großen Vorteil, dass sie sich zu einem späteren Zeitpunkt sehr leicht um neue Versionen von Windows erweitern lässt. Sobald dann im Jahr 2030 Windows 3.0 erscheint, legen Sie einfach ein neues Merkmal Windows 3.0 an und ordnen diesem ebenfalls das Hilfsmerkmal Windows zu. Alle bestehenden Regeln, die dieses Hilfsmerkmal verwenden, gelten dann automatisch auch für die Hosts mit dem neuen Merkmal. So ersparen Sie sich jede einzelne Regel prüfen und bearbeiten zu müssen.

2. Vordefinierte Merkmalsgruppen

Den Einstieg in die Konfiguration der Host-Merkmale finden Sie über Setup > Hosts > Tags:

Liste aller vordefinierten Host-Merkmalsgruppen.
In einem frisch aufgesetzten System werden nur die vordefinierten Merkmalsgruppen und Hilfsmerkmale aufgelistet

Checkmk richtet bei der Installation mehrere Host-Merkmalsgruppen ein:

ID Titel Merkmale Zweck

criticality

Criticality

Productive system (ID: prod), Business critical (ID: critical), Test system (ID: test), Do not monitor this host (ID: offline)

Wichtigkeit des Systems. Für das Merkmal offline wird die Regel Hosts to be monitored mit ausgeliefert, welche die Überwachung des Hosts abschaltet. Die anderen Merkmale sind nur Beispiele und ohne Funktion. Sie können diese aber Hosts zuweisen und dann in Regeln verwenden.

networking

Networking Segment

Local network (low latency) (ID: lan), WAN (high latency) (ID: wan), DMZ (low latency, secure access) (ID: dmz)

Verstehen Sie diese Merkmalsgruppe nur als Beispiel. Für das Merkmal wan ist die Beispielregel PING and host check parameters hinterlegt, welche die Schwellwerte für PING-Antwortzeiten an die längeren Laufzeiten im WAN anpasst.

agent

Checkmk agent / API integrations

API integrations if configured, else Checkmk agent (ID: cmk-agent), Configured API integrations and Checkmk agent (ID: all-agents), Configured API integrations, no Checkmk agent (ID: special-agents), No API integrations, no Checkmk agent (ID: no-agent)

Legt fest, auf welche Art die Daten vom Host geholt werden.

piggyback

Piggyback

Use piggyback data from other hosts if present (ID: auto-piggyback), Always use and expect piggyback data (ID: piggyback), Never use piggyback data (ID: no-piggyback)

Dieses Merkmal legt fest, ob und wie Piggyback-Daten für den Host erwartet/verarbeitet werden.

snmp_ds

SNMP

No SNMP (ID: no-snmp), SNMP v2 or v3 (ID: snmp-v2), SNMP v1 (ID: snmp-v1)

Hier wird bestimmt, ob Daten (auch) per SNMP eingesammelt werden sollen.

address_family

IP address family

IPv4 only (ID: ip-v4-only), IPv6 only (ID: ip-v6-only), IPv4/IPv6 dual-stack (ID: ip-v4v6), No IP (ID: no-ip)

Legt fest, ob der Host per IPv4 oder IPv6 oder beidem überwacht werden soll. „No IP“ ist relevant für Hosts, die über einen Spezialagenten abgefragt werden.

Sie können vordefinierte Merkmalsgruppen (englisch: predefined tag groups) anpassen, solange diese nicht als built-in markiert sind (in der Spalte Actions). Die eingebauten Merkmalsgruppen werden intern von Checkmk bei der Konfigurationserzeugung benötigt und sind daher nicht änderbar. Dagegen sind Änderungen in Criticality oder Network Segment unkritisch. Diese sind nur als Beispiel vorgesehen.

3. Merkmalsgruppen erstellen

Sie starten die Erstellung von eigenen Host-Merkmalen auf der Seite Tag groups, die Sie wieder über Setup > Hosts > Tags erreichen.

Bevor Sie Host-Merkmale erstellen können, müssen Sie zunächst die Host-Merkmalsgruppe anlegen, die die Merkmale enthalten soll. Das Anlegen einer neuen Merkmalsgruppe erfolgt mit dem Knopf Symbol zum Anlegen einer neuen Merkmalsgruppe. Add tag group und bringt Sie zu folgenden Formularen:

Grundeinstellungen einer Merkmalsgruppe.
ID und Titel werden in den Grundeinstellungen der Merkmalsgruppe festgelegt

Die Tag group ID wird intern als ID für die Merkmalsgruppe verwendet. Sie muss eindeutig sein und kann später nicht mehr geändert werden. Es gelten die üblichen Regeln für erlaubte Zeichen (nur Buchstaben, Ziffern, Unterstrich).

Der Title wird überall in der GUI verwendet, wo es um die Merkmalsgruppe geht. Da dies ein reiner Anzeigetext ist, kann er jederzeit geändert werden, ohne dass das einen Einfluss auf die bestehende Konfiguration hat.

Das Topic können Sie leer lassen. Dann wird Ihre Merkmalsgruppe zusammen mit den mitgelieferten Gruppen Criticality und Networking Segment bei den Host-Eigenschaften im Kasten Custom attributes angezeigt. Sie können aber auch eigene Themen anlegen und damit Ihre Merkmalsgruppen übersichtlich zusammenfassen.

Am wichtigsten ist der nächste Kasten Tag choices, in dem Sie nacheinander alle Host-Merkmale für die neue Merkmalsgruppe festlegen:

Liste der zur Merkmalsgruppe gehörenden Host-Merkmale.
Auch jedes Host-Merkmal benötigt eine ID und einen Titel

Dabei muss die Tag ID eindeutig innerhalb der Gruppe sein.

Die Reihenfolge, welche Sie wie gewohnt mit dem Knopf Symbol zum Verschieben eines Listeneintrags. ändern können, hat nicht nur eine optische Funktion: Das erste Merkmal in der Liste ist der Standardwert! Das bedeutet, dass alle Hosts, die keine explizite Einstellung für diese Merkmalsgruppe haben, automatisch auf diesen Wert gesetzt werden.

Unter Auxiliary tags können Sie jedem Host-Merkmal Hilfsmerkmale zuordnen, die automatisch dem Host hinzugefügt werden sollen, wenn das Host-Merkmal gewählt ist.

Ein Checkbox-Merkmal erstellen Sie analog, indem Sie eine Merkmalsgruppe anlegen, die aber nur ein Merkmal enthält:

Grundeinstellungen und Merkmalsdefinition für ein Checkbox-Merkmal.
Die Merkmalsgruppe eines Checkbox-Merkmals enthält genau einen Eintrag

In den Eigenschaften des Hosts wird dieses Merkmal dann so angezeigt:

Eigenschaften eines Hosts mit einem Checkbox-Merkmal.
Ein Checkbox-Merkmal ist standardmäßig deaktiviert

4. Hilfsmerkmale erstellen

Zusätzlich zu den vordefinierten Host-Merkmalsgruppen richtet Checkmk auch passende Hilfsmerkmale (englisch: auxiliary tags) ein, die auf der Seite Tag groups unter den Gruppen aufgelistet werden.

Neue Hilfsmerkmale können Sie mit Symbol zum Anlegen von Hilfsmerkmalen. Add aux tag erstellen.

Die Einstellungen eines Hilfsmerkmals.
Die Grundeinstellungen eines Hilfsmerkmals sind fast identisch zu denen einer Merkmalsgruppe

Mit der unveränderlichen ID und einem aussagekräftigen Titel sind alle notwendigen Einstellungen eines Hilfsmerkmals gesetzt. Die Zuordnung von Hilfsmerkmalen zu Host-Merkmalen erfolgt in den Merkmalsgruppen.

5. Merkmalsgruppen und Merkmale ändern und löschen

Das Ändern der bestehenden Merkmalsgruppenkonfiguration mag auf den ersten Blick wie eine einfache Operation aussehen. Das ist aber leider nicht immer so, da es größere Auswirkungen auf Ihre bestehende Konfiguration haben kann.

Änderungen, die lediglich die Anzeige betreffen oder nur neue Auswahlmöglichkeiten hinzufügen, sind unproblematisch und haben keine Auswirkung auf die bestehenden Hosts und Regeln:

  • Änderung im Titel oder Thema von Merkmalen und Merkmalsgruppen

  • Hinzufügen eines weiteren Merkmals zu einer Merkmalsgruppe

Alle anderen Änderungen können Auswirkungen auf bestehende Ordner, Hosts und Regeln haben, die die betroffenen Merkmale verwenden. Checkmk verbietet dabei nicht einfach solche Änderungen, sondern versucht für Sie, Ihre bestehende Konfiguration so anzupassen, dass alles wieder Sinn ergibt. Was das genau bedeutet, hängt von der Art der Operation ab.

Tipp: Checkmk kann Ihnen zeigen, in welchen Ordnern, Hosts und Regeln alle Host-Merkmale und alle Hilfsmerkmale gerade verwendet werden: Wählen Sie dazu auf der Seite Tag groups den Menüeintrag Tags > Tag usage.

5.1. Merkmalsgruppen löschen

Mit dem Löschen einer Merkmalsgruppe wird von allen Hosts die Information über die betroffenen Merkmale entfernt. Falls die Merkmalsgruppe in vorhandenen Regeln als Bedingung verwendet wird, erhalten Sie folgende Warnung:

Warnung beim Löschen einer Merkmalsgruppe.
Beim Löschen einer Merkmalsgruppe entscheiden Sie, wie die betroffenen Regeln angepasst werden

Sie müssen sich hier entscheiden, ob Sie aus bestehenden Regeln die Bedingungen mit den betroffenen Host-Merkmalen, oder ob Sie die ganzen Regeln löschen möchten. Beides kann sinnvoll sein und Checkmk kann nicht für Sie entscheiden, was hier besser ist.

Mit dem Knopf Delete rules containing tags that have been removed, …​ entscheiden Sie sich für das Löschen von Regeln. Allerdings wird eine Regel nur dann gelöscht, wenn sie eine positive Bedingung mit einem Merkmal aus der Merkmalsgruppe besitzt. Regeln, die eine negative Bedingung mit einem solchen Merkmal haben, verlieren einfach diese Bedingung, bleiben aber erhalten. Wenn Sie z.B. eine Regel für alle Hosts erstellt haben, die nicht das Merkmal dc02 haben und Sie entfernen das Merkmal dc02 komplett aus der Konfiguration, dann ist augenscheinlich auch diese Bedingung überflüssig.

Wenn Sie sich nicht sicher sind, sollten Sie die Regeln (die in der Warnung verlinkt sind) von Hand durchgehen und alle Bedingungen der betroffenen Merkmalsgruppe entfernen oder abändern.

5.2. Merkmale löschen

Das Löschen eines Merkmals erreichen Sie durch Editieren der Gruppe, Entfernen des Merkmals und anschließendem Speichern. Dabei kann es zu einer ähnlichen Warnung wie beim Entfernen einer Merkmalsgruppe kommen.

Hosts, die das betroffene Merkmal gesetzt hatten, werden automatisch auf den Standardwert gesetzt. Dies ist, wie beim Erstellen einer Merkmalsgruppe beschrieben, stets das erste Merkmal in der Liste.

Bei Regeln, die das zu löschende Merkmal als Bedingung erhalten, wird genauso verfahren, wie im vorherigen Abschnitt beim Löschen von Merkmalsgruppen beschrieben.

5.3. Hilfsmerkmale löschen

Sie können ein Hilfsmerkmal nur dann löschen, wenn es keinem Host-Merkmal zugewiesen ist.

5.4. Merkmal-IDs umbenennen

Anders als bei den Merkmalsgruppen können Sie die IDs von Merkmalen tatsächlich nachträglich ändern. Dies ist eine Ausnahme vom Checkmk-Prinzip, das IDs unveränderlich sind, wenn sie einmal vergeben wurden. Diese Ausnahme kann aber nützlich sein, wenn Sie z.B. einen Datenimport von einem anderen System vorbereiten wollen, und dafür das vorhandene, unterschiedliche Merkmalsschema in Checkmk anpassen müssen.

Um eine Merkmal-ID umzubenennen, editieren Sie die Merkmalsgruppe und ändern dort einfach die ID des Merkmals.

Wichtig: Verändern Sie dabei nicht den Titel des Merkmals.

Bevor Checkmk mit der Anpassung der Konfiguration zu Werke geht, werden Sie über die Konsequenzen aufgeklärt:

Warnung beim Umbenennen von von Merkmal-IDs.
Die Warnung zeigt Ihnen, wie Checkmk die Umbenennung der Merkmal-IDs durchführen wird

Checkmk wird nun alle betroffenen Ordner, Hosts und Regeln entsprechend anpassen.

Beachten Sie, dass es trotzdem noch Situationen geben kann, in denen Sie an anderen Stellen manuell nacharbeiten müssen. So sind z.B. Merkmal-IDs Bestandteile von URLs, welche Tabellenansichten aufrufen, die nach Merkmalen filtern. Checkmk kann diese URLs nicht für Sie anpassen. Auch Filterkonfigurationen in Berichten und Dashboards können nicht automatisch angepasst werden.

6. Host-Merkmale im Monitoring anzeigen

Hosts werden in Checkmk in der Regel in Ordnern organisiert. Die sich daraus ergebende Hierarchie können Sie als Baumansicht in der Seitenleiste am unteren Ende des Snapins Tree of Folders darstellen und von dort die Standardansicht für die pro Verzweigung gefilterten Hosts aufrufen.

Eine solche Baumansicht können Sie aber auch aus Host-Merkmalen erstellen und so eine „virtuelle“ Hierarchie abbilden — und zwar mit dem Snapin Virtual host tree. Neben den Host-Merkmalen dürfen Sie auch die Ordnerstruktur in derlei Bäume einbauen, wobei sowohl die Anzahl der virtuellen Bäume als auch der jeweiligen Verzweigungen unbeschränkt ist.

Angenommen, Sie verwenden für Ihre Hosts die drei Merkmalsgruppen Criticality, Data center und Operating systems. Dann bekommen Sie auf der obersten Baumebene eine Auswahl nach System, darunter nach Rechenzentrum und letztlich nach Betriebssystem. Jede Hierarchieebene bringt Sie direkt zur Ansicht aller Hosts mit eben diesen Merkmalen.

Zum Anlegen eines Virtual host tree fügen Sie zunächst das Snapin über den Knopf Symbol zum Anzeigen aller Snapins. unten in der Seitenleiste zu dieser hinzu:

Snapin Virtual host tree.
Beim ersten Aufruf des Snapins fehlt noch die Konfiguration

Klicken Sie auf den Link im Text, der auf die noch fehlende Konfiguration hinweist, oder rufen Sie manuell die Seite in den globalen Einstellungen über Setup > General > Global Settings > User interface > Virtual host trees auf:

Der Standard in den globalen Einstellungen zum Virtual host tree.
Per Knopfdruck können Sie die Einstellungen zum Virtual host tree öffnen

Erstellen Sie dann einen neuen Baum mit Create new virtual host tree configuration:

Festlegung der Baumstruktur in den globalen Einstellungen.
Host-Merkmalsgruppen definieren die Ebenen des Baums

Vergeben Sie zuerst ID und Titel des Baums. Optional können Sie die Anzeige leerer Baumzweige durch Ankreuzen von Exclude empty tag choices ausschließen. Anschließend fügen Sie über Add new element die gewünschten Merkmalsgruppen in der gewünschten Reihenfolge hinzu. Über den Eintrag Folder tree können Sie auch die Ordnerhierarchie miteinbeziehen. Die Reihenfolge für die Hierarchie können Sie wie üblich mit dem Knopf Symbol zum Verschieben eines Listeneintrags. ändern.

Nach dem Speichern zeigt das Snapin die ausgewählte Hierarchie als Baumstruktur:

Snapin Virtual host tree mit 3 Merkmalsgruppen.
Das konfigurierte Snapin zeigt nun 3 Ebenen von Merkmalsgruppen

Die Zweige und Blätter des Baums sind die Host-Merkmale aus den in der Konfiguration gewählten Merkmalsgruppen. Die Nummern in Klammern bei den Blättern zeigen, wie viele Hosts diese Merkmale besitzen.

7. Dateien und Verzeichnisse

Pfad Bedeutung

~/etc/check_mk/(conf.d|multisite.d)/wato/tags.mk

In diesen Dateien befinden sich die Definitionen aller Host-Merkmale.

Auf dieser Seite