Icinga Web 2 und icingaweb2-module-grafana

Diesen Beitrag schrieb ich 5 Jahre und 11 Monate zuvor; die nachfolgenden Ausführungen müssen heute nicht unbedingt noch genau so funktionieren. Behalte das beim Lesen (und vor allem: beim Nachmachen!) bitte stets im Hinterkopf.

Geschätzte Lesezeit: 2 Minuten

Die letzten Wochen waren nicht einfach und sehr von $ARBEIT dominiert: Überstunden, Büro bis tief in die Nacht, und sogar der Ostersonntag blieb nicht verschont. Entsprechend still wurde es hier, bis hin zu einbrechenden Besucherstatistiken – aber wer schaut schon auf die Zahlen, ne? ;)

In meinem Notiz-Folder ist eine ganze Menge an Daten aufgelaufen: Artikel, die ich noch schreiben, Ideen, die ich unbedingt umsetzen und Bugreports, die ich dringend stellen muss… okay, und und irgendwo sollte ich anfangen. Meine Lieblings-Twitter-Bubble legte mir Bloggen ans Herz, und ich tue immer, was die mir sagen. Naja, fast ;) Also erzähle ich euch heute etwas von einem neuen Modul für Icinga Web 2 – okay, so neu ist es eigentlich nicht mehr, aber es erreicht nun so langsam einen Stand, der den Produktivgang erlauben könnte. Die Rede ist von icingaweb2-module-grafana, und wie der Name vermuten lässt: es ermöglicht die Einbindung von Grafana-Graphen innerhalb von Icinga Web 2.

openHAB Grafana

Nun weiß ich ja nicht, wie das bei euch ist – aber ich persönlich kann mir mein Monitoring ohne die gleichzeitige Einblendung von Metriken gar nicht mehr vorstellen. Zu Zeiten – es ist tatsächlich schon fast anderthalb Jahre her – stützte ich mich hierbei auf icingaweb2-module-graphite, welches brav seinen Dienst tat. Doch scheint hier keine Entwicklung mehr stattzufinden, obgleich es ganz sicher Potential gäbe. Genau im richtigen Moment sprang mich also das Grafana-Modul an. Es erfordert sich

  • eine Icinga 2-Installation nebst Icinga Web 2,
  • eine lauffähige Grafana-Installation und
  • als Backend idealerweise Graphite oder InfluxDB. Außerdem
  • sollte Icinga 2 erfolgreich an das Backend angebunden sein. Tipp: sowohl enable_send_thresholds als auch enable_send_metadata auf true setzen – so können in den hübschen Graphen beispielsweise auch WARN- und CRIT-Schwellenwerte verwendet werden!

Graph „load“ in Grafana

Installiert ist es schnell – folgt der Anleitung, die Carsten auf GitHub pflegt. Ist das Plugin aktiv und korrekt konfiguriert, können die beiden vorbereiteten Dashboards in Grafana importiert werden. Damit ist die grundsätzliche Funktionalität gewährleistet – für die meisten Services, die Performance-Daten liefern, dürfte jetzt bereits ein Graph angezeigt werden. Spannender wird es dann, wenn die Darstellungen eigenen Belangen entsprechend angepasst werden sollen – es ist mir gelungen, die drei Metriken für load in einem Graphen zu vereinen, und auch den CRIT-Schwellenwert für die mailq einzublenden – aber (noch) bin ich in Sachen Grafana etwas unbeholfen, und meine Lösung dürfte weit entfernt von sauber und ordentlich sein. So habe ich kurzerhand

  • das Dashboard icinga2-default per Save as als icinga2-unixe dupliziert,
  • innerhalb dieses Dashboards dann eigene Panels definiert und
  • diese über Configuration → Grafana Graphs anhand ihrer Panel-ID in Icinga Web 2 eingebunden.
  • Die Panel-ID erfährt man übrigens, indem man auf Share klickt und sie sich aus dem Link abgreift (wenn ihr einen sinnvolleren Weg kennt: gerne her damit!).

Auf längere Sicht werde ich das Modul auch auf den Produktivsystemen einsetzen – ich verspreche mir einiges davon. Zuvor muss ich aber meine Grafana-Skills verbessern, hier habe ich noch zu viele WTF-Momente – und einen deutlich zu hohen Wildwuchs an Panels ;) Einzig noch schicker fände ich, wenn ich innerhalb Icinga Web 2 auch direkt zoomen könnte – in meiner openHAB 2-Installation hab ich das so umgesetzt, und das gefällt mir noch ein klitzekleines bisschen besser. Habt ihr das Modul schon ausprobiert?