Icinga Graphen mit PNP unter Ubuntu 12.04 Precise
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
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:
Einzelnachweise
- ↑ Setup PNP with Icinga (wiki.icinga.org)
- ↑ pnp4nagios modes (docs.pnp4nagios.org)
- ↑ Bulk mode mit npcdmod (dos.pnp4nagios.org)
- ↑ pnp4nagios in Classic UI (wiki.icinga.org)
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.
|