Um meine Infrastruktur zu überwachen nutze ich eine Instanz der Checkmk Raw Edition, die bei mir in einem Docker Container läuft. Um schnell einen Überblick über die eigene Infrastruktur und bestimmte Kennzahlen zu erhalten, bietet sich das Open-Source-Tool Grafana an. Hiermit kann man sich schöne Dashboards bauen, die mit Hilfe von diversen Visualisierungen Werte grafisch aufbereitet anzeigen können.
Leider lassen sich Werte aus Checkmk standardmäßig nur mit der kostenpflichtigen Checkmk Enterprise Edition in Grafana einbinden. Es gibt jedoch einen Trick, wie dies auch mit der kostenlosen Raw Edition funktioniert.

Hinweis: Durch die folgenden Änderungen wird die Authentifizierung von PNP4Nagios in Checkmk deaktiviert. Damit kann jeder auf die PNP4Nagios-Oberfläche zugreifen, der den Checkmk-Server im Netzwerk erreichen kann. Die Änderungen sollten also nur durchgeführt werden, wenn der Checkmk-Server noch anderweitig abgesichert ist.
Sollte jemand einen Weg finden das Deaktivieren der Authentifizierung zu umgehen, würde ich mich über einen Hinweis freuen.

Schritt 1: Vorbereitung von Checkmk

Da die Raw Edition von Checkmk auf Nagios basiert und diese auch PNP4Nagios beinhaltet, kann ein API-Plugin für PNP4Nagios installiert werden. Hierüber kann dann Grafana auf die Daten aus Checkmk zugreifen. Die Installation gestaltet sich wie folgt:

  • Wechseln in das Installationsverzeichnis von PNP4Nagios eurer Checkmk-Instanz
    /opt/omd/sites/<Instanzname>/share/pnp4nagios/htdocs/application/controllers
  • Download des Plugins von GitHub
    wget https://raw.githubusercontent.com/lingej/pnp-metrics-api/master/application/controller/api.php
  • Anpassen der PNP4Nagios-Konfiguration
    • Wechsel zu /opt/omd/sites/<Instanzname>/etc/pnp4nagios
    • In der Datei config.php die folgenden Änderungen vornehmen
      • Zeile 103: $conf['auth_enabled'] = TRUE; ändern zu
        $conf[‘auth_enabled’] = FALSE;
      • Zeile 109: $conf['auth_multisite_enabled'] = TRUE; ändern zu $conf['auth_multisite_enabled'] = FALSE;
    • Wechsel zu /opt/omd/sites/<Instanzname>/etc/pnp4nagios/config.d
    • Umbenennen von authorisation.php zu authorisation.php_old
    • Umbenennen von cookie_auth.php zu cookie_auth.php_old
  • Neustart von omd per omd restart

Schritt 2: Einrichtung in Grafana

Damit Grafana auf die Daten aus PNP4Nagios zugreifen kann, müsst ihr in Grafana das PNP-Plugin installieren und konfigurieren. Dazu geht ihr wie folgt vor:

  • Installation des Plugins
    grafana-cli plugins install sni-pnp-datasource
  • Hinzufügen einer neuen PNP-Datasource
Konfiguration der Grafana PNP Datasource

Schritt 3: Spaß haben!

Nun ist alles fertig eingerichtet. Sofern alles geklappt hat, können beim Erstellen von neuen Graphen in einem Dashboard nun die Daten aus der PNP-Datasource verwendet werden.