====== pnp4nagios con Icinga2 ======
Il sistema di riferimento è una **Debian 12 Bullseye**, dove è installato **Icinga2** versione **2.13.6** e **Icingaweb2** versione **2.11.4**. Le componenti software da installare non disponibili come pacchetto Debian sono:
* **pnp4nagios**
* **Icingaweb2 PNP module**
===== Abilitare i performance data in Icinga 2 =====
icinga2 feature list
icinga2 feature enable perfdata
systemctl restart icinga2.service
Vedere se vengono prodotti i file (ogni 30 secondi):
ls -la /var/spool/icinga2/perfdata/
* I collector di questi dati devono provvedere ad eliminarli.
* Il collector di pnp4nagios è **/usr/local/pnp4nagios/libexec/process_perfdata.pl**.
* Vedere più avanti come attivare NPCD, il demone che esegue il collector.
* I dati processati da NPCD vengono messi in **/usr/local/pnp4nagios/var/log/pnp4nagios/rrd/**.
===== Installing Icingaweb2 PNP module =====
wget -O icingaweb2-module-pnp-1.1.0.zip \
https://github.com/Icinga/icingaweb2-module-pnp/archive/v1.1.0.zip
unzip icingaweb2-module-pnp-1.1.0.zip
mkdir -p /usr/local/share/icingaweb2/
mv icingaweb2-module-pnp-1.1.0 /usr/local/share/icingaweb2/modules/pnp
ln -s /usr/local/share/icingaweb2/modules/pnp /usr/share/icingaweb2/modules
icingacli module enable pnp
===== Compiling and installing pnp4nagios =====
apt-get install build-essential
apt-get install librrds-perl
cd /usr/local/src/
wget -O pnp4nagios-0.6.27-5.zip \
https://github.com/pnp4nagios/pnp4nagios/archive/refs/tags/v0.6.27-5.zip
unzip pnp4nagios-0.6.27-5.zip
cd pnp4nagios-0.6.27-5/
./configure
Verificare che la configurazione vada a buon fine, in particolare:
General Options:
------------------------- -------------------
Nagios user/group: nagios nagios
Install ${prefix}: /usr/local/pnp4nagios
PNP HTML dir: /usr/local/pnp4nagios/share
Config dir: /usr/local/pnp4nagios/etc
rrdtool binary: /usr/bin/rrdtool Version 1.7.2
RRDs Perl Modules: (Version 1.7002) FOUND
RRD Files stored in: /usr/local/pnp4nagios/var/log/pnp4nagios/rrd
process_perfdata Logfile: /usr/local/pnp4nagios/var/log/pnp4nagios/perfdata.log
NPCD perfdata stored in: /usr/local/pnp4nagios/var/spool/pnp4nagios
fontconfig cache dir: /var/cache/pnp4nagios
Web Interface Options:
------------------------- -------------------
HTML URL: http://localhost/pnp4nagios
http user/group: www-data,www-data
put pnp http config File: /etc/apache2/conf-enabled/pnp4nagios.conf
Effettuare la compilazione:
make all
Ci sono questi due install target:
^ make install | This installs the main program and HTML files. |
^ make fullinstall | This installs the main program, runlevel scripts, config and HTML files. |
# Installare tutto quanto in /usr/local/pnp4nagios/.
cd /usr/local/src/pnp4nagios-0.6.27-5/
make install
# Creare un link per la configurazione in /etc/.
ln -s /usr/local/pnp4nagios/etc /etc/pnp4nagios
# Creare la configurazione per Apache.
cp -p sample-config/httpd.conf /etc/apache2/conf-available/pnp4nagios.conf
# Creare file di autenticazione e aggiustare il percorso del AuthUserFile.
htpasswd -c /etc/apache2/pnp4nagios_htpasswd.users admin
vi /etc/apache2/conf-available/pnp4nagios.conf
# Abilitare la configurazione di Apache.
a2enconf pnp4nagios
systemctl reload apache2
==== Verifica requisiti ====
Verificare che esista il file **/usr/local/pnp4nagios/share/install.ignore.not**.
Visitare l'URL **%%http:/pnp4nagios/%%**. Verificare che compaia la scritta **//Your environment passed all requirements//**.
Se tutto va bene rinominare il file:
mv /usr/local/pnp4nagios/share/install.ignore.not /usr/local/pnp4nagios/share/install.ignore
==== Demone NPCD ====
Creare la configurazione per il demone NPCD:
cd /usr/local/src/pnp4nagios-0.6.27-5/
cp -p sample-config/config_samples/npcd.cfg /etc/pnp4nagios/npcd.cfg
chown nagios:nagios /etc/pnp4nagios/npcd.cfg
Modificare il file **/etc/pnp4nagios/npcd.cfg** e impostare la directory dove il demone dovrà prelevare i perfdata:
#perfdata_spool_dir = /usr/local/pnp4nagios/var/spool/pnp4nagios
perfdata_spool_dir = /var/spool/icinga2/perfdata
Il ''make install'' ha creato la Systemd unit **/usr/lib/systemd/system/npcd.service**, abilitare e avviare il servizio:
systemctl enable --now npcd.service
===== Web Resources =====
* https://icinga.com/docs/icinga2/latest/doc/13-addons/#pnp
* https://icinga.com/docs/icinga2/latest/doc/14-features/#writing-performance-data-files
* https://docs.pnp4nagios.org/pnp-0.6/install
* https://docs.pnp4nagios.org/pnp-0.6/modes