apt-get install graphviz php7.3-sqlite unzip curl
/usr/sbin/icinga2 feature enable livestatus
systemctl restart icinga2
systemctl status icinga2

Download und entpacken des NagVis Pakets in ein separates Verzeichnis, zum Beispiel unter /home/administrator/nagvis

wget http://www.nagvis.org/share/nagvis-1.9.25.tar.gz
tar xvfz nagvis-1.9.25.tar.gz
cd nagvis-1.9.25

Nun führen wir das Installationsskript des NagVis Paketes aus. Bis auf den Pfad des „Nagios Base Directory“ müssen wir eigentlich nichts anpassen. Da wir Icinga2 verwenden und nicht Nacgios geben wir den entsprechenden Pfad an, normalerweise „/usr/share/icinga2“.

./install.sh

Jetzt kopieren wir die Apachekonfiguration in das Apache-Conf Verzeichnis und aktivieren die NagVis Konfiguration und laden den Apache einmal neu.

cp /etc/apache2/conf-available/nagvis.conf /etc/apache2/sites-available/
systemctl restart apache2
/usr/sbin/a2ensite nagvis
systemctl reload apache2

In der nagvis.ini.php Datei müssen wir NagVis jetzt noch mitteilen das wir das Feature „livestatus“ verwenden wollen um die entsprechenden Daten anzuzeigen. Hier ändern wir die Voreinstellung „;socket=“unix:/usr/local/nagios/var/rw/live““ in „socket=“unix:/var/run/icinga2/cmd/livestatus““ um.

joe /usr/local/nagvis/etc/nagvis.ini.php

Hiermit ist die Installation von NagVis schon fertig und wir können uns bereits über die URL https://SERVERNAME/nagvis mit dem standard Benutzer admin und dem Kennwort admin an der Webgui anmelden.

Jetzt wollen wir als nächstes die NagVis-Integration für das Icinga Web 2 Modul installieren und konfigurieren so dass man auch von Icinga web 2 aus auf die NagVis Karten zugreifen kann.

cd /usr/share/icingaweb2/modules
wget https://github.com/Icinga/icingaweb2-module-nagvis/archive/v1.1.1.zip
unzip v1.1.1.zip
mv icingaweb2-module-nagvis-1.1.1 nagvis
icingacli module enable nagvis

Die Konfiguration ist hier etwas umfangreicher, da wir in der INI-Datei von NagVis einige nagios-spezifische Einstellungen auf Icinga Web 2 anpassen müssen. Dies gilt für Anzeigeparameter aber auch für die Authentifizierung.

Da man bei der Anzahl der Parameter und der fülle an Optionen innerhalb der INI-Datei schnell mal den Überblick verlieren kann erstellen wir vorher eine Sicherheitskopie der INI-Datei. Anschließend können wir diese im Editor anpassen.

cd /usr/local/nagvis/etc/
cp nagvis.ini.php nagvis.ini.php.bak
joe /usr/local/nagvis/etc/nagvis.ini.php

Wir setzen in insgesamt drei Sektionen einige Parameter wie folgt.

In der Sektion [global]:

authmodule="CoreAuthModIcingaweb2"
authorisationmodule="CoreAuthorisationModIcingaweb2"
logonmodule="LogonIcingaweb2"

In der Sektion [paths]:

htmlcgi = "/icingaweb2"

In der Sektion [defaults]:

backend="live_1"

urltarget = "_top"
hosturl="[htmlcgi]/monitoring/host/show?host=[host_name]"
hostgroupurl="[htmlcgi]/monitoring/list/hostgroups?hostgroup_name=[hostgroup_name]"
serviceurl="[htmlcgi]/monitoring/service/show?host=[host_name]&service=[service_description]"
servicegroupurl="[htmlcgi]/monitoring/list/servicegroups?servicegroup_name=[servicegroup_name]"
mapurl="[htmlcgi]/nagvis/show/map?map=[map_name]"
headermenu="0"
stylesheet="icingaweb-nagvis-integration.css"

Mit der letzten Angabe haben wir ein spezielles CSS für die Anzeige im Icinga Web 2 Modul angegeben. Dieses müssen wir noch in das NagVis Verzeichnis kopieren. Anschließend müssen wir in der Icinga Web 2 Config noch den path Parameter eintragen in der Sektion [cookie] eintragen.

cp /usr/share/icingaweb2/modules/nagvis/public/css/icingaweb-nagvis-integration.css /usr/local/nagvis/share/userfiles/styles/
joe /etc/icingaweb2/config.ini

Jetzt wenden wir noch einen „Patch“ an damit die Authentifizierung an NagVis über das Icinga Web 2 Modul korrekt funktioniert. Dazu tragen wir direkt nach dem Hauptkommentar die unten angegebenen Zeilen ein.

joe /usr/local/nagvis/share/server/core/functions/index.php
/**
* Icinga Web 2 integration
*/
use Icinga\Application\EmbeddedWeb;
require_once 'Icinga/Application/EmbeddedWeb.php';
require_once EmbeddedWeb::start('/usr/share/icingaweb2', '/etc/icingaweb2')
->getModuleManager()
->getModule('nagvis')
->getLibDir() . '/nagvis-includes/init.inc.php';

Zum Abschluss starten wir den Apache einmal neu.

systemctl restart apache2

Damit wir ein paar vordefinierte NagVis-Karten direkt im Menü des Icinga Web 2 Moduls einblenden können benötigen wir noch eine Konfigurationsdatei im NagVis-Modul für Icinga Web 2. Diese erstellen wir in einem neuen Unterordner in der Modulkonfiguration.

cd /etc/icingaweb2/modules/
mkdir nagvis

cdn nagvis
touch config.ini
joe config.ini

Der Inhalt definiert den Kartennamen und einen Text der im Menü als Link für die Karte auftauchen soll.

[global]
demo-ham-racks = Standard

[menu]
demo-load = Eintrag 1
demo-muc-srv1 = Eintrag 2
demo-geomap = Eintrag 3

Die „Kartennamen“ die auf der linken Seite der Zuweisung zu verwenden sind entsprechen den Dateinamen der Kartenkonfigurationen der NagVis-Karten. Diese kann man sich mit einem

ls /usr/local/nagvis/etc/maps/

anzeigen lassen. Der Inhalt entspricht nach der Standardinstallation dem folgenden Inhalt.

Im Icinga Web 2 Modul sieht das ganze nun so aus:

Weiter geht es an dieser Stelle mit dem Icinga Business Process.