Integration von Icingaweb2 und Nagvis

Diesen Beitrag schrieb ich 6 Jahre und 9 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 Vorbereitung

Als Vorbereitung muss icinga2 so konfiguriert werden, dass das Feature livestatus aktiviert ist. Das geht so:

$ icinga2 feature list
Disabled features: api debuglog gelf icingastatus livestatus opentsdb perfdata syslog
Enabled features: checker command compatlog graphite ido-mysql mainlog notification statusdata
$ icinga2 feature enable livestatus
Enabling feature livestatus. Make sure to restart Icinga 2 for these changes to take effect.
$ service icinga2 restart

Die Installation

Ich habe mich dazu entschlossen, nagvis als Paket zu installieren; die Pakete sind leider etwas veraltet, für meine Zwecke aber erst einmal ausreichend.

$ apt-get install nagvis

icinga2 icingaweb2 nagvis Konfiguriert wird die Sache in /etc/nagvis/nagvis.ini.php; als Basis könnt ihr euch meine Version schnappen und an eure Bedürfnisse anpassen, wenn ihr möchtet. In jedem Fall muss defaultroot auf euren Hostnamen gesetzt werden. Achtet auch darauf, dass das Konfig-File dem richtigen User (in meinem Falle ist es www-data) gehört – es kommt sonst zu unschönen Seiteneffekten.

Das Webinterface

Das Paket bringt eine Konfiguration für den apache2 mit – an dieser musste ich nichts anpassen, einfach nur schauen, dass sie in /etc/apache2/conf.d liegt und den Webserver durchstarten. Hat alles funktioniert, ist das Webinterface nun bereits erreichbar unter http://YOUR_HOSTNAME/nagvis; der Default-Username ist admin und das dazu gehörige Passwort ist ebenfalls admin, und ganz klar: das ist das erste, was ihr ändern solltet. Doch zwei Webinterfaces – eines fürs Monitoring, eines für Nagvis – empfinde ich persönlich als zu frickelig. Doch: das ist ein lösbares Problem!

Die Integration

Glücklicherweise haben andere das ebenso gesehen und ein Plugin geschrieben, das die nahtlose Integration in Icingaweb2 ermöglicht. Das laden wir nun herunter und bringen es ins Spiel:

$ cd /usr/share/icingaweb2/modules/
$ git clone https://github.com/divetoh/icingaweb2-module-nagvis.git nagvis
Cloning into 'icingaweb2-module-nagvis'...
remote: Counting objects: 65, done.
remote: Total 65 (delta 0), reused 0 (delta 0), pack-reused 65
Unpacking objects: 100% (65/65), done.

Jetzt muss das Modul innerhalb von Icinga Web 2 lediglich noch aktiviert werden: → Configuration → Modules → nagvis → Reiter „Module: Nagvis“ → Klick auf enable

Und nun muss dem Modul eine passende Konfiguration mitgegeben werden: → Configuration → Modules → nagvis → Reiter „Nagvis“ → eintragen /nagvis/ und speichern

icinga2 icingaweb2 nagvis In der Navigationsleiste von Icingaweb2 erscheint der Eintrag Nagvis, so dass ihr fortan aus Icinga Web 2 direkten Zugriff auf die Nagvis-Graphen habt. Nun könnt ihr damit beginnen, eure Graphen zu konfigurieren – aber damit kann man locker Stunden zubringen, you have been warned ;-) Vor allem das Feature der Geomaps mag ich persönlich sehr gerne, auch Automaps sind bisweilen sehr nützlich – an dieser Stelle verweise ich auf die wirklich ausführliche Dokumentation, die wird euch weiter helfen.