Nagiosgraph
Nagiosgraph è un modulo (add-on) per Nagios. Consente la rappresentazione grafica di parametri acquisiti attraverso Nagios. Carico di CPU, traffico, delle porte di rete, occupazione di storage e quant’altro.
Non è l’unico strumento diponibile per la rappresentazione grafica dei dati di Nagio, ma è probabilmente è il più frequentemente usato.
Nagiosgraph utilizza le informazioni acquisite da Nagios e li inserisce in file di database con meccanismi di round-robin database (RRD) (service_perfdata_file=/tmp/perfdata.log). La gestione grafica avviena attraverso script CGI (/usr/lib/nagiosgraph/cgi-bin) per la visualizzazione come pagine web, preferibilmente embedded nella interfaccia grafica di Nagios.
Installazione.
Come la maggior parte dei programmi Linux, Nagiosgrah può essere installato partendo dai sorgenti, la successiva compilazione e configurazione. Nel caso trattato però, per una installazione su Suse Linux Enterprise Server 11 SP2, si è preferito ricorrere ai file binari (package).
L’uso del package è preferibile, come indicato nel file di README di Nagiosgraph, quando anche Nagios e Apache sono installati da package, come nel presente caso (in generale anche per redhat, fedora, centos –package .rpm- e debian, ubuntu –package .deb-)
In particolare, SLES (Suse) usa directory differenti da quelle canoniche. Ad esempio l’installazione canonica di Nagiosgraph fa riferimento alla cartella /usr/local/nagios/libexec che in Suse diventa /usr/lib/nagiosgraph.
Il file README fornisce diverse utili informazioni, come i prerequisiti (per Suse rddtool, perl, plerl-GD), note sulla configurazione e sulle personalizzazioni.
Nagiosgraph non è incluso nella distribuzione standard di SLES, occorre installarlo da qualche repository (es. http://download.opensuse.org/repositories). In questo caso il package rpm è nagiosgraph-1.4.4-1.suse1130.noarch.rpm ottenuto da http://rpm.pbone.net . Questo package contiene script per una prima configurazione. L’installazione è semplice: rpm –Uv nagiosgraph-1.4.4-1.suse1130.noarch.rpm
Configurazione.
La configurazione minima presente nel package rpm va già bene per alcuni risultati, in ogni modo è bene tenere presente il funzionamento di Nagiosgraph.
I dati vengono raccolti da Nagios, collezionati in files RRD (round-robin) e analizzati per mezzo di definizioni descritte in un file chiamato map. Il processo può essere immediato o batch, quest’ultimo richiede meno risorse di CPU e I/O, è in genere consigliabile ed è quello preconfigurato (service_perfdata_file_processing_interval=30).
La configurazione di questa parte di processo è fatta agendo sui files di configurazione di Nagios /etc/nagios/nagios.conf
Questo è quanto inserito dalla installazione del package. Attenzione esiste già una definizione di process_performance_data=0 che va cancellata o commentata.
process_performance_data=1
service_perfdata_file=/tmp/perfdata.log
service_perfdata_file_template=$LASTSERVICECHECK$||$HOSTNAME$||$SERVICEDESC$||$S
ERVICEOUTPUT$||$SERVICEPERFDATA$
service_perfdata_file_mode=a
service_perfdata_file_processing_interval=30
service_perfdata_file_processing_command=process-service-perfdata-for-nagiosgraph
insert.pl è un processo perl che raccoglie i dati Nagios, li analizza in funzione delle descrizioni presenti in map.
I dati acquisiti sono processati da script e visualizzati con l’UR http://servernagios/nagiosgraph/cgi-bin/show.cgi. Lo script http://servernagios/nagiosgraph/cgi-bin/showconfig.cgi può essere utilizzato per verificare la configurazione di Nagiosgraph e il suo funzionamento.
Occorre, infine, definire un metodo per inserire (embed) i display di Nagiosgraph in Nagios. Un modo è inserire nell’elenco degli host e dei servizi una icona di collegamento che quando cliccata apre una pagina web con il grafico desiderato.
La definizione per l’azione collegata all’icona è in /etc/nagios/objects/templates.cfg ed ha una forma simile a questa:
define service {
name graphed-service
action_url /nagiosgraph/cgi-bin/show.cgi?host=$HOSTNAME$&service=$SERVICEDESC$
}
La voce action_url va aggiunta alla definizione del servizio del quale si desidera ottenere il grafico.
define service{
use generic-service,graphed-service
host_name xen-server
service_description CPU Load
check_command check_nrpe!check_load
}