Wir nutzen Cookies, um Ihnen eine optimale Nutzung dieser Webseite zu ermöglichen. Mehr Informationen finden Sie im Datenschutzhinweis. Wir nehmen an, dass Sie damit einverstanden sind, falls Sie diese Webseite weiter besuchen.

Ihre Cookie-Einstellungen
Ihre Einstellungen wurden aktualisiert.
Damit die Änderungen wirksam werden, löschen Sie bitte Ihre Browser-Cookies und den Cache und laden dann die Seite neu.

Die Checkmk-Konferenz #6 steht an! Regulärer Verkauf endet in . Tickets hier!

Checkmk in Grafana integrieren

1. Einleitung

Checkmk verfügt mit seinem integrierten Graphingsystem über ein umfangreiches System zum Aufzeichnen und Visualisieren von Messdaten. Dennoch kann es sinnvoll sein, Grafana als externes Graphingsystem anzubinden, z. B. weil Sie Grafana bereits nutzen und die Daten von Checkmk mit Daten aus anderen Systemen in gemeinsamen Dashboards zusammenführen möchten.

Beginnend mit Version 1.5.0p16 ist es in den  Checkmk Enterprise Editions möglich, Checkmk direkt als Datenquelle in Grafana anzusprechen und einzelne Metriken oder sogar ganze Graphen, wie sie in Checkmk vordefiniert sind, in Grafana anzeigen zu lassen. Zusätzlich können Sie dynamisch eigene Graphen erstellen lassen, indem Sie über reguläre Ausdrücke eine Gruppe von Hosts und Services bestimmen, von denen bestimmte Metriken in dem Graphen berücksichtigt werden sollen.

Dieser Artikel beschreibt, wie Sie Ihre Metriken aus Checkmk in Grafana abrufen und darstellen. Eine ausführliche Anleitung, wie Sie Grafana nutzen und konfigurieren können, finden Sie in der Dokumentation bei Grafana Labs.

Da das Plugin für Grafana parallel zu Checkmk entwickelt wird, wird es nicht mit Checkmk zusammen ausgeliefert. Sie können den aktuellen Entwicklungsstand aber direkt über das Archiv auf GitHub einsehen. Auch mit Hilfe der Mailingliste Announcements werden Sie informiert, wenn es eine neue Version des Plugins geben sollte.

Eine Integration direkt in Grafana befindet sich derzeit noch in der Prüfung. Sobald das Plugin offiziell aufgenommen wurde, können Sie es auch direkt über die Oberfläche von Grafana installieren.

2. Das Plugin in Grafana einrichten

2.1. Plugin installieren

Um das Plugin benutzen zu können, haben Sie zwei Möglichkeiten, es Grafana bekannt zu machen:

  • Sie laden die Zip-Datei aus dem GitHub-Repository herunter und legen die Inhalte manuell in das Plugin-Verzeichnis von Grafana.
  • Sie klonen das GitHub-Projekt direkt in das Plugin-Verzeichnis.

Installation der Zip-Datei

Dieser Variante ist die einfachste und dann zu bevorzugen, wenn Sie git auf dem Grafana-Server nicht installiert haben und dies auch nicht können/wollen. Laden Sie einfach die aktuellste Version als Zip-Datei herunter und kopieren sie, z. B. scp, auf den Grafana-Server:

Alternativ können Sie die Datei natürlich auch direkt über die Kommandozeile laden. Beachten Sie, dass Sie dafür die korrekte Version wissen müssen. In folgendem Befehl wird der Dateiname, so wie er lokal gespeichert werden soll, mit der wget-Option -O festgelegt, da die Datei sonst einfach 1.1.0.zip heißen würde:

root@linux# wget -O grafana-checkmk-datasource-1.1.0.zip https://github.com/tribe29/grafana-checkmk-datasource/archive/1.1.0.zip

Entpacken Sie jetzt den Inhalt der Datei in das Plugin-Verzeichnis von Grafana. Üblicherweise ist das der Pfad /var/lib/grafana/plugins/:

root@linux# unzip grafana-checkmk-datasource-1.1.0.zip && mv grafana-checkmk-datasource-1.1.0 /var/lib/grafana/plugins/

Danach können Sie das Plugin in der Oberfläche von Grafana aktivieren und einrichten.

Installation über das Klonen des Git-Archivs

Die oben beschriebene Variante hat die wenigsten Voraussetzungen und ist auch für weniger versierte Nutzer leicht umsetzbar. Falls Sie aber das Plugin direkt aus dem Git-Archiv beziehen, haben Sie dadurch verschiedene Vorteile:

  • Die Aktualisierung auf eine neue Version geht schnell über diesen Befehl: git pull
  • Sie haben die Möglichkeit, direkt den aktuellen Entwicklungsstand aus dem Archiv zu nutzen, wenn Sie ein neues Features testen wollen: git checkout develop

Um das Plugin mit Hilfe einer Kopie des Archivs zu nutzen, benötigen Sie zwingend das Programm git. Das Vorgehen ist danach recht einfach. Klonen Sie das Archiv in das Plugin-Verzeichnis von Grafana:

root@linux# cd /var/lib/grafana/plugins/ && git clone https://github.com/tribe29/grafana-checkmk-datasource.git
Cloning into 'grafana-checkmk-datasource'...
remote: Enumerating objects: 541, done.
remote: Total 541 (delta 0), reused 0 (delta 0), pack-reused 541
Receiving objects: 100% (541/541), 291.55 KiB | 0 bytes/s, done.
Resolving deltas: 100% (374/374), done.
Checking connectivity... done.

Anschließend ist das Plugin in der Oberfläche von Grafana verfügbar und kann aktiviert und eingerichtet werden.

Da der Master-Branch immer die aktuellste Version abbildet, brauchen Sie nach einer neuen Veröffentlichung lediglich folgenden Befehl auszuführen, um das Plugin auf dem Grafana-Server zu aktualisieren:

root@linux# cd /var/lib/grafana/plugins/grafana-checkmk-datasource && git pull

2.2. Plugin aktivieren und einrichten

Nachdem die notwendigen Dateien installiert wurden, können Sie das Plugin in Grafana aktivieren. Wechseln Sie dazu in die Konfiguration und wählen den Reiter Data Sources aus. Hier können Sie über den Knopf Add data source eine neue Datenquelle hinzufügen:

Den Eintrag zu Checkmk finden Sie unten in der Kategorie Others:

Die Konfigurationsmaske zu der Datenquelle ist recht einfach gehalten. Geben Sie hier die URL zu Ihrer Instanz und einen Automationsbenutzer an. Wichtig: Wenn Sie eine verteilte Umgebung haben, dann geben Sie hier die URL zu Ihrem Master an:

Falls Sie mehrere Checkmk-Instanzen anbinden möchten, können Sie die einzelnen Verbindungen optional mit einem eindeutigen Namen versehen. Ansonsten lassen Sie den Standard Checkmk einfach stehen.

Nachdem Sie die Verbindung Mit dem Knopf Save & Test gespeichert haben, steht sie Ihnen als Datenquelle in Grafana zur Verfügung und Sie können Ihre ersten Graphen konfigurieren.

3. Den ersten Graphen erstellen

3.1. Ein leeres Dashboard erzeugen

Dashboards werden in Grafana über das Pluszeichen auf der rechten Seite erzeugt. Klicken Sie auf Dashboard, um ein neues Dashboard zu erstellen:

3.2. Einen vordefinierten Graphen aus Checkmk anzeigen

Checkmk fasst bereits automatisch Metriken sinnvoll in Graphen zusammen, um inhaltlich ähnliche Metriken schnell miteinander vergleichen zu können. Sie können die Metriken aus einem solchen vorgefertigten Graphen direkt in Grafana anzeigen lassen. In einem bestehenden oder dem eben erzeugten Dashboard erstellen Sie ein neues Panel. Wählen Sie hier zuerst Add Query aus:

Der Query sollte CheckMK sein. Danach können Sie die Abfrage noch auf eine Checkmk-Instanz (Site) begrenzen. Wählen Sie nun den gewünschten Host, Service und Graph aus; in unserem Beispiel ist das CPU-Utilization:

Grafana zeigt das Ergebnis direkt an. Sobald Sie oben rechts auf das Speichern-Symbol geklickt haben, werden Sie aufgefordert, einen Titel für das Panel anzugeben. Danach gelangen Sie zurück zum Dashboard:

3.3. Eine einzelne Metrik eines Hosts anzeigen

Natürlich ist es auch möglich, einzelne Metriken eines Hosts anzeigen zu lassen. Das Vorgehen ist dabei sehr ähnlich wie bei den vordefinierten Graphen; Sie ändern lediglich den Mode auf single metric, und statt eines vordefinierten Graphen wählen Sie die Metric zu einem Service aus:

Auch hier speichern Sie das Panel ab und können das Ergebnis im Dashboard sehen:

4. Komplexe Graphen erstellen

Gerade in einem dynamischen Cluster möchte man oft den gesamten Verlauf einer Metrik über alle beteiligten Hosts verfolgen können, ohne einen Graphen jedes Mal anpassen zu müssen, wenn ein neuer Knoten hinzukommt oder wegfällt. Ab Version 1.6.0p2 haben Sie daher zusätzlich die Möglichkeit, Graphen dynamisch mit Hilfe von regulären Ausdrücken zu erstellen. Voraussetzung ist, dass das Plugin in Version 1.1.0 vorliegt.

Stellen Sie den Mode in einem neuen Panel dafür auf combined Graph um. Die allgemeinen Einstellungsmöglichkeiten bleiben dadurch unverändert, aber Sie können nun von einem oder mehreren Hosts und Services Metriken zusammenfassen. Dabei haben Sie auf alle regulären Ausdrücke Zugriff, die Sie auch sonst von Checkmk kennen. Beachten Sie, dass auch für die Hosts an dieser Stelle reguläre Ausdrücke benutzt werden können. Der Ausdruck .* im Feld Service Regex dient nur der Verdeutlichung; es würde auch ohne funktionieren.

Zusätzlich zu den erweiterten Filtermöglichkeiten bestimmen Sie mit Aggregation die Darstellung der Metriken im Graphen und mit Graph, welcher Graph als Referenz herangezogen werden soll. Beachten Sie, dass nur dann Metriken zu einem Host/Service angezeigt werden, wenn dieser auch über den ausgewählten Graphen verfügt. Der Graph sieht dann zum Beispiel so aus:

5. Weitere Features

Ab Version 1.6.0p2 und der Version 1.1.0 des Plugins ist zusätzlich noch möglich,

  • die Metriknamen mittels Variablen zu steuern und
  • Statusänderungen von bestimmten Services als Kommentare anzeigen zu lassen.

Metriknamen

Normalerweise übernimmt das Plugin den Metrikennamen so, wie er in Checkmk bereits definiert wurde. Sie müssen also keinen lesbaren Namen als Alias definieren, um die recht kryptischen Metriknamen zu sehen, wie sie der Code intern verwendet.

Gerade, wenn Sie aber Metriken von mehreren Hosts in einem Graphen verwenden wollen, ist es schnell unübersichtlich, von wo jeweils eine Metrik kommt. Um dieses Problem zu lösen, können Sie in einem Panel den Anzeigenamen anpassen, um immer eine eindeutige Information zu bekommen. Sie können dabei aus verschiedenen Variablen auszuwählen:

Variable Beschreibung
$title Der Titel der Metrik, wie er auch in Checkmk dargestellt werden würde.
$site Die Checkmk-Instanz, auf der der Host und seine Metrik überwacht wird.
$host Der Host, dem die Metrik zugeordnet ist.
$service Der Service, dem die Metrik in Checkmk zugeordnet ist.

Über diese Variablen können Sie auch dann, wenn Sie mehrere Metriken in einem Graphen anzeigen lassen, sehr einfach die Bezeichnungen anpassen. Im nachfolgenden Beispiel haben wir im Feld Label Format den folgenden Ausdruck verwendet:

Label Format
$host/$service: $title

Das Ergebnis sieht dann so aus:

Automatische Kommentare

Grafana unterstützt das Setzen von Kommentaren in den Graphen. Kommentare markieren dann ein Ereignis direkt in dem Graphen und ermöglichen es so, zu bestimmten Zeitpunkten einen Kommentar zu hinterlassen. Die Statusänderungen eines oder mehrerer Services können Sie sich aber auch automatisch anzeigen lassen, indem Sie eine Annotation-Query hinzufügen.

Sie gelangen zu der Konfiguration, indem Sie auf das Zahnradsymbol des Dashboards klicken und dann die Konfiguration für die Annotations öffnen:

Erstellen Sie dort mit dem Knopf Add Annotation Query eine neue Abfrage. Die Data source setzen Sie dabei auf Checkmk und vergeben unter Name den Anzeigenamen, wie die Query später in dem Dashboard zu sehen sein soll. Zusätzlich bestimmen Sie, ob die Annotation-Query direkt aktiviert (Enabled) oder unsichtbar (Hidden) ist. Auch die Farbe der Kommentare können Sie hier bei Bedarf festlegen. In diesem Beispiel haben wir Gelb ausgesucht, da die Abfrage ausschließlich WARN anzeigen soll:

Die eigentliche Abfrage funktioniert dann ähnlich wie beim Erstellen eines Graphen. Einzig die abzufragende Instanz müssen Sie explizit bestimmen, da hier keine Abfrage über alle Checkmk-Instanzen möglich ist. Zuletzt bestimmen Sie dann noch den anzuzeigenden Status von einem oder mehreren Services:

Wichtig: Schränken Sie die anzuzeigenden Daten so weit wie möglich ein, denn Kommentare werden auf allen kompatiblen Graphen auf dem Dashboard angezeigt. Erstellen Sie im Zweifel lieber mehrere kleine Annotation-Queries als eine große Abfrage.

Nachdem Sie die Konfiguration über den Knopf Add hinzugefügt und die neuen Einstellungen des Dashboards gespeichert haben, gehen Sie zurück in Ihr Dashboard. Falls Sie die Abfrage direkt bei der Einrichtung aktiviert haben, sehen Sie unter Umständen bereits automatisch erzeugte Kommentare in Ihren Graphen:

6. Dateien und Verzeichnisse

Pfad Bedeutung
/var/lib/grafana/plugins/ Hier sucht Grafana nach (neuen) Plugins. Jedes Plugin bekommt dabei ein eigenes Unterverzeichnis. Das Plugin von Checkmk legen Sie daher hier ab.