Icinga 2 Graphen mit PNP unter Ubuntu 14.04 Trusty

Aus Thomas-Krenn-Wiki
Wechseln zu: Navigation, Suche
Hinweis: Bitte beachten Sie, dass dieser Artikel / diese Kategorie sich entweder auf ältere Software/Hardware Komponenten bezieht oder aus sonstigen Gründen nicht mehr gewartet wird.
Diese Seite wird nicht mehr aktualisiert und ist rein zu Referenzzwecken noch hier im Archiv abrufbar.

Der folgende Artikel erklärt, wie eine vorhandene Installation von Icinga 2 unter Ubuntu Server 14.04 mit PNP4Nagios, für die Darstellung von Performance-Daten in Form von Graphen, ergänzt wird.[1] Die Authentifizierung von PNP4Nagios erfolgt über htpasswd einer vorhandenen Icinga 2 Classic UI Installation.

PNP-Installation

Das Paket pnp4nagios wird aus den Paketquellen installiert:

apt-get install --no-install-recommends pnp4nagios rrdcached

Icinga 2 perfdata aktivieren

Bei Icinga 2 muss noch das perfdata Feature aktiviert werden.

# icinga2 feature enable perfdata

Anschließend Icinga 2 neustarten.

# service icinga2 restart

PNP-Konfiguration

Nach der Konfiguration der Icinga 2 Instanz wird nun PNP konfiguriert.

Apache Konfigurationsdatei

In der apache.conf von PNP4Nagios muss die Zeile AuthUserFile editiert werden, damit die Authentifizierung via Icinga 2 Classic UI erfolgen kann.

vi /etc/pnp4nagios/apache.conf

Den Pfad von /etc/nagios3/ auf /etc/icinga2-classicui/ ändern.

#AuthUserFile /etc/nagios3/htpasswd.users
AuthUserFile /etc/icinga2-classicui/htpasswd.users

Perfdata Verzeichnis ändern

In der Datei /etc/pnp4nagios/npcd.cfg muss folgende Zeile an perfdata angepasst werden.

#perfdata_spool_dir = /var/spool/pnp4nagios/npcd/
perfdata_spool_dir = /var/spool/icinga2/perfdata

npcd Daemon Konfiguration

Anschließend wird der npcd Daemon konfiguriert. In der Datei /etc/default/npcd wird nun Run="no" auf Run="yes" geändert. Anschließend kann der Dienst gestartet werden.

# service npcd start

rrdcached Konfiguration

Verzeichnis erstellen und Besitzer ändern:

mkdir -p /var/cache/rrdcached
chown nagios: /var/cache/rrdcached

Die folgenden Zeilen in der Datei /etc/default/rrdcached ergänzen:

OPTS="-w 1800 -z 1800 -j /var/cache/rrdcached -s nagios -m 0660 -l unix:/var/run/rrdcached.sock"

Apache user zur nagios Gruppe hinzufügen

usermod -a -G nagios www-data

Apache Symlink erstellen

Ein Symlink mit dem Namen pnp4nagios.conf wird im Ordner sites-enabled angelegt und Apache neu geladen.

/etc/apache2/sites-enabled# ln -s /etc/pnp4nagios/apache.conf pnp4nagios.conf
/etc/apache2/sites-enabled# service apache2 reload

PNP4Nagios Konfiguration anpassen

In der config.php im Verzeichnis /etc/pnp4nagios/ müssen zwei Variablen geändert werden.

vi /etc/pnp4nagios/config.php
#$conf['nagios_base'] = "/cgi-bin/nagios3";
$conf['nagios_base'] = "/cgi-bin/icinga";
[...]
#$conf['RRD_DAEMON_OPTS'] = '';
$conf['RRD_DAEMON_OPTS'] = 'unix:/var/run/rrdcached.sock';

Ebenso die process_perfdata.cfg im identischen Verzeichnis.

vi /etc/pnp4nagios/process_perfdata.cfg
RRD_DAEMON_OPTS = unix:/var/run/rrdcached.sock

Icinga 2 Konfiguration

Die Konfiguration von PNP4Nagios ist nun abgeschlossen und wir wechseln nun ins Verzeichnis /etc/icinga2/conf.d/ um in Icinga 2 die PNP-Funktionen zu ergänzen.

template.conf

In der template.conf Datei werden folgende Zeilen am Anfang ergänzt.

vi /etc/icinga2/conf.d/templates.conf
template Host "pnp-hst" {
        action_url = "/pnp4nagios/graph?host=$HOSTNAME$' class='tips' rel='/pnp4nagios/popup?host=$HOSTNAME$&srv=_HOST_"
}
template Service "pnp-svc" {
        action_url = "/pnp4nagios/graph?host=$HOSTNAME$&srv=$SERVICEDESC$' class='tips' rel='/pnp4nagios/popup?host=$HOSTNAME$&srv=$SERVICEDESC$"
}

Im selben Template wird bei der Sektion "template Host" der Parameter import "pnp-hst" ergänzt.

template Host "generic-host" {
  max_check_attempts = 5
  check_interval = 1m
  retry_interval = 30s
  check_command = "hostalive"
  import   "pnp-hst"
}

Ebenso wird bei der Sektion "template Service" der Parameter import "pnp-svc" ergänzt.

template Service "generic-service" {
  max_check_attempts = 5
  check_interval = 1m
  retry_interval = 30s
  import "pnp-svc"
}

Daemons neustarten

Um die Konfiguration abzuschließen werden die Daemons neugestartet. Anschließend kann PNP4Nagios mit dem Icinga 2 Classic UI verwendet werden.

service rrdcached restart && service npcd restart && service icinga2 restart

Icinga Web 2 Konfiguration

PNP4Nagios kann auch mit der neuen Oberfläche Icinga Web 2 verwendet werden. [2] Im Nachfolgenden wird aufgezeigt wie die Installation und Konfiguration erfolgt.

Installation des PNP4Nagios Moduls

Das PNP4Nagios Modul für Icinga Web 2 können Sie als zip-File von Icinga Developer downloaden[3] oder alternativ vom Icinga Repository auf Github.[4]

  1. Wechseln Sie in das Modul-Verzeichnis /usr/share/icingaweb2/modules von Icinga Web 2
  2. Download des zip-Files via wget
    wget https://exchange.icinga.org/icinga/PNP/files/1255/icingaweb2-module-pnp.zip
    unzip icingaweb2-module-pnp.zip

Konfiguration

Die Konfiguration des PNP4Nagios Moduls erfolgt im Webinterface von Icinga Web 2.

Anzeige der Graphen

Troubleshooting

Bei der Installation des PNP4Nagios Paketes ist es zu Änderungen der Gruppenzugehörigkeit des Apache2 Users gekommen. Es äußert sich beim Login in einer Fehlermeldung, dass Icinga Web 2 nicht konfiguriert sei und deshalb erneut konfiguriert werden muss. Mittels folgender Vorgehensweise lässt sich dieses Problem beheben.

Fehlermeldung keine Konfiguration vorhanden

  1. Nach der Installation von PNP4Nagios
    root@icinga2:~# id www-data
    
    uid=33(www-data) gid=33(www-data) groups=33(www-data),112(nagios)
    
  2. Hinzufügen zur Gruppe icingacmd
    sudo usermod -a -G icingacmd www-data
    
  3. Hinzufügen zur Gruppe icingaweb2
    sudo usermod -a -G icingaweb2 www-data
    
  4. Nach der Rechte-Anpassung
    root@icinga2:~# id www-data
    
    uid=33(www-data) gid=33(www-data) groups=33(www-data),112(nagios),114(icingacmd),116(icingaweb2)
    
  5. Icinga 2 und Apache2 neustarten
    service icinga2 restart && service apache2 restart
    

Icinga 2 Classic UI Konfiguration

Im nachfolgenden Abschnitt wird die Integration von pnp4nagios in das Icinga 2 Classic UI beschrieben.

Mit der oben beschriebenen PNP Konfiguration ist Icinga 2 Classic UI in Kombination mit pnp4nagios bereits funktional. Um jedoch auch noch die Vorschau der Graphen als Mouseover-Effekt wie in folgendem Screenshot zu erhalten sind noch zwei Konfigurationsschritte erforderlich.

Mouse-Over-Effekt pnp4nagios

status-header.ssi kopieren

Zuerst wird die Datei "status-header.ssi" in den Icinga 2 SSI-Ordner kopiert.

# cd /usr/share/icinga2/classicui/ssi
/usr/share/icinga2/classicui/ssi# cp /usr/share/doc/pnp4nagios/examples/ssi/status-header.ssi .

Editieren der Datei /etc/icinga2-classicui/cgi.cfg

Abschließend muss in der cgi.cfg noch der Pfad des Eintrages physical_html_path abgeändert werden:[5]

# cd /etc/icinga2-classicui/
/etc/icinga2-classicui# vi cgi.cfg
#physical_html_path=/usr/share/icinga
physical_html_path=/usr/share/icinga/htdocs

Weitere Informationen

Einzelnachweise

  1. Installing Icinga2, pnp4nagios, NRPE Agent and Graphite in Debian Wheezy (tipstricks.itmatrix.eu)
  2. PNP4Nagios - Performancecharts für Icinga (netways.de)
  3. PNP4Nagios (exchange.icinga.org)
  4. PNP4Nagios module for Icinga Web 2 (github.com)
  5. Icinga 2 Classic UI status-header.ssi no loading (mail-archive.com)


Foto Thomas Niedermeier.jpg

Autor: Thomas Niedermeier

Thomas Niedermeier, Abteilung Communications / Knowledge Transfer bei Thomas-Krenn, absolvierte an der Hochschule Deggendorf sein Studium zum Bachelor Wirtschaftsinformatik. Seit 2013 ist Thomas bei Thomas-Krenn beschäftigt und kümmert sich hier vor allem um das TKwiki. Er ist ein begeisterungsfähiger, technisch interessierter Linux und Mac Nutzer, fährt im Winter gerne Ski und geht im Sommer gern ins Schwimmbad.


Das könnte Sie auch interessieren

Braintower SMS Gateway S Advanced
HP 1910 Switche mit Icinga überwachen
Icinga 2 NRPE Plugin