1. Einleitung
1.1. Was genau sind Dashboards?
Dashboards sind in Checkmk die zentralen Ansichten für Ihr Monitoring. Sie liefern Ihnen sowohl Übersichten als auch detaillierte Einsichten in bestimmte Bereiche. Sie können etwa den allgemeinen Status ganzer Netzwerksegmente visualisieren, aber auch schlicht auflisten, welche Services just für eine Aus- oder Überlastung bestimmter Systemressourcen sorgen. Checkmk bringt einige Standard-Dashboards mit sich, so für Probleme, Checkmk-Server-Statistiken und natürlich einen Gesamtüberblick. Sie dürfen aber völlig individuelle Dashboards von Grund auf selbst gestalten.
Welche Werkzeuge dafür zur Verfügung stehen und wie genau Sie damit eigene Übersichten aufbauen, lesen Sie in diesem Artikel. Zunächst zeigen wir Ihnen, wie Dashboards grundsätzlich funktionieren und wie Sie damit arbeiten. Anschließend beleuchten wir die Grundlagen für Layout und Konfiguration, um darauf aufbauend ein komplettes, einfaches Beispiel-Dashboard Schritt für Schritt zu kreieren. Weiter geht es mit der Vorstellung aller bereits eingebauten Dashboards und Widgets — den einzelnen Bausteinen für Übersichten. Den Abschluss bilden Tipps zum Umgang mit Fehlern und Problemen.
Das auffälligste Dashboard sehen Sie übrigens direkt auf der Startseite von Checkmk, allerdings können Dashboards wie sonstige Ansichten behandelt und ganz einfach über die Navigationsleiste und die Seitenleiste aufgerufen werden.
Und natürlich eignen sich Dashboards bestens, um sie separat auf einzelne Monitore zu legen, sei es für einen großen Leitstand, als Info-Display für Server-Räume oder als schlichtes Kiosk-Display für den Konferenzsaal.
1.2. Das können Dashboards
Das Besondere an Checkmk-Dashboards ist unser hauseigenes Anchored Layout: Über einen intelligenten Algorithmus passen sich Dashboards automatisch an die Dimensionen des Displays beziehungsweise des Browserfensters an. Dabei können Sie für alle einzelnen Elemente des Dashboards, die Widgets, festlegen, wie genau sie sich verhalten und in welche Richtungen sie sich bei Bedarf ausdehnen.
Seit Version 2.5.0 gibt es in den kommerziellen Editionen zudem ein alternatives Responsive Layout: Hier gestalten Sie Ihr Layout einfach per Drag&Drop, die Anpassung an unterschiedliche Displays geschieht automatisch.
Eine Gegenüberstellung der beiden Systeme und nähere Details lesen Sie im Kapitel Layout.
Für den Inhalt stehen Widgets unterschiedlicher Kategorien zur Verfügung: Reguläre Ansichten, Graphen, Metriken, vorgefertigte Elemente für diverse Statistiken und Zeitleisten sowie Kästen für statische Texte und beliebige URLs. Eine Übersicht aller Widgets finden Sie weiter unten.
Einige der Widgets gibt es exklusiv in den kommerziellen Editionen.
Ein wichtiges Feature bei der Dashboard-Nutzung: Über Filter können selbst Dashboards, die Werte für alle Hosts oder Services im Netzwerk anzeigen, auf bestimmte Bereiche heruntergebrochen werden. Dashboards sind also nicht bloß starre Anzeigen, sondern echte Werkzeuge zum Auffinden und Analysieren von Problemen und Zuständen.
1.3. Dashboards im Einsatz
Main-Dashboard interpretieren
Auf der Startseite von Checkmk sehen Sie das Main-Dashboard, das Sie im Monitor-Menü und auch im Snapin Views jeweils unter Overview > Main dashboard finden.
Checkmk Community und kommerzielle Editionen kommen mit unterschiedlichen Standard-Dashboards, hier zunächst ein Blick auf die Variante der kommerziellen Editionen:

| Nr. | Titel | Funktion |
|---|---|---|
1 |
Filter |
Runtime-Filter aufrufen |
2 |
Sharing |
Status und Einstellungen für Dashboard-Sharing |
3 |
Settings |
Einstellungen für Dashboards und Vorgabe-Filter |
4 |
Edit widgets |
Layout-Modus ein-/ausschalten |
5 |
Host statistics |
Aktueller Zustand der Hosts |
6 |
Total host problems |
Zeitleiste der Host-Probleme |
7 |
Service statistics |
Aktueller Zustand der Services |
8 |
Total service problems |
Zeitleiste der Service-Probleme |
9 |
Problem notifications |
Zeitleiste der Alarmierungen |
10 |
Percentage of total service problems |
Zeitleiste aktiver Services |
11 |
Host overview |
Per Mausrad zoombare Visualisierung von Problemen auf Hosts |
12 |
Top alerters (last 7 days) |
Für Alarmierungen verantwortliche Services |
Wenn Sie mit dem Mauszeiger über die Graphen oder die Host-Symbole im Widget Host overview fahren, bekommen Sie sofort weitere Detailinformationen via Tooltipp.
Über die verlinkten Titelzeilen der Widgets gelangen Sie zu ausführlicheren Darstellungen.
Bei
Checkmk Community ist das Haupt-Dashboard auf der Startseite hingegen das Problem Dashboard, welches auch in den kommerziellen Editionen in der Hauptnavigation über Monitor > Problems > Problems dashboard aufrufbar ist und ganz klassisch unerledigte Probleme und aktuelle Events in Listenform zeigt:

| Nr. | Titel | Funktion |
|---|---|---|
1 |
Filter |
Filter aufrufen |
2 |
Sharing |
Status und Einstellungen für Dashboard-Sharing |
3 |
Settings |
Dashboard-Einstellungen |
4 |
Edit widgets |
Layout-Modus ein-/ausschalten |
5 |
Host statistics |
Aktueller Zustand der Hosts |
6 |
Service statistics |
Aktueller Zustand der Services |
7 |
Host Problems |
Liste unbehandelter Host-Probleme |
8 |
Service Problems |
Liste unbehandelter Service-Probleme |
9 |
Events of recent 4 hours |
Ereignisse der letzten vier Stunden |
Hinweis zum Edit widgets-Link zum Umschalten in den Layout-Modus:
Bei den eingebauten Dashboards sehen Sie diesen Link standardmäßig zunächst nicht!
Er taucht erst, und dann dauerhaft, auf, wenn Sie das Dashboard über das Menü Settings oder in der Dashboard-Liste klonen.
Verstehen Sie dies einfach als kleine Schutzmaßnahme, denn es ist ratsam, eingebaute Dashboards zu klonen |
Dashboards filtern
Wie Sie später sehen werden, lassen sich Dashboards von vornherein für eine bestimmte Auswahl von Hosts oder Services erstellen. Über Runtime filters können Sie aber jedes Dashboard temporär auf eine Auswahl beschränken:
Filterfunktion über
aufrufen.Filter über Add filter hinzufügen — beispielsweise Host name (regex).
Filter konfigurieren — beispielsweise
myhost.
Der dritte Schritt ist von Filter zu Filter unterschiedlich.
Wichtig ist hier vor allem die Handhabung eingegebener Suchbegriffe, also beispielsweise für Host-Namen:
Wie üblich wertet Checkmk diese als reguläre Ausdrücke.
Ein Filter nach myhost würde daher sowohl den Host myhost finden als auch 2myhost und myhost2.
Wenn Sie nur myhost im Dashboard sehen wollen, müssen Sie als Suchbegriff entsprechend ^myhost$ verwenden, um Anfang und Ende der Zeile einzubeziehen und so einen exakten Match zu provozieren.
Natürlich lassen sich auch mehrere Filter miteinander kombinieren, die die Treffermenge dann per UND-Verknüpfung reduzieren.
Innerhalb eines Filters dürfen Sie ODER-Verknüpfungen mit den Mitteln der regulären Ausdrücke verwenden, also beispielsweise myhost1|db_server.
2. Layout-Systeme
Checkmk stellt zwei komplett unterschiedliche Layout-Systeme für Dashboards zur Verfügung: Unser traditionelles, hauseigenes Anchored layout und in den kommerziellen Editionen seit Version 2.5.0 ein alternatives Responsive layout.
Das Responsive-System gibt es exklusiv in den kommerziellen Editionen.
Es ist etwas intuitiver und verhält sich standardkonform: Sie platzieren und skalieren Widgets manuell per Maus.
Ändert sich der Viewport, wird die Darstellung automatisch angepasst — Widgets werden also passend zur Ansichtsgröße automatisch angeordnet und skaliert.
Praktisch ist das zum Beispiel für ausgefallene Displaygrößen oder für die Anzeige auf wechselnden Geräten, etwa bei Dashboards, die mal auf dem Desktop, mal auf Mobilgeräten angezeigt werden sollen.
Das Anchored-System setzt den Fokus der Dynamik direkt auf die Widgets statt auf das ganze Dashboard: Widgets können mit fixer Höhe und Breite angelegt werden, sie können aber auch automatisch in beiden Dimensionen wachsen, um das Dashboard immer optimal auszufüllen — Widgets werden also gemäß Ihren Präferenzen skaliert, die Anordnung hingegen bleibt erhalten.
Welches der beiden Layout-Systeme Sie verwenden wollen, legen Sie direkt im ersten Schritt beim Anlegen eines neuen Dashboards fest — und zwar endgültig, ändern lässt sich diese Wahl später nicht mehr. Inhaltlich gibt es übrigens keine Unterschiede, in beiden Layout-Systemen stehen alle Widgets zur Verfügung.
Im Folgenden sehen Sie, wie sich die unterschiedlichen Systeme in der Praxis verhalten. Aber die beste Möglichkeit, die Dynamiken und Unterschiede zu verstehen, bleibt: Ausprobieren!
2.1. Responsive-Layout
Dieses Layout-System ist vollkommen intuitiv: Sie platzieren Widgets per Drag&Drop und skalieren über den Anfasser in der rechten, unteren Ecke. Hier ein Beispiel, der Einfachheit halber mit acht Versionen desselben Site overview-Widgets:

Wenn dieses Dashboard nun zum Beispiel auf einem mobilen Gerät landet oder man schlicht, wie hier zur Demonstration, das Browserfenster etwas schmaler zieht, passen sich Anordnung und Skalierung der Widgets an:

Der große Vorteil: Alles geschieht ganz automatisch. Der Preis dafür: Wenn Sie ein bestimmtes Widget, beispielsweise einen Graph mit Zeitleiste, immer über die volle Breite anzeigen lassen wollen, ist das mit diesem System nicht möglich.
2.2. Anchored-Layout
Das Prinzip ist simpel: Eine beliebige Ecke eines Widgets wird als Anker festgelegt. Von diesem Fixpunkt aus kann das Widget dann in Höhe und/oder Breite wachsen, sobald mehr Platz zur Verfügung steht, also zum Beispiel schlicht auf einem größeren Bildschirm, aber auch, wenn sich die Position oder Größe anderer Widgets verändert.
Zur Verdeutlichung hier ein Beispiel mit dem bereits bekannten Site overview-Widget — in der Mitte mit manueller Höhe und Breite sowie dem Anker oben links. Den Anker erkennen Sie an der grünen Ecke, die Einstellungen für aktuelle Höhe und Breite finden Sie in der Mitte der Widgets.
Umrahmt wird es von vier weiteren Widgets, allesamt mit automatischer Höhe, die seitlichen auch mit automatischer Breite — die Widgets oben und unten bekommen die Einstellung Max width. Standardmäßig sitzt der Anker oben links, hier bekommt jedoch das rechte Widget den Anker oben rechts und das untere unten links.

Wenn man nun das mittige Widget zum Beispiel weiter nach links und unten verschiebt, verändern sich die Widgets links, rechts und unten — denn sie wachsen automatisch von ihren Ankern hin zum zentralen Widget.
Das obere Widget hingegen bleibt, wie es ist. Nach unten kann es schließlich nicht wachsen, da die beiden seitlichen Widgets oben verankert sind.

Schaltet man nun das untere Widget von Max width auf Auto width, geht es nicht mehr über die gesamte Breite — weil die automatische Höhe des rechten Widgets vor der automatischen Breite des unteren Widgets gerendert wird (weil zeilenweise vorgegangen wird).

Wenn Widgets mit automatischen Dimensionen um denselben Raum streiten, können Sie mit der Maximaleinstellung quasi den Gewinner festlegen — aber Vorsicht: Konkurrieren zwei auf Maximum gesetzte Widgets um denselben Raum, kann es zu Überlappungen kommen.
Einfacher zu verstehen ist das ganze Anchored-Layout, wenn Sie sich solch einen Testaufbau selbst anlegen und die Widgets ein wenig herumschubsen.
3. Konfiguration
3.1. Dashboard
Die Dashboard-Konfiguration sehen Sie automatisch beim Anlegen eines neuen Dashboards. Später erreichen Sie sie über die Symbole in der Dashboard-Liste (Customize > Visualization > Dashboards) oder den Menüeintrag Settings > Dashboard settings eines geöffneten Dashboards.

Die Eigenschaften des Dashboards an sich sind trivial. Hier werden lediglich Metadaten wie Name, Menüeintrag, Sichtbarkeit in Menüs und für Benutzer(-gruppen) gesetzt.

3.2. Widgets
Die Konfiguration einzelner Widgets sehen Sie automatisch beim Hinzufügen zu einem Dashboard. Später rufen Sie sie direkt über das Zahnrad-Symbol der Widgets im Layout-Modus auf.

Übrigens: Im Responsive Layout sehen die Widgets minimal anders aus, die Symbole sind aber identisch:

Die Konfiguration der meisten Widgets ist recht simpel. Typischerweise finden Sie Data settings zur Beschränkung und Darstellung von Daten sowie Widget settings mit Optionen für Titel, Verlinkung und so weiter — hier mal am Beispiel des Gauge-Widgets.

Bei allen Widgets, die sich auf einige oder einzelne Hosts und Services beziehen, finden Sie zudem entsprechende Filtermöglichkeiten.
Eine genaue Beschreibung der Filter finden Sie im Kapitel Filter, konkrete Beispiele für Widget-Konfigurationen im Kapitel Beispiel-Dashboard.
3.3. Berechtigungen
Auch abseits der Dashboard- und Widget-Konfiguration gibt es in Checkmk wichtige Einstellungen, nämlich die Berechtigungen.
Unter Setup > Users > Roles & permissions > Edit role user können Sie einfach nach dashboard filtern, um alle Optionen aufzulisten.
Hier lässt sich für eine Rolle detailliert festlegen, welche Standard-Dashboards deren zugewiesene Benutzer sehen und was genau sie mit sonstigen Dashboards anfangen dürfen.

3.4. Filter
Die Filterung von Dashboards und Widgets ist ein mächtiges Feature, zu finden in mehreren Ausprägungen. Hier zunächst mal eine Übersicht:
-
Dashboard-Konfiguration
Default filters
Runtime filters - ohne Werte
-
Widget-Konfiguration
Widget filters
-
Dashboard-Ansicht
Runtime filters - Werte durch Benutzer
Default filters setzen konkrete Vorgaben für das gesamte Dashboard, also beispielsweise den Filter Host name (exact match) mit dem Wert myhost.
Runtime filters in der Dashboard-Konfiguration setzen leere Vorgaben für das gesamte Dashboard, also beispielsweise den Filter Host name (exact match) — und Benutzer müssen diesen dann zur Laufzeit (letztlich also beim Anschauen des Dashboards) selbst setzen. Sind Runtime filters in der Konfiguration gesetzt, wird das Dashboard mit geöffnetem Filter-Dialog gestartet — schließlich müssen Benutzer diese Filter mit Werten füllen.
Widget filters wiederum werden pro Widget in der jeweiligen Widget-Konfiguration gesetzt. Hier wird nicht nur auf Hosts und Services, sondern bei Bedarf auch zusätzlich auf Metriken (von Services) gefiltert.
Die beiden Dashboard-Filter erreichen Sie vom Dashboard aus über Settings > Filter settings, die Widget-Filter über das Zahnrad-Symbol an Widgets selbst.
Runtime filters stehen aber auch außerhalb der Konfiguration in der regulären Dashboard-Ansicht zur Verfügung — für normale Benutzer.
Diese Filter erreichen Sie über den Knopf
Filter direkt neben der Dashboard-Auswahl.
Wichtig ist nun auch das Zusammenspiel dieser Filter: Widget-Filter überschreiben Runtime-Filter überschreiben Default-Filter.
Folgendes Bild illustriert das gesamte Filterspektrum für Hosts (Punkte 3 bis 5):

| Nr. | Titel | Funktion |
|---|---|---|
1 |
Service-Filter |
Dashboard-weiter Filter auf den Service Memory |
2 |
Metrik-Filter |
Widget-spezifischer Filter auf die Metrik RAM usage |
3 |
Host-Filter - Default |
Dashboard-weiter Filter auf den Host |
4 |
Host-Filter - Runtime |
Dashboard-weiter Filter auf den Host |
5 |
Host-Filter - Widget |
Widget-spezifischer Filter auf den Host |
In diesem Dashboard ist also ein Widget vom Typ Metric vorgegeben, das immer die Metrik RAM usage des Services Memory anzeigt — standardmäßig per Default-Filter vom Host localhost, der hier aber überschrieben wird vom Runtime-Filter auf den Host myhost, der wiederum vom Widget-Filter auf den Host raspi_lan überschrieben wird.
Anders ausgedrückt: Beim Erstellen von Dashboards können Sie Dashboard-weite Vorgaben machen, die Benutzer wiederum überschreiben können (Runtime-Filter in der Ansicht) oder müssen (Runtime-Filter in der Konfiguration). Einzelne Widgets können Sie hingegen fix konfigurieren und Benutzern weitere Filter vorenthalten.
3.5. Sharing
Sie haben Stunden in ein mächtiges Dashboard investiert? Es wäre doch schade, dies für sich zu behalten. Daher können Sie Dashboards auch teilen, sowohl intern wie extern.

Die zugehörige Konfiguration erreichen Sie im jeweiligen Dashboard über Share > Configure sharing.
Ein interner Link zum Dashboard ist unter Internal access standardmäßig vorhanden — und hat keinen Einfluss auf den Status, den Sie oben im Bild sehen (hier Sharing paused).

Der Status bezieht sich allein auf den öffentlichen Link unter Public access, schließlich können Dashboards durchaus kritische Informationen enthalten, die nicht unbedingt für die Öffentlichkeit gedacht sind.
Sobald Sie hier einen Link aktivieren, ändert sich der Status von Sharing disabled auf Sharing enabled. Ist der öffentliche Zugriff aktiv und Sie ändern das Dashboard, sehen Sie den Status Sharing paused. Um das Sharing fortzusetzen, müssen Sie das Dashboard erneut freigeben. Der Sharing-Link selbst ändert sich dabei nicht.
Die einzige Option beim Teilen: Sie können die Freigabe zeitlich begrenzen.
In
Checkmk Community sind Freigaben auf maximal 30 Tage begrenzt, in den kommerziellen Editionen ist ein Auslaufdatum komplett optional.
Geteilte, öffentliche Dashboards haben aus Sicherheitsgründen ein paar Einschränkungen: Navigation und Menüs sind versteckt, es gibt keine Filtermöglichkeiten, Seitenleistenelemente sind nicht verfügbar. Und in Listenansichten stehen möglicherweise nicht alle Einträge zur Verfügung, weil diese standardmäßig begrenzt sind und die Schaltflächen für die Entgrenzung, abermals aus Sicherheitsgründen, fehlen.
4. Beispiel-Dashboard
Das Beispiel-Projekt führt Sie einmal durch die notwendigen Schritte, um ein Dashboard von Grund auf aufzusetzen. Dabei werden Sie grundsätzlich alle Möglichkeiten exemplarisch zu Gesicht bekommen. Um das Beispiel komplett nachzubauen, benötigen Sie eine der kommerziellen Editionen.
Das Beispiel zeigt vier Widgets, die unterschiedliche Daten(-arten) visualisieren:
Das Widget Graph zeigt die Nutzung eines Dateisystems eines Hosts, Gauge die durchschnittliche CPU-Auslastung der letzten Minute, die Alert timeline visualisiert Alarmierungen für eine Auswahl von Hosts und Services über einer Zeitleiste und die Ansicht Scheduled downtimes listet Wartungszeiten.
Und so wird das fertige Dashboard aussehen:

4.1. Beispiel-Dashboard aufsetzen
Dashboard anlegen
Legen Sie zunächst ein Dashboard über Customize > Visualization > Dashboards > Add dashboard an.
Sie landen in einem Dialog mit drei separaten Bereichen.

Zunächst bestimmen Sie den Dashboard type. Dieser Typ legt fest, welche Daten dem Dashboard grundsätzlich zur Verfügung stehen. Standard ist hier Unrestricted — es gibt also keinerlei Beschränkungen und Sie oder Dashboard-Benutzer können später bei Bedarf auf einzelne Hosts oder Services filtern.
Der Typ Specific host beschränkt sämtliche Visualisierungen des Dashboards auf einen spezifischen Host. Welcher Host dies ist, legen Sie später fest, hier geht es schlicht um die Beschränkung auf die Datenquelle „einzelner Host“.
Beim Typ Custom dürfen Sie dann tatsächlich ganz genau festlegen, welche Datenquellen dem Dashboard zur Verfügung stehen. Das könnten zum Beispiel bestimmte Hosts, Services und sogar einzelne Objekte wie Docker-Images oder gar Lüfter sein.
Für das Beispiel belassen Sie es bei der Vorgabe Unrestricted. Filtern können Sie zudem auch später noch.
Weiter geht es mit dem Kasten General properties.
Verlangt werden hier lediglich ein Name und eine ID für das Dashboard, wobei die Unique ID auf Wunsch automatisch generiert wird.
Besondere Aufmerksamkeit verlangt jedoch die Option Dashboard layout: An dieser Stelle müssen Sie sich unwiderruflich für eine der beiden Layout-Varianten entscheiden, die Sie im Kapitel Layout kennengelernt haben.
Für unser Beispiel wählen Sie das traditionelle Anchored aus — einfach, weil es hier etwas mehr zu zeigen gibt.
Im Kasten Visibility bestimmen Sie, ob und in welcher Kategorie Ihr neues Dashboard in der Hauptnavigation angezeigt wird. Diese Einstellung können Sie aber auch später noch vornehmen. Zudem erscheint Ihr Dashboard standardmäßig im Dashboard-Drop-down-Menü in jedem Dashboard sowie in dem Dashboard-Seitenleistenelement.
Nach dieser kurzen Initialisierung landen Sie auf dem neuen, leeren Dashboard — wobei leer nicht ganz stimmt. So lange noch kein Widget existiert, bieten Kacheln Schnellzugriff auf die verfügbaren Widgets, die sich auch oben rechts über Add widget erreichen lassen.

Dashboard konfigurieren
Bevor das Dashboard nun gefüllt wird, werfen Sie einen Blick in die allgemeinen Dashboard-Einstellungen unter Settings > Dashboard settings. Neben den bereits bekannten Einstellungen aus dem Add dashboard-Dialog sehen Sie hier den Reiter Access, über den Sie genau festlegen können, wer überhaupt auf dieses Dashboard zugreifen darf — standardmäßig nur Sie selbst!

Ebenfalls Teil der Grundkonfiguration sollten Filter sein, zu finden über Settings > Filter settings (mehr dazu in einem eigenen Kapitel. Beim Erstellen des Dashboards wurde der Typ Unrestricted gewählt, es stehen Ihnen also alle Daten aus dem Monitoring zur Verfügung.
Für das Beispiel-Dashboard müssen Sie hier nicht zwangsläufig Filter setzen. Sofern Sie in einer Umgebung arbeiten, in der bereits Hunderte Hosts überwacht werden, kann es sich jedoch lohnen, eine Vorauswahl zu treffen, etwa rein auf Windows-Hosts oder Hosts an einem bestimmten Standort. Filter auf individuelle Hosts setzen Sie gleich direkt in den Widgets.

Widget Graph hinzufügen
Das erste Widget soll nun die Belegung eines Dateisystems in Form eines Graphen anzeigen. Dazu konfigurieren Sie zunächst die gewünschten Daten, anschließend deren Visualisierung.
Starten Sie die Konfiguration auf dem leeren Dashboard über Add widget > Metrics & graphs.
Die Datenauswahl geschieht in drei Schritten: Host, Service, Metrik. Setzen Sie zunächst einen Host-Filter: Für das Beispiel genügt hier ein einziger, konkreter Host myhost unter Host selection > Single host > Widget filters.

Es folgt die Angabe des gewünschten Service, hier beispielsweise Filesystem C:/.

Im dritten Schritt wählen Sie nun die gewünschte Metrik unter Metric selection > Metric (single) > Service metric (required), hier Used space %. Dieses Drop-down-Menü ist gefiltert gemäß Ihrer Auswahl von Host und Service, es stehen also nur passende Metriken zur Verfügung.
Achtung: Der Filter unter der Service-Metrik-Auswahl dient nur der Filterung des Drop-down-Menüs und ersetzt nicht die zuvor getätigte Auswahl von Host und Service — ohne Filter wäre es viele Hundert Einträge lang!

Weiter geht es nun mit einem Klick auf Next step: Visualization ganz oben in der Datenkonfiguration oder eine beliebige Visualisierung ganz unten.
Auf die Metrik Used space % würden mehrere Visualisierungstypen passen. Hier soll es der Graph sein, um die Belegung auch über die Zeit sehen zu können.

Unter der Vorschau finden Sie nun zunächst zwei Kästen mit Einstellungen, die Ihnen bei vielen Widgets begegnen: Data settings, hier zur Eingrenzung der Zeitachse, sowie Widget settings zur Konfiguration von Titel, Links und Aussehen. Setzen Sie eine Time range, die ein paar sinnvolle Daten aufzeigt.
Tipp: Häufig lohnt es sich, den Titel von Widgets um den Eintrag $HOSTNAME$ zu erweitern, damit klar ist, zu welchem Host das jeweilige Datum überhaupt gehört.

Letztlich folgt eine Graph-spezifische Konfiguration, die den allgemeinen Graphing-Funktionen entspricht und natürlich rein optional ist.

Wenn Sie mit der Darstellung zufrieden sind, kann es über Add & place widget weitergehen.
Das neue Widget lässt sich nun platzieren und skalieren wie im Kapitel Layout beschrieben. Für das oben gezeigte Beispiel-Dashboard bieten sich hier Manual height und Auto width an: Sie bestimmen die gewünschte Höhe, der Algorithmus sorgt für die automatische Ausdehnung vom Anker (oben links) aus nach rechts bis zum nächsten Widget, beziehungsweise hier bis zum Dashboard-Rand.

Widget Gauge hinzufügen
Das Gauge-Widget steht nur in den kommerziellen Editionen zur Verfügung und visualisiert Werte wie die CPU-Auslastung in Anlehnung an einen Tachometer.
Die Konfiguration unterscheidet sich kaum von der des eben erzeugten Graphen, wieder filtern Sie auf myhost und jetzt auf den Service CPU load.
Und wieder werden beide Werte automatisch in den Metric selection-Kasten übernommen.
Als Metrik wählen Sie CPU load average of last 15 minutes.

Das Gauge-Widget bietet einige spannende Daten-Einstellungen. Die Beschränkung auf eine Zeitspanne haben Sie bereits kennengelernt. Für diese Art der Visualisierung bietet sich aber auch eine Beschränkung der Datenspanne an — bei prozentualen Angaben funktioniert die Vorgabe von 0 bis 100. Es sind aber Alternativen denkbar: Sie könnten hier auch den maximalen Wert eintragen, bevor der Service von OK auf CRIT wechselt, um größere Ausschläge im Normalbetrieb zu sehen. Für unser Beispiel kommen noch die Optionen Show colored status label und Show colored metric background hinzu, um für maximale Aufmerksamkeit zu sorgen

Nach dem Speichern landen Sie wieder im Layout-Modus und können das Widget unterhalb des Dateisystem-Graphen platzieren (der zunächst vom neuen Widget überlagert wird!). Hier bieten sich manuelle Breite und Höhe an. Die gewünschte Größe bestimmen Sie durch Ziehen mit der Maus an den Widget-Rändern. An dieser Stelle könnten Sie nun auch das Graphen-Widget auf automatische Höhe setzen und die Höhe dann schlicht durch die Platzierung des neuen Gauge-Widgets bestimmen lassen.

Widget Alert Timeline hinzufügen
Als drittes Widget folgt nun die Alert timeline — ebenfalls exklusiv in den kommerziellen Editionen zu finden — zur Darstellung der Alarmierungen auf einer Zeitachse.
In diesem Widget sollen nun Daten mehrerer Hosts und Services landen — daher auch oben der Verzicht auf eine Dashboard-weite Vorabfilterung.
Bei diesem Widget bietet sich häufig der komplette Verzicht auf Filter an, um alle Hosts auszuwerten.
Präziser wird es mit dem Host-Filter Host name (regex), den Sie zunächst aus der linken Filterliste hinzufügen.
Hier dürfen Sie wie gewohnt mit regulären Ausdrücken arbeiten.
Um etwa alle Alarmierungen aller Hosts zu bekommen, die mit my anfangen, setzen Sie den Filter für den Host-Namen auf ^my.
Für unser Beispiel soll es ein wenig konkreter sein, daher beschränken wir hier auf Hostnamen, die myhost oder localhost beinhalten, in der Notation myhost|localhost.
Zur Erinnerung: Egal, welche Default- oder Runtime-Filter gesetzt sind, die Widget-Filter haben Vorrang.

Für das Beispiel-Widget wird die gegebene Darstellung Barplot beibehalten.

Beim Zeitraum kommt es freilich auf die Größe Ihres Projekts an, für unser Beispiel sollen es The last 35 days sein. Neu ist hier die Time resolution, letztlich also die Skala für die X-Achse, hier ganze Tage.

Nach dem Speichern platzieren Sie das Widget wieder auf dem Dashboard. Hier bietet sich eine automatische Breite mit manueller Höhe an, um die Zeile mit dem Widget Gauge zu füllen.

Widget per Ansicht hinzufügen
Auch bereits existierende Tabellenansichten können als Widget genutzt werden. Das funktioniert etwa über Add widget > Views > Link to existing view. Alternativ lassen sich hier auch Kopien von Ansichten nutzen oder komplett neue Ansichten erstellen. Für unser Beispiel soll es aber der eleganteste Weg sein: über die Ansichten selbst.
Um die Ansicht der Wartungszeiten einzufügen, rufen Sie diese zum Beispiel über Monitor > Overview > Scheduled downtimes auf. Anschließend fügen Sie die Ansicht Ihrem Dashboard über Export > Add to dashboard hinzu.

Wählen Sie Ihr Dashboard aus.

Platzieren Sie das Widget als letzte Zeile. Hier bieten sich nun automatische Höhe und Breite an, um leere Bereiche zu vermeiden.
Wenn Sie nun die
Eigenschaften des Widgets aus dem Layout-Modus heraus aufrufen, stehen Ihnen die aus Ansichten bekannten Einstellungen zur Verfügung, um das Widget beispielsweise ein wenig schlanker zu gestalten.
Ein Klick auf den Widget-Titel führt Sie schließlich sowieso zur vollständigen Ansicht der Wartungszeiten.
Damit wäre Ihr Beispiel-Dashboard fertig, hier nochmal komplett im Layout-Modus:

5. Eingebaute Dashboards und Widgets
5.1. Eingebaute Dashboards
Eine Liste aller individuell angelegten sowie eingebauten Dashboards finden Sie über Customize > Visualization > Dashboards.
Für die manuell angelegten Dashboards können Sie über
die Eigenschaften aufrufen und über
den Layout-Modus.
Die werksseitig vorgegebenen Dashboards können Sie nicht direkt aus der Liste heraus bearbeiten, jedoch über
klonen und dann anpassen.
Nicht alle Dashboards sind in allen Editionen von Checkmk integriert. Die Cloud-Anbieter-spezifischen Dashboards finden Sie nur in Checkmk Ultimate. Checkmk Community beschränkt sich auf einige Basis-Dashboards. |
Hier ein Auszug der eingebauten Dashboards:
| Name/ID | Monitor-Menüeintrag | Inhalt |
|---|---|---|
aws_ec2_overview |
Cloud > AWS EC2 instances |
Übersicht der EC2-Instanzen |
azure_vm_overview |
Cloud > Azure VM instances |
Übersicht für Azure-VMs |
checkmk |
System > Checkmk dashboard |
Checkmk-Server und -Instanzen |
gcp_gce_overview |
Cloud > GCP GCE instances |
Übersicht für GCP-VMs |
kubernetes_overview |
Applications > Kubernetes |
Übersicht der Cluster, Ressourcen, Nodes etc. |
main |
Overview > Main dashboard |
Gesamtübersicht |
ntop_alerts |
Network statistics > Alerts |
Alerts in ntopng |
problems |
Problems > Problems dashboard |
Probleme und Statistiken aller Hosts und Services. Das Problems dashboard ist in Checkmk Community das Main dashboard. |
simple_problems |
Problems > Host & service problems |
Probleme aller Hosts und Services |
site |
- |
Übersicht einer Instanz |
5.2. Widgets
Hier sehen Sie zunächst alle Widgets in der Übersicht. Anschließend zeigen wir Ihnen noch ein paar Besonderheiten, die im obigen Beispiel-Dashboard nicht mit abgehandelt wurden.
| Kategorie | Name | Checkmk Community | Funktion |
|---|---|---|---|
Views |
View |
ja |
Reguläre Ansichten als Widgets |
Custom graph |
Custom graph |
nein |
Manuell erstellte Freiformgraphen |
HW/SW Inventory |
HW/SW Inventory of host |
nein |
Daten aus dem Inventar |
Events |
Event statistics |
ja |
Gesamtstatistik Event-Zustand |
Metrics & graphs |
Single metric graph |
nein |
Graph für einzelne Metriken über Zeitachse |
Performance graph |
ja |
Vorgegebene Performance-Graphen für einzelne Hosts/Services |
|
Combined graph |
nein |
Graphen mit mehreren Metriken |
|
Scatterplot |
nein |
Metriken diverser Hosts/Services als Streudiagramm |
|
Barplot |
nein |
Balkendiagramm für einzelne Services |
|
Gauge |
nein |
Einzelne Metrik als Tachometer |
|
Single |
nein |
Einzelne Metrik als Zahl |
|
Top list |
nein |
Rangliste einer einzelnen Metrik von mehreren Hosts/Services |
|
Host & site overview |
Host state |
nein |
Zustand eines einzelnen Hosts |
Host state summary |
nein |
Zusammenfassung einzelner Zustände |
|
Host statistics |
ja |
Gesamtstatistik Host-Zustand |
|
Site overview |
nein |
Hosts/Sites als Zustand-Hexagons |
|
Service overview |
Service state |
nein |
Zustand eines einzelnen Services |
Service state summary |
nein |
Zusammenfassung einzelner Zustände |
|
Service statistics |
ja |
Gesamtstatistik Service-Zustand |
|
Alerts & notifications |
Alert overview |
nein |
Hosts als Alarmierungs-Hexagons |
Alert timeline |
nein |
Alarmierungen über Zeitleiste |
|
Notification timeline |
nein |
Benachrichtigungen über Zeitleiste |
|
Percentage of service problems |
nein |
Prozentsatz Service-Probleme über Zeitleiste |
|
Ntop (sofern vorhanden) |
Alerts |
nein |
Alerts in ntopng |
Flows |
nein |
Datenflüsse in ntopng |
|
Top talkers |
nein |
Hosts in ntopng, die den meisten Netzwerkverkehr verursachen |
|
Other elements |
Embed URL |
ja |
Interne/externe URLs |
Static text |
ja |
Statischer Text für Hinweise |
|
Sidebar widget |
ja |
Beliebige Sidebar-Widgets |
|
User messages |
ja |
Benutzerbenachrichtigungen |
Wie genau Sie die Graphen in den Graphing-Widgets gestalten, ist etwas komplexer und wird im Graphing-Artikel ausführlich erläutert.
Eine besondere Rolle spielt das Widget Embed URL. Theoretisch können Sie über die simple Angabe einer Adresse externe Webseiten oder Ressourcen einbinden. In der Praxis scheitert das oft an Sicherheitsmaßnahmen der Betreiber und Browser. Freilich funktioniert das sehr wohl mit Checkmk-eigenen Ressourcen, beispielsweise anderen Dashboards. So ließen sich etwa mehrere Host-spezifische Dashboards zu einer großen Übersicht verknüpfen. Was Sie — mit ein wenig Experimentierfreude — ebenso einbinden können, sind interne Ressourcen des Checkmk-Servers; beispielsweise jegliche Art von Webanwendungen, sei es ein Wiki oder ein kleines Chat-Programm.
Das Widget Site overview hat zwei Funktionen: In den Erläuterungen zum Layout oben sehen Sie es als Übersicht der Hosts — Standard auf einer normalen, einzelnen Checkmk-Instanz. Im verteilten Monitoring zeigt dieses Widget hingegen eine Übersicht der zusammengeschlossenen Instanzen.
Ein wenig mehr, als Sie vielleicht vermuten würden, kann auch das Widget Static text: Es eignet sich für Hinweise und simple Beschriftungen, kann aber auch zum Verlinken sonstiger Dashboards oder anderer Checkmk-Bereiche verwendet werden, wie Sie auch im folgenden Beispiel für ein Top-Down-Dashboard sehen.
6. Dashboard-Beispiele
6.1. Top-Down-Dashboard
Sie kennen nun also alle verfügbaren Widgets und fertigen Dashboards, wissen, wo deren Konfigurationen und Layout-Optionen zu erreichen sind und wie man ein komplettes Dashboard zusammenbaut. Dashboards müssen aber nicht unbedingt ganz allein für sich stehen, sondern können auch aufeinander aufbauen — beispielsweise, um von einer großen Übersicht bis ins kleinste Detail zu navigieren.
Im Grunde funktionieren viele Widgets bereits genau so: Die Host statistics visualisieren die Host-Zustände, und ein Klick auf einen der Zustände leitet zu einer Ansicht weiter, die die zugehörigen Hosts auflistet. Von dort geht es wiederum weiter zu den einzelnen Services eines einzelnen Hosts.
Bei eigenen Dashboards können Sie auch Links auf andere Dashboards setzen, indem Sie die Titelzeile von Widgets via Widget settings > Interaction > Link title to in den Widget-Eigenschaften verlinken. Mal als konkretes Beispiel: Hier sehen Sie ein Dashboard, das Informationen zu CPU, RAM und Dateisystem mehrerer Hosts zeigt.

Der Titel des CPU-Graphen verlinkt hier ein weiteres Dashboard, welches die CPU-Informationen für jeden Host einzeln visualisiert. In diesem Dashboard gibt es wiederum ganz oben einen Link zurück zur Übersicht, einfach realisiert über ein Widget Static text.

Mit solchen Querverlinkungen können Sie komplexe Recherchewerkzeuge über Dashboards realisieren. Dabei sind Sie übrigens nicht auf die Titelzeile beschränkt. Als statischen Text können Sie durchaus HTML-Code verwenden und so ganze Navigationen einbauen. Denken Sie etwa an verteiltes Monitoring und Pfade wie Gesamtübersicht > Instanzübersicht > Host-Übersicht > Container-Übersicht > Services > Probleme.
7. Fehlerbehebung
7.1. Fehlende Filter
Es kann vorkommen, dass Sie bei einem Widget lediglich folgende Meldung sehen:
Enter runtime filter to load data
In diesem Fall soll das Widget Informationen für nur einen Host und/oder Service anzeigen — für den aber kein Filter gesetzt wurde. Um das zu beheben, setzen Sie passende Runtime-Filter.
7.2. Leere Widgets
Für gänzlich leere Widgets bei ausbleibenden Fehlermeldungen kann es mehrere Gründe geben. In der Regel handelt es sich um eine Fehlkonfiguration des Widgets.
Beispiel: Sie erstellen ein Widget für die CPU-Auslastung mit der Metrik und dem gefilterten Service CPU load. Später ändern Sie den Filter der Service-Beschreibung auf etwa Check_MK Discovery, belassen die gewählte Metrik aber auf CPU load. Beim Anlegen eines Widgets kann Ihnen das nicht passieren, da nach dem Filter auf die CPU-Auslastung gar keine Auswahl einer unpassenden Metrik möglich ist — beim Umkonfigurieren von Widgets wird die ursprünglich gewählte Metrik jedoch beibehalten.
Die Lösung ist trivial: Passen Sie Service-Filter und gewählte Metrik in der Widget-Konfiguration an. Das gilt natürlich auch für alle anderen Widget-Varianten.
