Magazine Informatica

Graficizzare i risultati dei check di Nagios mediante pnp4nagios su Centos 6

Creato il 28 ottobre 2013 da Nightfly

Un sistema di monitoring degno di questo nome deve prevedere la possibilità di tracciare dei grafici in base ai risultati dei check automatici da esso effettuati. Purtroppo Nagios non supporta tale funzionalità in maniera nativa, ma, per fortuna, sono disponibili tutta una serie plugin pensati appositamente per il suddetto NMS, in grado di svolgere la funzione in oggetto.

Il plugin che ho scelto prende il nome di pnp4nagios ed è scaricabile da qui.

Nagios, NMS, pnp4nagios, graph, gcc, perl, PHP, pdf, perfdata, rrd, round robin data

Una volta completato il download vediamo come installare e configurare il tutto.

Preparazione della macchina ed installazione di pnp4nagios

Per prima cosa scompattiamo la tarball mediante il comando:

[[email protected] ~]# tar -xzvf pnp4nagios-0.6.21.tar.gz

Come prerequisiti per la compilazione degli eseguibili presenti all'interno della directory appena creata è necessario installare sul nostro sistema il compilatore (gcc), una libreria perl, ovvero perl-time-Hires (utile per testare la configurazione ad installazione avvenuta) ed una libreria PHP (necessaria per l'esportazione dei grafici in formato pdf):

[[email protected] ~]# yum install gcc

[[email protected] ~]# yum install perl-time-Hires

[[email protected] ~]# yum install php-gd

Ad installazione avvenuta, posizioniamoci nella dir appena creata

[[email protected] ~]# cd pnp4nagios-0.6.21

e lanciamo i comandi:

[[email protected] pnp4nagios-0.6.21]# ./configure

[[email protected] pnp4nagios-0.6.21]# make all

[[email protected] pnp4nagios-0.6.21]# make fullinstall

In particolare, il primo comando serve a verificare che il sistema sia dotato di tutti gli applicativi necessari per la compilazione dei sorgenti relativi a pnp4nagios; il secondo comando esegue la compilazione vera e propria mentre il terzo comando installa il plugin sulla nostra macchina. La dir target dell'installazione sarà la seguente:

/usr/local/pnp4nagios/

Configurazione dell'interfaccia Web di pnp4nagios

Per ragioni di sicurezza occorre dapprima disabilitare la pagina install.php, semplicemente rinominandola:

[[email protected] ~]# mv /usr/local/pnp4nagios/share/install.php /usr/local/pnp4nagios/share/install.php.ignore

In seguito dobbiamo linkare la dir share di pnp4nagios all'interno di /var/www/html, in modo che sia raggiungibile via Web:

[[email protected] ~]# ln -s /usr/local/pnp4nagios/ /var/www/html/pnp4nagios

Inoltre, bisogna fare in modo che il suddetto plugin utilizzi lo stesso file di autenticazione HTTP utilizzato da Nagios:

[[email protected] ~]# cat /etc/httpd/conf.d/nagios.conf | grep AuthUserFile

Tale file (per default) dovrebbe essere il seguente:

/etc/nagios/passwd

Ergo sostituiamo la entry presente nativamente su /etc/httpd/conf.d/pnp4nagios.conf con alla voce AuthUserFile con /etc/nagios/passwd

Ricarichiamo la configurazione di httpd per rendere effettive le suddette modifiche:

[[email protected] ~]# service httpd reload

Configurazione di Nagios

Supponendo che la modalità di funzionamento di pnp4nagios sia la synchronous, le modifiche da apportare alla configurazione di Nagios (/etc/nagios/nagios.conf) sono le seguenti:

1) Abilitare i perfdata, sostituendo:

process_performance_data=0

con:

process_performance_data=1

2) Decommentare le diciture:

host_perfdata_command=process-host-perfdata
service_perfdata_command=process-service-perfdata
All'interno del file /etc/nagios/objects/commands.cfg occorre sostituire le diciture:

'process-host-perfdata' command definition
define command{
   command_name   process-host-perfdata
   command_line   /usr/bin/printf "%b" "$LASTHOSTCHECK$t$HOSTNAME$t$HOSTSTATE$t$HOSTATTEMPT$t$HOSTSTATETYPE$t$HO$
   }
'process-service-perfdata' command definition
define command{
   command_name   process-service-perfdata
   command_line   /usr/bin/printf "%b" "$LASTSERVICECHECK$t$HOSTNAME$t$SERVICEDESC$t$SERVICESTATE$t$SERVICEATTEMP$
   }

con:

define command {
   command_name   process-service-perfdata
   command_line   /usr/bin/perl /usr/local/pnp4nagios/libexec/process_perfdata.pl
}
define command {
   command_name   process-host-perfdata
   command_line   /usr/bin/perl /usr/local/pnp4nagios/libexec/process_perfdata.pl -d HOSTPERFDATA
}

Ciò si rende necessario per consentire a pnp4nagios di processare le perfdata provenienti dai plugin utilizzati per effettuare i check (se le supportano).

Per quanto riguarda il file /etc/nagios/objects/template.cfg si rende necessario aggiungere la stringa:

action_url   /pnp4nagios/index.phh/graph?host=$HOSTNAME$&srv=_HOST_

nella definizione degli host, e la stringa:

action_url   /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$

nella definizione dei servizi.

A configurazione di Nagios completata lanciamo un restart del demone in questione:

[[email protected] ~]# service nagios restart

Verifica della configurazione di Nagios e pnp4nagios

Per effettuare i check della configurazione relativa a Nagios ed al suo plugin pnp4nagios è possibile scaricare lo script perl verify_pnp_config:

[[email protected] ~]# wget http://verify.pnp4nagios.org/verify_pnp_config

Rendiamolo eseguibile:

[[email protected] ~]# chmod +x  verify_pnp_config

Lanciamo dunque lo script:

[[email protected] ~]# ./verify_pnp_config -m sync -c /etc/nagios/nagios.cfg -p /usr/local/pnp4nagios/etc

e se il check da risultato positivo significa che la procedura di configurazione è andata a buon fine.

Come ulteriore check, verifichiamo che nella dir /usr/local/pnp4nagios/var/perfdata vi sia una dir per ogni host su cui è stata abilitata l'action_url e che tali directory contengano dei file con estensione *.rrd (round robin data) ed *.xml.

Nel caso in cui queste dir non contengano i suddetti file (recanti nomenclatura del tipo nomeservizio.rrd e nomeservizio.xml) significa che i plugin utilizzati per effettuare i check non supportano le perfdata.

Infine, all'interno della directory /usr/local/pnp4nagios/share/templates.dist sono presenti le pagine Web contenenti la struttura dei grafici per i plugin nativi di Nagios. Se avete installato qualche plugin aggiuntivo, solitamente viene resa disponibile per il download anche la pagina Web per i grafici ad esso associati. Tale pagina dovrà essere salvata all'interno della directory /usr/local/pnp4nagios/share/templates.

Fine del post, alla prossima.


Potrebbero interessarti anche :

Ritornare alla prima pagina di Logo Paperblog

Possono interessarti anche questi articoli :