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 Datacenter mit den möglichen Merkmalen Datacenter 1 und Datacenter 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 datacenter.
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 Datacenter ist das Merkmal Not in a datacenter 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:
Checkmk richtet bei der Installation mehrere Host-Merkmalsgruppen ein:
ID | Titel | Merkmale | Zweck |
---|---|---|---|
|
Criticality |
Productive system (ID: |
Wichtigkeit des Systems. Für das Merkmal |
|
Networking Segment |
Local network (low latency) (ID: |
Verstehen Sie diese Merkmalsgruppe nur als Beispiel. Für das Merkmal |
|
Checkmk agent / API integrations |
API integrations if configured, else Checkmk agent (ID: |
Legt fest, auf welche Art die Daten vom Host geholt werden. |
|
Piggyback |
Use piggyback data from other hosts if present (ID: |
Dieses Merkmal legt fest, ob und wie Piggyback-Daten für den Host erwartet/verarbeitet werden. |
|
SNMP |
No SNMP (ID: |
Hier wird bestimmt, ob Daten (auch) per SNMP eingesammelt werden sollen. |
|
IP address family |
IPv4 only (ID: |
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 builtin 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 Add tag group und bringt Sie zu folgenden Formularen:
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:
Dabei muss die Tag ID eindeutig innerhalb der Gruppe sein.
Die Reihenfolge, welche Sie wie gewohnt mit dem Knopf ä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:
In den Eigenschaften des Hosts wird dieses Merkmal dann so angezeigt:
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 Add aux tag erstellen.
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:
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 Merkmalschema 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:
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, Datacenter 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 unten in der Seitenleiste zu dieser hinzu:
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:
Erstellen Sie dann einen neuen Baum mit Create new virtual host tree configuration:
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 ändern.
Nach dem Speichern zeigt das Snapin die ausgewählte Hierarchie als Baumstruktur:
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.