Icinga Graphen mit PNP unter Ubuntu 12.04 Precise

Aus Thomas-Krenn-Wiki
Zur Navigation springen Zur Suche springen
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 Icinga 1.6.1 Installation unter Ubuntu 12.04 mit PNP4Nagios, für die Darstellung von Performance-Daten in Form von Graphen, ergänzt wird. Jegliche benötigte Software wird aus den Paketquellen installiert, das Selbst-Kompilieren von Software wird nicht benötigt.

PNP-Installation

Das Paket "pnp4nagios" wird aus den Paketquellen installiert:

:~$ sudo apt-get install pnp4nagios
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  apache2-mpm-prefork fontconfig fontconfig-config javascript-common libapache2-mod-php5 libcairo2
  libdatrie1 libdbi1 libfontconfig1 libfpdf-tpl-php libfpdi-php libgd2-xpm libjs-jquery-ui
  libkohana2-php libpango1.0-0 libpixman-1-0 librrd4 librrds-perl libt1-5 libthai-data libthai0
  libxcb-render0 libxcb-shm0 libxft2 libxpm4 libxrender1 php-fpdf php5-cli php5-common php5-gd
  pnp4nagios-bin pnp4nagios-web rrdtool ttf-dejavu ttf-dejavu-core ttf-dejavu-extra wwwconfig-common
Suggested packages:
  php-pear libgd-tools libjs-jquery-ui-docs libkohana2-modules-php ttf-baekmuk ttf-arphic-gbsn00lp
  ttf-arphic-bsmi00lp ttf-arphic-gkai00mp ttf-arphic-bkai00mp ttf2pt1 php5-suhosin rrdcached
  libgearman-client-perl libcrypt-rijndael-perl mysql-client postgresql-client
The following packages will be REMOVED:
  apache2-mpm-worker libgd2-noxpm
The following NEW packages will be installed:
  apache2-mpm-prefork fontconfig fontconfig-config javascript-common libapache2-mod-php5 libcairo2
  libdatrie1 libdbi1 libfontconfig1 libfpdf-tpl-php libfpdi-php libgd2-xpm libjs-jquery-ui
  libkohana2-php libpango1.0-0 libpixman-1-0 librrd4 librrds-perl libt1-5 libthai-data libthai0
  libxcb-render0 libxcb-shm0 libxft2 libxpm4 libxrender1 php-fpdf php5-cli php5-common php5-gd
  pnp4nagios pnp4nagios-bin pnp4nagios-web rrdtool ttf-dejavu ttf-dejavu-core ttf-dejavu-extra
  wwwconfig-common
0 upgraded, 38 newly installed, 2 to remove and 3 not upgraded.
Need to get 16.3 MB of archives.
After this operation, 44.6 MB of additional disk space will be used.
Do you want to continue [Y/n]?
[...]
Get:33 http://de.archive.ubuntu.com/ubuntu/ precise/universe pnp4nagios-bin amd64 0.6.13-1 [78.2 kB]
Get:34 http://de.archive.ubuntu.com/ubuntu/ precise/main rrdtool amd64 1.4.7-1 [369 kB]
Get:35 http://de.archive.ubuntu.com/ubuntu/ precise/universe pnp4nagios-web all 0.6.13-1 [1,099 kB]
Get:36 http://de.archive.ubuntu.com/ubuntu/ precise/universe pnp4nagios all 0.6.13-1 [6,118 B]
[...]

PNP-Konfiguration

Die Konfiguration von PNP bei einer Installation aus den Ubuntu-Repos unterscheidet sich vor allem in den Pfaden, unter denen sich die Konfigurationsdateien befinden:

:~# ls /etc/pnp4nagios/
apache.conf     config.php  pages                 rra.cfg
background.pdf  nagios.cfg  pnp4nagios_release    templates
check_commands  npcd.cfg    process_perfdata.cfg  templates.special

Nach einer Icinga-Installtion aus den Repos, läuft der Icinga Dienst unter dem User "nagios":

:~# ps -u nagios
  PID TTY          TIME CMD
 3890 ?        00:00:00 icinga
 3967 ?        00:00:00 npcd

Eine Änderung des Users und der Gruppe, unter dem der PNP-Dienst läuft, ist somit nicht mehr notwendig (im Gegensatz zum Kompilieren[1]).

In der "config.php" muss dennoch sicher gestellt sein, dass die Baseurl auf icinga zeigt:

:~# vi /etc/pnp4nagios/config.php
$conf['nagios_base'] = "/icinga/cgi-bin";

Ansonsten sind bei einer Installation aus den Repos keine weiteren Konfigurationsschritte für PNP mehr nötig. Das Zusammenspiel mit Icinga muss sehr wohl noch konfiguriert werden. Bei Bedarf können die Logging-Mechanismen aktiviert werden:

:/etc/pnp4nagios# vi npcd.cfg
log_type = file
log_file = /var/log/pnp4nagios/npcd.log
log_level = 2
:/etc/pnp4nagios# vi process_perfdata.cfg
#
# name of the log file
#
LOG_FILE = /var/log/pnp4nagios/perfdata.log

#
# Loglevel 0=silent 1=normal 2=debug
#
LOG_LEVEL = 2

Abschließend noch eine entscheidende Änderung: in der Datei "apache.conf" im PNP-Konfigurationsverzeichnis muss der Pfad für die htaccess-Datei angepasst werden:

:~# vi /etc/pnp4nagios/apache.conf
[...]
AuthUserFile /etc/icinga/htpasswd.users
[...]

Ohne diese Änderung schlagen die Aufrufe der Seite "$IP-ADRESSE/pnp4nagios" fehl.

PNP-Integration in Icinga

Vor der Konfiguration muss man sich für einen Verarbeitungsmodus von PNP festlegen.[2] Im folgenden Beispiel wird die Option "Bulk Mode with NPCD und npcdmod" eingesetzt:[3]

:~# cd /etc/icinga/
:/etc/icinga# vi icinga.cfg
process_performance_data=1
broker_module=/usr/lib/pnp4nagios/npcdmod.o config_file=/etc/pnp4nagios/npcd.cfg

Die Option "process_performance_data" wird auf "1" gesetzt, die Zeile mit dem "broker_module" wird neu hinzugefügt.

Apache Symlink

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

PNP-Funktionen überprüfen

PNP4Nagios Environment Tests

Um die Prüfungs-Webseite zu aktivieren, muss die Datei "install.ignore" temporär umbenannt werden:

:/usr/share/pnp4nagios/html# mv install.ignore install.ignore.orig

Danach erscheint beim Aufruf des PNP-Interfaces über "$IP-ADRESSE/pnp4nagios" eine Installations-Seite (vgl. Abbildung rechts). Wird die Datei wieder in "install.ignore" umbenannt, erscheint diese Seite nicht mehr.

Icinga-Konfiguration

Zuerst werden sogenannte "action_url templates" angelegt:[4]

:/etc/icinga/objects# vi pnptemplate.cfg
define host {
        name       pnp-hst
        register   0
        action_url /pnp4nagios/graph?host=$HOSTNAME$' class='tips' rel='/pnp4nagios/popup?host=$HOSTNAME$&srv=_HOST_
}

define service {
        name       pnp-svc
        register   0
        action_url /pnp4nagios/graph?host=$HOSTNAME$&srv=$SERVICEDESC$' class='tips' rel='/pnp4nagios/popup?host=$HOSTNAME$&srv=$SERVICEDESC$
}

Außerdem werden für die Host- und Service-Templates die PNP-Templates eingefügt:

:/etc/icinga/objects# vi generic-host_icinga.cfg
define host{
        name                            generic-host    ; The name of this host template
        use                             pnp-hst
  ...
:/etc/icinga/objects# vi generic-service_icinga.cfg
define service{
        name                            generic-service ; The 'name' of this service template
        use                             pnp-svc
  ...

Anschließend wird die Datei "status-header.ssi" noch in den Icinga SSI-Ordner kopiert:

:~# cd /usr/share/icinga/htdocs/ssi
:/usr/share/icinga/htdocs/ssi# cp /usr/share/doc/pnp4nagios/examples/ssi/status-header.ssi .

Zum Schluss muss noch geprüft werden, ob der npcd-Daemon schon gestartet ist:

sudo service npcd restart
npcd has been disabled in /etc/default/npcd.

Bei dieser Meldung muss die Datei '/etc/default/npcd' wie folgt abgeändert werden:

$ sudo vi /etc/default/npcd
# Default settings for the NPCD init script.

# Should NPCD be started? ("yes" to enable)
RUN="yes"
[...]

Anschließend wird npcd erneut gestartet:

sudo service npcd restart
 * Restarting Nagios Performance C Daemon (PNP4Nagios) npcd                    [ OK ]

Nach einem Restart von Apache sind die Performance-Graphen im Icinga-Classic-Interface sichtbar:

Icinga-pnp-integration.png

Einzelnachweise

  1. Setup PNP with Icinga (wiki.icinga.org)
  2. pnp4nagios modes (docs.pnp4nagios.org)
  3. Bulk mode mit npcdmod (dos.pnp4nagios.org)
  4. pnp4nagios in Classic UI (wiki.icinga.org)
Foto Georg Schönberger.jpg

Autor: Georg Schönberger

Georg Schönberger, Abteilung DevOps bei der XORTEX eBusiness GmbH, absolvierte an der FH OÖ am Campus Hagenberg sein Studium zum Bachelor Computer- und Mediensicherheit, Studium Master Sichere Informationssysteme. Seit 2015 ist Georg bei XORTEX beschäftigt und arbeitet sehr lösungsorientiert und hat keine Angst vor schwierigen Aufgaben. Zu seinen Hobbys zählt neben Linux auch Tennis, Klettern und Reisen.


Das könnte Sie auch interessieren

Call-Home-Service mit Icinga 2 nutzen
In NSClient++ eigene Plugins integrieren
MultiTech MTD-H5-2.0