Checkmk
to checkmk.com

1. Einleitung

Die wichtigste Aufgabe der Benutzeroberfläche von Checkmk ist das Anzeigen des aktuellen Zustands von Hosts und Services. Dies geschieht größtenteils in tabellarischen Ansichten, welche in der englischen Oberfläche mit Views bezeichnet werden. Damit das tägliche Arbeiten mit Checkmk so effizient wie möglich abläuft, bieten diese Tabellenansichten zahlreiche nützliche Funktionen und Sie können sie an Ihre Anforderungen anpassen.

Wir unterscheiden zwischen globalen Tabellenansichten und solchen, die einen Kontext benötigen. Globale Tabellenansichten können immer direkt aufgerufen werden. Ein Beispiel ist die Liste aller aktuellen Service-Probleme. Einen Kontext benötigt z.B. die Tabellenansicht Status of Host …​ — nämlich die Angabe desjenigen Hosts, dessen Zustand angezeigt werden soll. Solche Tabellenansichten können nur in Situationen aufgerufen werden, in denen es um einen bestimmten Host geht.

1.1. Globale Tabellenansichten

Die globalen Tabellenansichten erreichen Sie am einfachsten über das Monitor-Menü.

Monitor-Menü von Checkmk Raw im Show-less-Modus.
Das Monitor-Menü von Checkmk Raw im Show-less-Modus

Alternativ können Sie auch die Snapins Overview und Views nutzen. Im Overview ist jede der Zahlen anklickbar und bringt Sie zu einer globalen Tabellenansicht, die die jeweils gezählten Hosts oder Services einzeln auflistet.

Das Snapin 'Overview' der Seitenleiste.

Im Snapin Views sind alle globalen Tabellenansichten erreichbar — gruppiert nach Thema (topic). Zudem finden Sie einige Einträge, die eigentlich keine Views sind — wie z.B. die Dashboards, welche unter dem Thema Overview einsortiert sind. Dashboards können aber Views enthalten.

Das Snapin 'Views' der Seitenleiste.

Von einer globalen Tabellenansicht aus gelangen Sie zu den Einzelheiten eines bestimmten Hosts oder Services in einem weiteren Schritt. Die Namen von Hosts und Services und auch andere Spalten in den einzelnen Zellen sind anklickbar … :

Die Ansicht 'All hosts'.

… und bringen Sie zu (kontext-abhängigen) Detailansichten.

1.2. Kontext-abhängige Tabellenansichten

In Tabellenansichten, die einen bestimmten Host oder Service betreffen, finden Sie in den Menüs Host beziehungsweise Service wiederum allerlei Einträge, die Sie dann zu weiteren Tabellenansichten mit demselben Kontext bringen — also von demselben Host oder Service.

Ansicht mit geöffnetem Menü 'Service'.

Sie können Host- und Service-spezifische Tabellenansichten auch über die Suche im Monitor-Menü erreichen:

Die Suche im Monitor-Menü.

Ein weiterer Weg zu Detailansichten ist die Schnellsuche mit dem Snapin Quicksearch in der Seitenleiste:

Das Snapin 'Quicksearch' der Seitenleiste.

Zu welcher Tabellenansicht Sie jeweils gelangen, hängt vom Ergebnis der Suche ab. Wenn die Suche einen Host eindeutig ermittelt, dann gelangen Sie direkt zur Seite Services of Host …​ dieses Hosts. Dort finden Sie dann wieder die Menüeinträge zu den anderen Tabellenansichten des gleichen Hosts. Ein Klick auf den Namen des Hosts bringt Sie beispielsweise zur Ansicht Status of Host.

Die Ansicht der Services eines Hosts.

1.3. Auswirkung in der Menüleiste

In globalen Host-Ansichten gibt es zudem das Menü Hosts sowie in globalen Service-Ansichten Services — beachten Sie hier den Plural! Darüber können Sie zum Beispiel die Verfügbarkeit aller Hosts oder Services der aktuellen Ansicht aufrufen.

Menüleiste der Ansicht 'All hosts'.

Tabellenansichten eines einzelnen Hosts hingegen, haben die Menüs Host und Services mit allen Aktionen für den aktuellen Host beziehungsweise für all die Services der aktuellen Ansicht.

Menüleiste der Ansicht 'Services of Host'.

Tabellenansichten eines einzelnen Services wiederum haben ebenfalls das Menü Host, dazu aber nun im Singular Service, mit Aktionen für diesen einen Service.

Menüleiste der Ansicht eines Services.

2. Tabellenansichten verwenden

2.1. Optionen, Filter und Kommandos

Jede Tabellenansicht bietet diverse Optionen, über die Sie diese beeinflussen und Aktionen auslösen können.

Menü Funktion

Commands

Hier können Sie Kommandos auf den gezeigten Objekten ausführen (z.B. Eintragen von Wartungszeiten). Die Kommandos sind detailliert in einem eigenen Artikel beschrieben.

Display > Filter

Öffnet die Filterleiste am rechten Rand der Hauptseite. Damit können Sie die gezeigten Daten weiter einschränken. Sobald Sie einen Filter gesetzt haben, ändert sich das Symbol auf button filters set lo, damit klar ist, dass unter Umständen nicht alle Daten angezeigt werden. Umgekehrt haben manche Tabellenansichten schon Filter vorbelegt (z.B. die Liste aller Probleme). Hier können Sie durch Entfernen der Filter wiederum mehr Daten anzeigen lassen. Änderungen der Filter werden nicht gespeichert, sondern wieder zurückgesetzt, sobald Sie die Ansicht verlassen.

Display > Show checkboxes

Damit schalten Sie Checkboxen ein oder aus. Mit den Checkboxen können Sie die Kommandos auf ausgewählte Datensätze einschränken.

Display > Modify display options > Entries per row

Legt die Anzahl der Spalten für die Ansicht fest. Mehrspaltige Tabellenansichten helfen, auf breiten Monitoren den verfügbaren Platz auszunutzen. Bei Tabellenansichten, die nur einen Datensatz anzeigen, ist diese Einstellung wirkungslos.

Display > Modify display options > Refresh interval

Legt fest, in welchem Intervall die Ansicht neu geladen wird. Sie können damit das automatische Neuladen auch ganz abschalten. Beachten Sie, dass es in diesem Fall sein kann, dass Sie über ein inzwischen aufgetretenes Problem nicht informiert werden!

Display > Modify display options > Date format

Änderung des Formats für die Datumsanzeige.

Display > Modify display options > Time stamp format

Zeitstempel können absolut, relativ, gemixt, gemeinsam oder als „Unix Timestamp“ angezeigt werden.

2.2. Zeit- und Datumsangaben

Checkmk zeigt in seinen Ansichten alle Zeitangaben, die weniger als 24 Stunden in der Vergangenheit oder Zukunft liegen, als relative Angaben — also z.B. 16 hours. Sie können das im Menü über Display > Modify display options umschalten und wahlweise nur absolute, nur relative oder beide Werte anzeigen lassen, oder auch den „Unix Timestamp“. Auch das Datumsformat können Sie in diesem Dialog festlegen.

Änderung der Darstellungsoptionen.

2.3. Sortierung

Die Tabellenansichten können Sie durch ein Klicken auf die Spaltenüberschriften sortieren. Dabei gibt es drei Zustände einer Spalte, die durch mehrfaches Klicken im Kreis herum der Reihe nach ausgewählt werden:

  • Aufsteigend sortieren

  • Absteigend sortieren

  • Nicht mehr nach dieser Spalte sortieren

Zunächst wird eine Tabellenansicht immer auf eine „natürliche“ Art sortiert, die in der Tabellenansicht selbst festgelegt ist. Bei den Service-Ansichten ist die Sortierung immer alphabetisch nach dem Namen des Services — mit der Ausnahme, dass die Check_MK-Services immer oben stehen. Neben dem Service Check_MK, der für die Abfrage des Monitoring-Agenten zuständig ist, sind das noch Check_MK Discovery, Check_MK HW/SW Inventory und gegebenenfalls Check_MK Agent. Um eine solche Liste nach dem aktuellen Zustand der Services zu sortieren genügt ein Klick auf State.

Sortierung einer Liste nach Spaltenüberschriften.

Die Sortierung nach der Spalte Perf-O-Meter führt manchmal zu überraschenden Ergebnissen. Das liegt daran, dass die grafische Darstellung der Messwerte teilweise eine prozentuale Zusammenfassung der eigentlichen Werte zeigt. Die Sortierung geschieht aber nach den absoluten Werten — und zwar immer nach der ersten Metrik, die ein Service ausgibt.

2.4. Export

Sie können die in einer Tabellenansicht gezeigten Daten in verschiedenen Formaten über das Menü Export exportieren:

Menüeintrag Funktion

Data > Export CSV

Als Trennzeichen wird ein Semikolon verwendet. Die einzelnen Zellen sind in Anführungszeichen eingeschlossen. In der ersten Zeile sind die internen Kürzel für die einzelnen Spalten eingetragen.

Data > Export JSON

Beim JSON-Export landen die Zellen ebenfalls in Anführungszeichen, getrennt durch Umbrüche und Kommata, umschlossen von eckigen Klammern.

Reports > This view as PDF

Nur in den kommerziellen Editionen: Hierbei wird ein sogenannter Sofortbericht (instant report) erzeugt, der die aktuelle Tabellenansicht in ein PDF-Dokument überführt, abzüglich Icons, Navigation und so weiter. Das Aussehen können Sie über spezielle Berichtsvorlagen im Reporting anpassen.

Reports

Je nach aktueller Tabellenansicht werden hier weitere PDF-Exporte angeboten, etwa zur Verfügbarkeit, sowie gegebenenfalls individuell erstellte Vorlagen.

REST API > Query hosts/services resource

Ausgabe der REST-API zur Host-/Service-Auswahl der aktuellen (gefilterten) Tabellenansicht.

2.5. Das Anzeigelimit

Bei einer größeren Monitoring-Umgebung sind nicht mehr alle Tabellenansichten sinnvoll. Wenn Sie 50.000 Services überwachen und die Ansicht All Services anwählen, würde die Darstellung nicht nur sehr lange brauchen — sie wäre auch wenig nützlich.

Um den Benutzer in solchen Situationen vor langen Wartezeiten zu schützen und das System nicht durch absurde Datenmengen in die Knie zu zwingen, sind Tabellenansichten auf die Anzeige von 1000 Einträgen begrenzt. Bei einer Überschreitung erhalten Sie folgenden Hinweis:

Hinweis vor der Anzeige einer Ansicht mit mehr als 1000 Einträgen.

Wie Sie sehen, werden Sie darauf hingewiesen, dass die gezeigten Datensätze nicht unbedingt die ersten 1000 gemäß der gewählten Sortierung sind! Das hat einen technischen Hintergrund: Die Limitierung wird nämlich bereits an der Quelle der Daten durchgesetzt: in den Monitoring-Kernen der angebundenen Instanzen. Das ist sehr wichtig: Denn wenn wir erst eine Million Datensätze aus Ihrer weltweit verteilten Umgebung zusammensammeln würden, um gleich danach 99,9 % der Daten wieder wegzuwerfen, dann wäre das Kind ja schon in den Brunnen gefallen. Die Sortierung übernimmt erst am Ende die Oberfläche — es geschieht also nach der Limitierung. Denn die Daten von allen Instanzen müssen ja gemeinsam sortiert werden.

Sofern Sie wirklich der Meinung sind, mehr als 1000 Datensätze sehen zu wollen, können Sie durch einen Klick auf Repeat query and allow more results ins nächste Level kommen. Hier greift eine Begrenzung auf 5000 Datensätze. Ist diese wieder überschritten, so können Sie ganz ohne Limit fortfahren. Da dies eine gefährliche Operation sein kann, benötigt sie Administratorrechte. Sie wurden gewarnt!

Hinweis vor der Anzeige einer Ansicht mit mehr als 5000 Einträgen.

Sie können die beiden Stufen unter Global settings > User interface anpassen:

Globale Einstellung zur Änderung der beiden Limits.

3. Ansichten anpassen

3.1. Grundsätzliches

Checkmk erlaubt Ihnen, die mitgelieferten Tabellenansichten anzupassen und sogar ganz Neue zu erzeugen, welche Sie dann auch in Berichte und Dashboards einbauen können. Dabei können Sie bei jeder Tabellenansicht eine Menge verschiedener Aspekte bestimmen:

  • Allgemeine Dinge wie Titel, Thema, usw.

  • Welche Datenquelle wird dargestellt (z.B., Hosts, Services, Events der Event Console etc.)?

  • Welche Auswahl an Datensätzen wird dargestellt (Filterung)?

  • Welche Spalten werden dargestellt?

  • Zu welchen anderen Tabellenansichten verlinken die Texte in den Spalten?

  • Wie wird standardmäßig sortiert?

  • Gibt es eine Gruppierung, und falls ja, wie sieht diese aus?

  • Wo und für welche Benutzer soll die Tabellenansicht sichtbar sein?

  • Welche Art von Tabellenlayout soll verwendet werden?

Den Editiermodus für Tabellenansichten erreichen Sie auf zwei Arten:

  1. Bei einer bestehenden Tabellenansicht über einen Menüeintrag. Hier gibt es vier Varianten, abhängig vom Ursprung der jeweiligen Tabellenansicht:

    • Display > Clone builtin view — erstellt einen Klon der mitgelieferten Tabellenansicht.

    • Display > Edit my view — öffnet den Bearbeitungsmodus für Ihre selbst erstellte Tabellenansicht.

    • Display > Clone view — legt einen Klon der Tabellenansicht eines anderen Benutzers an — wenn Sie keine Berechtigung zur Bearbeitung fremder Tabellenansichten haben.

    • Display > Edit view of user X und Display > Clone view — womit Sie wählen können, ob Sie die Tabellenansicht des anderen Benutzers bearbeiten oder stattdessen einen Klon seiner Tabellenansicht erstellen wollen — wenn Sie die Berechtigung zur Bearbeitung fremder Tabellenansichten haben.

  2. Im Menü Customize > Visualization > Views. Dort können Sie mit button add view ganz neue Tabellenansichten erzeugen oder wiederum mit icon clone bestehende klonen und anpassen:

Ansicht zur Erstellung einer neuen Ansicht.

3.2. Erst klonen, dann verändern

Da die mitgelieferten Tabellenansichten Teil der Software sind und somit nicht verändert werden können, kennt Checkmk das Konzept des Klonens. Beim ersten Anpassen einer Tabellenansicht wird automatisch eine Kopie der Tabellenansicht für Sie erzeugt. Diese Kopie ist dabei Ihrem Benutzerprofil zugeordnet.

Die Kopie können Sie dann so anpassen, wie Sie es möchten. Die ursprüngliche Tabellenansicht bleibt erhalten, wird aber verschattet — also durch Ihre Kopie verdeckt. Sie können später einfach zur Standardansicht zurückkehren, indem Sie Ihren Klon löschen (das geht dann in der Tabelle der Ansichten wie erwartet mit icon delete).

Dieses Konzept hat noch einen weiteren Vorteil: Sie können nämlich bestimmen, ob die Tabellenansicht für alle Benutzer geändert sein soll, oder nur für Sie selbst. Dies legen Sie in den General Properties der Tabellenansicht unter Visibility mit der Checkbox Make this view available for other users fest. Es überrascht wohl nicht, dass Sie diese Checkbox nur dann setzen können, wenn Sie Administratorrechte haben (genau genommen gibt es dafür eine eigene Berechtigung mit dem Namen Publish views). Zusätzlich können einzelne Tabellenansichten in den Rollendefinitionen gesperrt werden.

Was ist nun, wenn eine Tabellenansicht von mehreren Benutzern angepasst und freigegeben wurde? Jeder der Benutzer hat dann nämlich eine eigene Variante der Tabellenansicht. Welche davon wird für wen sichtbar? Dies wird durch folgende Regeln bestimmt:

  1. Wenn ein Benutzer für sich selbst eine Tabellenansicht erzeugt hat, hat diese für ihn immer Vorrang.

  2. Danach gelten Tabellenansichten, die ein Administrator angepasst und freigegeben hat (genau gesagt jemand mit dem Recht Modify builtin views).

  3. Gibt es hier keine, so gelten Tabellenansichten, die ein anderer normaler Benutzer mit dem Recht Publish views freigegeben hat.

  4. Und wenn es hier auch keine gibt, dann wird die ausgelieferte Variante sichtbar.

Wie können Sie nun aber eine echte Kopie einer Tabellenansicht erstellen, also am Ende beide Tabellenansichten sehen — die mitgelieferte und Ihre Version? Dies wird über die Unique ID in den General Properties gesteuert. Ändern Sie einfach die ID Ihrer Tabellenansicht auf einen anderen Wert. Damit gilt diese nicht mehr als Klon der mitgelieferten Tabellenansicht sondern beginnt ein eigenes Leben.

Die ID ist übrigens auch die entscheidende Angabe in der URL, über die Tabellenansichten aufgerufen werden. Das Schema ist ganz einfach. So wird z.B. die globale Tabellenansicht mit der ID allhosts wie folgt aufgerufen:

/mysite/check_mk/view.py?view_name=allhosts

Das Konzept mit dem Klonen und Anpassen und der Sichtbarkeit finden Sie übrigens auch an vielen anderen Stellen von Checkmk, nämlich bei:

3.3. Integration einer Tabellenansicht in die Navigation

Wie und ob eine Tabellenansicht im Monitor-Menü der Navigationsleiste sowie dem Snapin Views angezeigt wird, legen folgende Eigenschaften unter General Properties fest:

Allgemeine Eigenschaften der Ansicht.
  • Title: Dies wird der Name des Eintrags.

  • Topic in 'Monitor menu': Unter diesem Thema wird die Tabellenansicht einsortiert. Sie können auch eigene Themen definieren.

  • Sort index: Entscheidet, wie weit oben die Tabellenansicht im Menü erscheint.

  • Visibility: Damit können Sie den Eintrag unterdrücken und/oder für andere Benutzer freigeben.

3.4. Grundlegendes Layout

Der nächste Kasten View Properties bestimmt das generelle Aussehen der Tabellenansicht:

Spezifische Eigenschaften der Ansicht.

Die Einstellung Number of Columns bestimmt die Anzahl der Spalten, Automatic page reload das Aktualisierungsintervall — beide Werte können in der Tabellenansicht selbst Display > Modify display options noch verändert werden.

Unter Basic Layout gibt es verschiedene Arten, wie die Daten in Tabellen dargestellt werden. Die meisten Tabellenansichten verwenden Table — eine normale Tabelle, die nach Spalten sortierbar ist — oder Single dataset — welches die Legende links hat und meist für einzelne Datensätze verwendet wird. Sie können Single dataset aber auch für Tabellenansichten mit mehr als einem Objekt verwenden. Die Tabellenansicht All hosts sieht nach einer Umstellung auf Single dataset etwa so aus:

Ergebnis der geänderten Ansicht.

3.5. Spalten

Der Kasten Columns legt fest, welche Spalten Sie sehen. Die mögliche Auswahl von Spalten hängt von der gewählten Datenquelle ab. Die meisten Spalten finden Sie bei den Services, denn hier sind natürlich auch alle Informationen über den jeweiligen Host verfügbar. Die Liste kann schon recht lang werden und wenn Sie nicht sicher sind, welche Spalte die richtige ist, hilft nur eines: Ausprobieren.

Eigenschaften für die Spalten der Ansicht.

Je nach gewählter Spalte kann es dafür spezifische Optionen geben. Mit der Spalte Hosts: Hostname ist es zum Beispiel möglich, den Host-Namen über die Option Coloring entsprechend seines Zustands farblich zu hinterlegen.

Das Feld Link bietet eine Auswahl von allen Tabellenansichten und Dashboards. Ist hier eine Tabellenansicht ausgewählt, dann ist die jeweilige Zelle dieser Spalte anklickbar und bringt den Benutzer zur gewählten Tabellenansicht. Wirklich sinnvoll ist das natürlich nur, wenn die Zielansicht einen Kontext hat. Bestes Beispiel ist die Tabellenansicht All hosts. Die Spalte Hostname ist hier anklickbar und bringt den Benutzer dann zu Services of Host — von diesem Host. Alternativ können hier auch Dashboards angegeben werden, die freilich keinen Kontext benötigen.

Unter Tooltip werden Sie wiederum die Liste aller Spalten finden. So können Sie eine weitere Information zu dem Host oder Service einblenden, sobald der Benutzer mit der Maus über die jeweilige Zelle fährt (wie im folgenden Beispiel die IP-Adresse):

Ergebnis der geänderten Ansicht mit einem Tooltipp.

3.6. Information über Services in einer Host-Ansicht

Stellen Sie sich vor, Sie möchten gerne Informationen zu bestimmten Services in einer Tabelle von Hosts anzeigen. Das folgende ist ein sehr schönes Beispiel für so etwas: Zu jedem Host werden die aktuelle Uptime, die CPU-Last, die Speichernutzung und die Ausführungszeit des Checkmk-Agenten ausgegeben:

Host-Ansicht mit Perf-O-Metern für die Services.

Hier wurde eine Tabelle von Hosts erstellt, in der für jeden Host die Service-Spalte Perf-O-Meter von je vier verschiedenen Services angezeigt wird. Man sieht auch, dass bei einem der drei Hosts die Services CPU, Memory und Uptime nicht existieren und die Spalten dort konsequenterweise leer sind.

Um eine Konfiguration zu dieser Tabellenansicht umzusetzen, fügen Sie in der Ansicht Spalten vom Typ Joined column hinzu. Hier erscheinen dann unter Column die Spalten für Services, von denen Sie für das Beispiel Perf-O-Meter auswählen. Mit dem Eintrag Title weiter unten bestimmen Sie dann bei Bedarf die Überschrift der Spalte, wenn die automatische nicht passen sollte.

Unter of Service wählen Sie zunächst entweder Explicit match oder Regular expression match aus. Bei Ersterem tragen Sie anschließend den exakten Namen inklusive der Groß- und Kleinschreibung ein. Dadurch wird der korrekte Service zu dem Host bestimmt.

Eigenschaften einer 'Joined column' mit expliziter Angabe des Servicse.

Wenn Sie nicht genau wissen, wie der Service heißt oder er auf jedem Host ein wenig anders ist, geben Sie einen regulären Ausdruck an, der pro Host auf exakt einen Service matcht. Das ist vor allem dann nützlich, wenn Sie eine Gruppe von Hosts betrachten wollen, bei denen es eine vergleichbare Gruppe an Services gibt, von denen jeweils immer nur einer auf einem Host vorkommen kann. In dem nachfolgenden Beispiel ist das die CPU load oder die Processor queue, welche entweder nur auf Linux- oder Windows-Systemen vorkommen kann.

Eigenschaften einer 'Joined column' mit regulärem Ausdruck für den Service.

Es gibt übrigens nichts zu befürchten, sollte ein regulärer Ausdruck doch einmal auf mehrere Services zutreffen. In einem solchen Fall wird immer der erste Treffer in der Spalte angezeigt.

In beiden Varianten ist so eine Darstellung natürlich nur dann nützlich, wenn die Tabellenansicht eine Liste von ähnlichen Hosts anzeigt, welche auch alle über die gewählten Services verfügen oder sich ähnelnde Services haben. Das ist auch der Grund, warum Checkmk nur wenige solcher Ansichten mit ausliefert: Welche Spalten hier sinnvoll sind, hängt absolut von der Art der gewählten Hosts ab. Bei Linux-Servern interessieren sicherlich völlig andere Informationen als z.B. bei USVs.

3.7. Sortierung

Die Sortierung einer Tabellenansicht konfigurieren Sie im vierten Kasten. Es handelt sich dabei nur um die voreingestellte Sortierung: Der Benutzer kann, wie oben beschrieben, über einen Klick auf die Spaltentitel die Sortierung für sich anpassen. In der Konfiguration der Tabellenansicht haben Sie aber mehr Möglichkeiten: Sie können eine mehrstufige Sortierung einstellen, z.B. zuerst nach dem Service-Zustand, und bei gleichem Zustand nach dem Namen des Services. Die so eingestellte Reihenfolge bleibt auch als nachrangige Sortierung erhalten, wenn der Benutzer nach einer bestimmten Spalte umsortiert.

Eigenschaften zur Sortierung der Ansicht.

3.8. Gruppierung

Durch Gruppierung zerteilen Sie eine Tabelle in mehrere Abschnitte — wobei jeder Abschnitt Daten anzeigt, die irgendwie zusammengehören. Ein gutes Beispiel ist die Tabellenansicht Service problems, welche Sie bequem über das Snapin Overview erreichen.

Hier sehen Sie diese Tabelle gruppiert nach dem Service-Zustand (State): zuerst alle CRIT, dann UNKNOWN, dann WARN - jeweils mit einem eigenen Gruppentitel:

Gruppierte Ansicht.

Die Gruppierung in einer Tabellenansicht konfigurieren Sie analog zu den Spalten. Legen Sie einfach fest, nach welchen Spalten gruppiert werden soll. Meist ist das nur eine einzige, aber es können auch mehrere sein. Alle Datensätze mit dem gleichen Wert für alle gewählten Spalten werden dann in einer Gruppe angezeigt. Und die Spalteninformation wird jeweils als Gruppentitel anzeigt.

Es ist wichtig, dass Sie die Datensätze auch vorrangig nach der gewählten Gruppeneigenschaft sortieren! Andernfalls kann es sein, dass die gleiche Gruppe mehrfach auftaucht (in Einzelfällen kann dies sogar gewünscht sein).

Übrigens: Ein Umsortieren nach einer Spalte durch den Benutzer hat keinen Einfluss auf die Gruppierung: In diesem Fall wird nur die Reihenfolge der Gruppen bestimmt und die Datensätze werden innerhalb der Gruppen sortiert. Die Gruppen selbst bleiben erhalten.

3.9. Filter, Kontext und Suche

Ein wichtiger Aspekt von Tabellenansichten ist die Selektion der Daten. Welche Hosts oder Services sollen in der Tabelle angezeigt werden? Checkmk verwendet hierfür das Konzept der Filter. Hier sind ein paar Beispiele für Host-Filter:

Beispiele für Host-Filter.

Jeder Filter kann vom Benutzer mit Suchbegriffen oder anderen Kriterien gefüllt werden und reduziert dann die Liste der Ergebnisse auf diejenigen Datensätze, die die Kriterien erfüllen. Die Filter werden dabei UND-verknüpft. Die Filterkriterien, die bei einer Tabellenansicht dann tatsächlich zum Einsatz kommen, werden aus drei Quellen zusammengestellt:

  1. Filter, die direkt in der Tabellenansicht hinterlegt und mit Kriterien gefüllt sind.

  2. Filter, die der Benutzer interaktiv in der Tabellenansicht mit icon filter gesetzt hat.

  3. Filter, die per Variablen über die URL gesetzt werden.

Die Filter, die Sie beim Editieren einer Tabellenansicht im Kasten Context / Search Filters zusammenstellen, haben dabei zwei Funktionen. Zum einen legen Sie so fest, welche Filter dem Benutzer beim Klick auf icon filter angeboten werden. Zum anderen können Sie Filter bereits mit Kriterien vorbelegen und so die in der Tabellenansicht gezeigten Daten einschränken (Punkt 1 von oben).

Falls Sie eine Tabellenansicht mit Kontext anlegen oder editieren, so tritt anstelle der Filter des entsprechenden Objekts nur ein optionales Eingabefeld. In diesem gilt dann immer ein exakter Vergleich (Groß-/Kleinschreibung beachten). Nehmen wir als Beispiel die Tabellenansicht host, welche alle Services eines bestimmten Hosts anzeigt. Der Host-Name wird der Tabellenansicht über einen Kontext mit auf den Weg gegeben. Sie können sich aber eine Tabellenansicht bauen, welche den gezeigten Host quasi hart kodiert direkt in der Tabellenansicht festlegt:

Eigenschaften zum Filtern der Ansicht.

Damit können Sie diese Tabellenansicht wieder ohne Kontext aufrufen und auf Wunsch auch problemlos in das Snapin Views einbinden.

3.10. Spezielle Suchansichten

Die mitgelieferten Tabellenansichten Host search und Service search (und auch andere) verhalten sich im Bezug auf die Filter auf eine spezielle Art: Wenn Sie so eine Tabellenansicht anwählen, so startet diese mit einem geöffnetem Filter-Formular und zeigt erst dann Hosts oder Services an, wenn dieses abgeschickt wurde.

Warum? Es wäre einfach sehr unpraktisch, wenn Sie erst auf All services gehen müssten — dann warten bis viele tausend Services dargestellt würden — und erst dann durch eine Sucheingabe das Ergebnis filtern könnten. Dieses Verhalten legt die Option Show data only on search fest:

Die Option 'Show data only on search'.

4. Neue Tabellenansichten erstellen

Das Erzeugen einer neuen Tabellenansicht mit button add view geht im Prinzip genauso wie das Editieren einer bestehenden Tabellenansicht — mit einem kleinen Unterschied: Sie müssen vorher noch eine Datenquelle und einen spezifischen Objekttyp auswählen.

4.1. Datenquelle

Auswahl einer Datenquelle.

Die Datenquelle ist das, was man in Datenbanken vielleicht als Tabelle oder Datenbank-View bezeichnen würde. Checkmk verwendet zwar keine SQL-Datenbank, ist intern aber ähnlich aufgebaut. In den meisten Fällen liegen Sie mit All services oder All hosts richtig. Es gibt aber einige spezielle Datenquellen, die hier kurz aufgelistet werden sollen:

Datenquelle Bedeutung

Host- und Service-Gruppen, diverse

siehe unten

Alert Statistics

Statusstatistiken

BI, diverse

Business Intelligence

Event Console, Host- und Service-Events

Event Console

Inventory, diverse

HW/SW-Inventur

The Logfile

Livestatus-Daten

Host- und Service-Gruppen

Die Datenquellen Host groups und Service groups liefern je Zeile die Informationen über die Gruppe selbst — Filter für einzelne Hosts oder Services gibt es entsprechend nicht. Ein Beispiel für diese Datenquelle ist die Standardansicht Host groups. In verteilten Umgebungen erledigen die Datenquellen Host groups, merged und Service groups, merged genau das Gleiche.

Ansicht für Host-Gruppen.

Wenn Sie hingegen Informationen zu einzelnen Hosts wünschen, lediglich gruppiert nach Host-Gruppen, können Sie etwa die Standardansicht All hosts in den Einstellungen im Kasten Grouping um die Option Hosts: Host groups the host is member of ergänzen. Da Hosts mehreren Gruppen zugeordnet sein können, finden Sie in der Tabellenansicht dann einen einzelnen Bereich für jede Host-Gruppenkombination, die für mindestens einen Host gilt.

Ansicht mit Gruppierung nach Host-Gruppen.

Auf dieselbe Weise können Sie auch mit Services und Service-Gruppen verfahren.

Je nach ausgewählter Datenquelle stehen Ihnen unterschiedliche Spalten zum Aufbau der Tabellenansicht zur Verfügung.

4.2. Objekttyp: Global oder mit Kontext

Auswahl eines spezifischen Objekttyps.

Hier entscheidet sich, ob Ihre neue Tabellenansicht einen Kontext haben oder ob es eine globale Tabellenansicht werden soll. Welche Auswahlmöglichkeiten Sie haben, hängt von der gewählten Datenquelle ab. Der mit Abstand häufigste Kontext ist Host. Die Abbildung von oben erscheint nach der Auswahl der Datenquelle All services.

Durch das Aktivieren von Show information of a single Host legen Sie fest, dass die neue Tabellenansicht genau einen Host beschreibt. So haben Sie die Grundlage dafür geschaffen, dass die Tabellenansicht nicht global, sondern verlinkt sichtbar wird:

  • Bei einer Host-Ansicht mit einem Kontext

  • Als Verknüpfung in einer Spalte (siehe oben, z.B. Klick auf Host-Name in einer Tabellenansicht)

Bei dem Kontexttyp Service gibt es zwei Möglichkeiten: Wenn Sie nur Show information of a single Service anwählen, können Sie eine Tabellenansicht bauen, die alle Services mit dem gleichen Namen aber auf verschiedenen Hosts anzeigt. Wenn es um einen ganz bestimmten Service von einem einzigen Host gehen sollen, dann wählen Sie zusätzlich Show information of a single Host aus.

5. Inventur-Tabellen verknüpfen

Checkmk bietet viele unterschiedliche Daten zu einem Host oder einem Service. Die meisten davon können Sie mit den Datenquellen All services oder All hosts darstellen. Die HW/SW-Inventur bietet darüber hinaus weitere Tabellen (als Datenquellen), die Sie ebenso in eigenen Ansichten anzeigen und individuell strukturieren können. Ab Checkmk 2.2.0 können Sie solchen Ansichten auch Spalten aus anderen Tabellen hinzufügen, sofern diese eine gemeinsame Spalte haben.

Wichtig: Die Anzahl der Zeilen der finalen Ansicht entspricht der Anzahl der Zeilen der zugrundeliegenden Datenquelle Ihrer Ansicht. Verknüpfte Tabellen fügen lediglich ausgewählte Spalten hinzu.

In dem folgenden Beispiel werden Sie einmal eine sehr kompakte Ansicht erstellen, in der zwei HW/SW-Inventur-Tabellen miteinander verknüpft werden. Erstellen Sie zum Anfang eine neue Ansicht und wählen Sie als grundlegende Datenquelle die gewünschte Inventur-Tabelle aus. Für das Beispiel suchen Sie nach Inventory table: Checkmk ➤ Checkmk sites und bestätigen anschließend mit button continue Continue:

Auswahl der Datenquelle 'Checkmk sites'.

Die darauf folgende Seite können Sie überspringen, da es nicht nötig ist, die Datenquelle auf einen einzelnen Host oder eine einzelne Instanz einzuschränken. Der nächste Schritt erfolgt also direkt auf der Hauptseite der Konfiguration, wo Sie zunächst die Unique ID und einen Title eintragen.

Im Kasten Macros for joining service data or inventory tables kommt dann die erste spezifische Konfiguration, um später andere Datenquellen in die Ansicht einzubinden. Zu diesem Zweck werden Indikatoren benötigt, über die man dann später die richtigen Zeilen in den weiteren Datenquellen identifiziert. Legen Sie also hier wie in dem nachfolgenden Beispiel die Makros für die Spalten Version und Site an:

Dialog zum Anlegen von Makros.

Diese Makros können Sie nun in speziellen Columns verwenden. Neben den regulären Spalten, die bereits in der Anpassung von Ansichten verwendet wurden, stehen jetzt sowohl die ebenfalls vorher beschriebenen Spalten der Service-Datenquelle (Joined columns) als auch die der Joined inventory columns zur Verfügung.

Die ersten beiden Spalten nutzen Standarddaten aus der Datenquelle. Da Daten aus der HW/SW-Inventur immer zu einem bestimmten Host und einer bestimmten Instanz gehören, stehen Ihnen diese Tabellen ebenfalls zur Verfügung, wenn Sie eine solche Datenquelle ausgewählt haben.

Dialog zur Auswahl der Spalten.

Anschließend können Sie die definierten Makros nicht nur in den Joined inventory columns verwenden, sondern auch in den Joined columns, um die Daten von bestimmten Services anzuzeigen. Das ermöglicht die Kombination unterschiedlichster Quellen — in diesem Fall, das Perf-O-Meter des dazugehörigen Performance-Service einer Instanz anzuzeigen.

Die Makros können Sie übrigens genauso auch bei der Definition von regulären Ausdrücken verwenden.

Auswahl einer 'Joined column' unter Verwendung eines Makros.

Daten aus anderen HW/SW-Inventur-Tabellen anzuzeigen funktioniert ganz ähnlich. Lediglich die zu verwendende Tabelle ist vorher auszuwählen. In dem nachfolgenden Beispiel verwenden Sie die Tabelle Checkmk ➤ Checkmk versions, wodurch die Drop-down-Liste Display the column automatisch auf eine sinnvolle Auswahl eingeschränkt wird.

Wie Checkmk die richtige Zeile in der Tabelle findet, von der die Spalte angezeigt werden soll, bestimmen Sie danach. Fügen Sie dafür mit dem Knopf Add new match criteria ein Kriterium in Form einer Spalte hinzu, über das Checkmk später die passende Zeile bestimmen kann. In dem obigen Beispiel ist das die Version. Denn diese ist in der Tabelle einzigartig und kann nur einmal vorkommen. Das bedeutet umgekehrt auch, dass Sie zwar beliebige Tabellen der HW/SW-Inventur miteinander verknüpfen können, Sie dabei aber auch sicherstellen müssen, dass die beiden Tabellen immer eine gemeinsame Spalte haben und diese Spalte auch immer einzigartige Einträge enthält. In dem obigen Beispiel wäre die Spalte Sites also kein geeignetes Kriterium, da es mehrere Editionen mit derselben Anzahl an Instanzen geben könnte.

Auswahl einer 'Joined inventory column' unter Verwendung eines Makros.

Selbstverständlich können Sie bei Bedarf auch bei einer Joined inventory column den Titel der Spalte anpassen, wenn der automatische nicht passen sollte. Nachdem alle Einstellungen vorgenommen wurden, speichern Sie mit button save and go to view Save & go to view die neue Ansicht ab und werden direkt zu dem Ergebnis geleitet. Je nachdem, wie viele Instanzen bei Ihnen überwacht werden, wird auch entsprechend für jede eine Zeile in der Ansicht eingefügt:

Fertige Ansicht inklusive Spalten aus anderen Quellen.

Wie Sie hier sehen können, gibt es für jede Spalte immer einen Standardtitel, wenn dieser nicht von Ihnen vorgegeben wird. In der dritten Spalte zu dem Perf-O-Meter wurde der Titel nicht vergeben, so dass von Checkmk der verwendete reguläre Ausdruck als Titel herangezogen wurde. Sie können das jederzeit ändern und wie bei der Spalte zu der Edition anpassen.

6. Die Matrix

Wenn Sie in den View Properties als Basic Layout bei einer Ihrer Tabellenansichten Matrix einstellen, werden Sie wahrscheinlich erstmal seltsame Dinge erleben und sich fragen, was das Ganze soll. Die Matrix ist sicher nicht auf den ersten Blick einleuchtend, aber Sie können damit tolle Dinge machen.

In den ausgelieferten Tabellenansichten gibt es z.B. Search performance data, die dieses Layout verwendet. Sie finden diese Tabellenansicht über Customize > Visualization > Views.

Folgende Abbildung zeigt eine Suche nach dem Serviceausdruck CPU|^memory|Filesystem /opt/omd/sites/mysite:

Filter für die Service-Suche.

Das Ergebnis ist eine hübsche Tabelle der Hosts, in denen die Metriken all dieser Services gegenübergestellt sind. Nicht alle Hosts haben die gleichen Services, so dass bei einigen Hosts dann die entsprechenden Zellen einfach leer bleiben:

Ergebnis der Service-Suche in einer Matrixansicht.

Das Ganze sieht jetzt erstmal sehr ähnlich aus wie die weiter oben beschriebene Information über Services in einer Host-Ansicht. Es gibt aber ein paar wesentliche Unterschiede:

  1. Die Liste der Services ist dynamisch und nicht fest konfiguriert.

  2. Die Hosts sind hier die Spalten  —  nicht die Zeilen.

Sie können mit der Matrix noch viel mehr anstellen. Wenn Sie in die Definition der Tabellenansicht gucken, können Sie sehen, wie diese konstruiert ist:

  • Als Basic Layout ist Matrix eingetragen.

  • Bei Grouping ist als einzige Spalte der Host-Name (Hosts: Hostname) eingetragen.

  • Bei Columns sind die Service description und das Service Perf-O-Meter eingetragen.

Die Regel für das Matrix-Layout ist so:

  • Die unter Grouping festgelegten Spalten werden als Überschriften für die Spalten verwendet.

  • Die erste normale Spalte bildet die linke Spalte mit der Beschriftung der Zeilen.

  • Alle weiteren normalen Spalten werden in den Zellen angezeigt.

Wenn Sie z.B. mehr Informationen über den Host anzeigen möchten, fügen Sie einfach weitere Spalten im Kasten Grouping hinzu. So sieht z.B. die Tabelle von oben aus, wenn Sie die Spalten Host icons und Folder - just folder name hinzufügen:

Matrixansicht mit zusätzlichen Zeilen.

Weitere normale Spalten landen dann direkt in den Zellen. Folgendes Beispiel (gekürzt) zeigt die Matrix mit der zusätzlichen Spalte Output of check plugin:

Matrixansicht mit zusätzlichen Informationen in den Zellen.

6.1. Erkennen von Ausreißern

Warum sind eigentlich manche Zellen farbig hinterlegt? Nun — hier werden Sie hingewiesen auf Werte, die sich abheben von der Mehrheit. Das ist wohl bei Messdaten nicht so sinnvoll. Aber es gibt Anwender, die mit einer speziell konstruierten Matrixansicht auf einen Blick feststellen können, ob z.B. bei gewissen Hosts oder Services eine falsche Kontaktgruppe eingetragen ist.

Matrixansicht mit farblicher Kennzeichnung von Zellen mit abweichendem Inhalt.

7. Alarmtöne

Eine Tabellenansicht kann über den Browser Alarmtöne (alarm sounds) abspielen, wenn sich in der Tabelle mindestens ein Problem befindet (also ein Host der nicht UP oder ein Service der nicht OK ist). Diese primitive Art der Alarmierung ist z.B. interessant für Leitstände, wo die Liste der Probleme ständig auf einem Schirm sichtbar ist, aber der Operator nicht ständig auf diesen starren möchte.

Die Alarmtöne sind per Default ausgeschaltet. Über den globalen Schalter Setup > General > Global settings > User interface > Enable sounds in views können Sie diese einschalten. Wie (fast) immer hilft hier die Suche im Setup-Menü:

Globale Einstellung zum Einschalten von Alarmtönen in Ansichten.

Alarmtöne werden aber nicht in allen Tabellenansichten abgespielt, sondern nur, wo dies in den View Properties aktiviert ist:

Aktivierung von Alarmtönen in einer Ansicht.

8. Ansichten in externe Websites einbetten

Da jede Tabellenansicht über eine URL erreichbar ist, können Sie diese auch in andere Webseiten einbetten — z.B. über einen <iframe>. Etliche Elemente der Tabellenansicht ergeben allerdings in so einem Kontext keinen Sinn oder sind sogar störend. In so einem Fall können Sie an die URL die Variable display_options=…​ anhängen, über die Sie genau steuern können, welche Bestandteile der Tabellenansicht im HTML-Code nicht generiert werden sollen.

Wichtig: Auch die Navigation von Checkmk ist beim Einbetten meist eher unerwünscht. Bevor Sie also in einer Tabellenansicht manuell Optionen setzen, lassen Sie die Seite ohne Navigation und Seitenleiste anzeigen indem Sie Display > Show page navigation ausschalten.

Jeder Bestandteil wird durch einen Buchstaben kodiert und kann entsprechend ausgeschlossen werden.

Folgende Buchstaben sind definiert:

Option Wirkung

t

Titelzeile (mit Seitentitel, Breadcrumb-Pfad, Symbol zum Countdown der Seitenaktualisierung), Menüleiste und Aktionsleiste werden entfernt.

b

Menüeinträge und Aktionsknöpfe werden entfernt, die zu anderen Tabellenansichten verlinken.

f

Menüeintrag Display > Filter und der zugehörige Aktionsknopf icon filter zum Öffnen der Filterleiste werden entfernt.

c

Menü Commands und zugehörige Aktionsknöpfe werden entfernt.

o

Die Optionen Entries per row und Refresh interval werden entfernt, sonst einzublenden mit Display > Modify display options.

d

Menüeintrag Display > Modify display options wird entfernt.

e

Menüeintrag Display > Customize View wird entfernt.

r

Symbol zum Countdown der Seitenaktualisierung in der Titelzeile und der JavaScript-Code für die automatische Aktualisierung werden entfernt.

s

Abspielen von Alarmtönen bei den Service-Zuständen WARN und CRIT wird unterdrückt.

i

Links auf andere Tabellenansichten werden entfernt, z.B. in einer Service-Liste die Links in der Spalte Service.

m

Das Ziel von Links ist standardmäßig der HTML-Frame main — mit dieser Option werden Links in neuen Tabs geöffnet.

l

Links in Spaltentiteln werden entfernt.

w

Limitierung und Livestatus-Fehlermeldungen.

Wenn Sie also die z.B. alle Bedienelemente, Knöpfe und Links abschalten und nur die eigentliche Tabelle darstellen möchten, so sieht ein Link auf die Tabellenansicht allhosts so aus:

/myserver/mysite/check_mk/view.py?view_name=allhosts&display_options=til

9. Eigene Icons und Aktionen einfügen

In Tabellenansichten von Hosts und Services sehen Sie auch eine Spalte für Icons und darin das icon menu Aktionsmenü, aus dem Sie Host- beziehungsweise Service-Aktionen auswählen können. Sie dürfen Tabellenansichten aber auch um eigene Icons erweitern. Diese können wahlweise schlicht zur Visualisierung genutzt oder mit eigenen Aktionen belegt werden.

So ließen sich zum Beispiel Hosts, die über eine grafische Weboberfläche verfügen, über solch ein individuelles Icon schnell identifizieren und über einen Link auch direkt ansteuern.

Das Prozedere für eigene Icons und Aktionen gliedert sich in drei Schritte:

  1. Icons hochladen.

  2. Icons/Aktionen definieren.

  3. Icons Hosts/Services zuordnen.

Starten Sie über Setup > General > Custom Icons und laden Sie eine lokale Datei mit einer maximalen Größe von 80 x 80 Pixeln hoch. Damit ist das Icon im System, findet aber noch keinerlei Verwendung.

Dialog zur Auswahl und zum Hochladen eines eigenen Icons.

Nun müssen Sie das Icon noch als über Regeln ansprechbares Objekt und optional eine zugehörige Aktion definieren. Die Einstellungen finden Sie unter Setup > General > Global settings > User interface > Custom icons and actions. Erstellen Sie hier über Add new element einen neuen Eintrag und legen Sie ID, Icon und einen Title fest; der Titel wird übrigens später per On-Mouse-Over-Effekt als Tooltipp direkt am Icon angezeigt und ist für die Benutzer damit sehr hilfreich.

Eigenschaften für eigene Icons.

Interessant wird es nun beim Punkt Action: Aktion ist hier gleichzusetzen mit einer URL und für diese dürfen Sie einige Variablen wie $HOSTNAME$ oder $SERVICEDESC$ (Service-Beschreibung) nutzen — weitere Hinweise bekommen Sie über die Inline-Hilfe. Eine gültige Aktion wäre beispielsweise:

view.py?host=$HOSTNAME$&site=mysite&view_name=host

Diese Aktion ruft schlicht die Standard-Host-Ansicht für den jeweiligen Host auf der Instanz mysite auf.

Über ein Häkchen bei Show in column können Sie das Icon dann als eigenständiges Bildchen neben icon menu anzeigen lassen, andernfalls landet Ihre Aktion im zugehörigen Aktionsmenü.

Im letzten Schritt bestimmen Sie nun, bei welchen Hosts oder Services das neue Icon angezeigt werden soll — und das natürlich über Regeln. Sie finden die beiden Regelsätze Custom icons or actions for hosts in status GUI und Custom icons or actions for services in status GUI im Setup-Menü unter Host monitoring rules und Service monitoring rules. Am schnellsten finden Sie die beiden Regeln mit der Suche im Setup-Menü.

Legen Sie eine neue Regel im gewünschten Ordner an und setzen Sie darin mindestens zwei Optionen: Zum einen wählen Sie unter Custom icons or actions for hosts in status GUI das just angelegte Icon:

Die Regel für die Nutzung eines eigenen Icons.

Zum anderen filtern Sie im Kasten Conditions wie üblich auf die gewünschten Hosts/Services:

Bedingungen in der Regel für die Nutzung eines eigenen Icons.

Speichern und bestätigen Sie anschließend die Änderungen.

In Host- und Service-Ansichten sehen Sie ab sofort bei den gefilterten Hosts und Services Ihr neues Icon neben oder im Aktionsmenü:

Host-Ansicht mit dem eigenen Icon.
Auf dieser Seite