
Una volta che la rete è dotata di un sistema di monitoraggio tipo Nagios, un tocco in più può essere dato al sistema dotandolo di una interfaccia grafica che rappresenti i dati raccolti in forma di grafici.
In questo modo è più semplice generare della reportistica chiara e leggibile da sottoporre a personale non necessariamente tecnico.
1. REQUISITI
Per seguire questa procedura di installazione è richiesta la disponibilità di un sistema Nagios configurato e operativo (per installare Nagios fare eventualmente riferimento al post “Nagios + NagiosQL”).
I componenti richiesti per la completa installazione sono i seguenti:
- Cacti
- mySQL
- Architecture Plugin
- Nagios Plugin Cacti
- Nagios
2. INSTALLAZIONE
Per installare cacti utilizziamo il comando yum:
# yum install cacti
Innanzitutto per permettere l’accesso remoto al sistema, bisogna modificare il file di configurazione cacti.conf:
# vi /etc/httpd/conf.d/cacti.conf

Editare il file di configurazione cacti.php per impostare i parametri del database:
# vi /var/www/cacti/include/config.php

Successivamente creare il database Cacti in mysql:
# mysql –p
mysql> create database cacti;

Creare l’utente e la password per accedere al database mySQL appena generato. Ricordiamoci che i parametri devono coincidere con i valori impostati nel file precedente /var/www/cacti/include/config.php.
mysql> CREATE USER ‘cacti’@’localhost’ IDENTIFIED BY ‘cacti00’;
mysql> GRANT ALL PRIVILEGES ON cacti.* TO ‘cacti’@’localhost’;
mysql> FLUSH PRIVILEGES;

Dalla directory di installazione /var/www/cacti, importare la struttura del database in mysql:
Terminata l’importazione della struttura, riavviare il servizio httpd.
# service httpd restart
Ultima operazione è impostare il polling via cron.
# yum install vixie-cron
# vi /etc/crontab
Per abilitare la corretta visualizzazione dei grafici, poller.php deve essere eseguito almeno una volta dalla directory /var/www/cacti per creare i files .rdd.
# cd /var/www/cacti
# php poller.php

Assegnare allo user cacti l’ownership della directory /var/www/cacti/rra e abilitare il daemon crond.
# chown cacti:cacti rra –R
# chkconfig crond on
# service crond start
3. CONFIGURAZIONE DI CACTI
Dal browser accedere alla configurazione di Cacti digitando l’indirizzo:
http://IP_address/cacti/install/index.php
![]()
Viene visualizzata la pagina introduttiva di Cacti. Click su Next.

Come Type of Installation selezionare New Install. Verificare inoltre che i parametri riportati siano quelli impostati altrimenti non sarà possibile connettersi al database. Cliccare poi su Next.

Nella schermata successiva verificare che tutti valori siano corretti e poi cliccare su Finish.

Per determinare quale versioni di RRDTool e net-snmp sono installate sul proprio sistema, digitare dalla riga di comando:
# rpm –qa net-snmp
# rpm –qa rddtool
A questo punto se il tutto va a buon fine, si presenta la schermata di User Login. Digitare come username admin e come password admin, valori di default.

Confermate le credenziali cliccando su Login, viene richiesto il cambio della password. Questo si verifica solamente al primo logon.

Cliccando su Save la configurazione dei parametri è terminata. Viene visualizzata la schermata principale dell’applicazione.

4. INSTALLAZIONE PLUGIN ARCHITECTURE
Poichè lo scopo è di collegare Cacti a Nagios, scaricare e scompattare il file relativo al plugin.
# wget http://mirror.cactiusers.org/downloads/plugins/cacti-plugin-0.8.7e-PA-v2.6.zip
Il contenuto della directory files-0.8.7e va copiato nella directory /var/www/cacti.
# cp cacti-plugin-arch/files-0.8.7e/* /var/www/cacti -R
Effettuata la copia, editare il file global.php per impostare i parametri del database.
# vi /var/www/cacti/include/global.php

Identificare sempre nel file global.php la stringa $plugins[] ed impostare il nome del plugin come npc e modificare la stringa $config[‘url_path’] inserendo come path /cacti/.

Ultimo step è l’importazione della nuova struttura del database pa.sql (contenuta nel file scaricato) nel db cacti in mySQL:
# mysql –p cacti < pa.sql
![]()
5. INSTALLAZIONE PLUGIN NAGIOS
Il plugin Cacti per Nagios richiede l’installazione del modulo php-json che non è disponibile in formato rpm.
installazione modulo JSON
L’installazione di questo modulo viene effettuato tramite il comando pecl disponibile tramite il package php-pear. Come prima operazione, quindi, rendiamo disponibile al sistema il comando pecl.
# yum install php-pear
Se si vuole scaricare il modulo, comunque non richiesto per l’installazione, procedere digitando il comando:
# pecl download json

L’installazione vera e propria del modulo json avviene tramite il comando:
# pecl install json

Verificato che tutto sia andato a buon fine (confermato da install OK), bisogna creare nella directory /etc/php.d il file json.ini:
# vi /etc/php.d/json.ini
Aggiungere l’istruzione seguente e salvare il file:
; php-json package – http://pecl.php.net/package/json
extension=json.so
![]()
Riavviare il servizio httpd.
# service httpd restart
Per testare se il il modulo json funziona correttamente, digitare l’istruzione:
# php -r ‘var_dump(function_exists(“json_encode”));’

Se il risultato che compare è come quello in figura, l’installazione si è conclusa con successo.
installazione plugin Nagios
Scaricare il plugin npc e scompattarlo in /var/www/cacti/plugins.
# wget http://www.constructaegis.com/downloads/npc-2.0.4.tar.gz
# cp npc-2.0.4.tar.gz /var/www/cacti/plugins
# tar -xzvf npc-2.0.4.tar.gz
Siccome il plugin npc appena installato non compare nell’interfaccia web di Cacti, attivare, dalla pagina web, la voce per la gestione dei plugin: Console -> User Management –> Admin.
Nella parte inferiore della pagina sono visualizzati i Realm Permissions dove la voce Plugin Management non è selezionata.

Attivare l’opzione e cliccare su save. Questo ci riporta nella pagina console.
Nelle lista delle opzioni, la voce Configuration nella parte sinistra dello schermo contiene adesso la voce Plugin Management.

L’installazione del plugin avviene cliccando la voce Plugin Management. Nella videata vengono elencati i plugin disponibili per l’installazione che, nel nostro caso, si riduce al solo npc. Cliccare su Install per effettuare l’installazione.

Una volta installato, il plugin deve essere abilitato cliccando su Enable.

Quando il plugin viene abilitato, compare l’icona dell’applicazione appena installata npc nella schermata principale.
![]()
Prima di poter visualizzare i dati raccolti da Nagios è necessario impostare alcuni parametri del sistema.
Da Console –> Settings cliccare sul tab NPC
Impostare i parametri evidenziati con i valori che rispecchiano l’ambiente operativo.
Enable Remote Commands
Nagios Command File Path
Nagios URL
Date Format
Time Format

6. INSTALLAZIONE E CONFIGURAZIONE DI NDOUTILS
Poichè cacti deve raccogliere le informazioni da Nagios e quindi connettersi, è richiesta l’installazione del package ndoutils (rpmforge repository).
# yum install ndoutils
Sono necessari due moduli aggiuntivi ndomod.o e nd2db che è possibile recuperare e configurare dal package ndoutils.
# wget http://internode.dl.sourceforge.net/sourceforge/nagios/ndoutils-1.4b7.tar.gz
# tar –xzvf ndoutils-1.4b7.tar.gz
# cd ndoutils-1.4b7
Procedere con la configurazione per generare gli eseguibili e relativi file di configurazione.
# ./configure

# make

Queste operazioni hanno generato i file eseguibili e di configurazione richiesti. Per un corretto funzionamento, copiare questi file nelle directory corrette:
# cp src/ndomod-3x.o /usr/bin/ndomod.o
# cp src/ndo2db-3x /usr/bin/ndo2db
# cp config/ndomod.cfg /etc/nagios/
# cp config/ndo2db.cfg /etc/nagios/
Editare il file ndomod.cfg ed impostare i valori riportati in figura.
# vi /etc/nagios/ndomod.cfg

Editare il file ndo2db.cfg ed impostare i valori riportati in figura.
# vi /etc/nagios/ndo2db.cfg

Editare il file nagios.cfg e modificare i parametri come riportati in figura:
# vi /etc/nagios/nagios.cfg

Terminate le configurazioni, riavviare i servizi ndoutils e nagios.
# service ndoutils start
# service nagios restart
Dal browser accedere a Cacti e selezionare l’opzione npc. Se tutto funziona correttamente, il sistema è adesso collegato a Nagios mostrando in formato grafico i dati raccolti.

Tramite questa applicazione la visualizzazione dei dati risulta più chiara, più leggibile e più intuitiva.




Mi chiamo Paolo e sono un sistemista informatico. In questo blog si parla di informatica applicata in ambito aziendale. 





Ciao,
ho seguito il tuo tutorial: installato Nagios (non nagiosQL3) e per ora monitorizzo solo il ping e HTTP verso server remoti.
Poi ho installato Cacti e quindi i plugin per integrare Nagios.
Mi pare di aver seguito il tutto al meglio, ma quando clicco sul TAB NPC ottengo una pagina bianca…
Cosa avrò sbagliato?
eheheh, come al solito mi era scappato questo (error era in off!)
Fatal error: require_once() [function.require]: Failed opening required ‘include/auth.php’ (include_path=’.:’) in /var/www/cacti/plugins/npc/npc.php on line 22
L’importante è che alla fine tutto funzioni correttamente!
ora ho un altro problema: i grafici non si formano, manca l’immagine… uffi!!!
Ora i grafici per localhost sono riuscito a farli configurarli, ma come faccio per quelli di un server remoto?
La procedura descritta è relativa all’installazione e configurazione di cacti per visualizzare i dati da Nagios, quindi al plugin NPC. Se necessiti approfondimenti specifici, ti consiglio di leggere la documentazione presente sul sito di Cacti e/o effettuare qualche ricerca in rete.
Per visualizzare i grafici bisogna verificare che il parametro “RRDTool Default Font” sia configurato correttamente.
Per configurare nuovi grafici per server remoti Console -> New Graph -> Create New Host.
Piano piano ci arrivo, sono riuscito a creare altri grafici cacti
Ora devo comprendere come configurare snmp sul server remoto affinchè cacti e nagios possano ricevere le informazioni.
Poi devo capire come fare per far formare i grafici su cacti sugli host monitorati da nacios, che vedo correttamente tramite il plugin su cacti.
Per ricevere info dal server su Nagios, puoi usare NSClient++ per Windows e NRPE per Linux.
Cacti riporta attualmente qualche problema con l’utilizzo di RRDTool 1.4.
Grazie, gentilissimo!
Inoltre hai pure creato un tutorial su NRPE: http://nolabnoparty.com/monitorare-macchine-linux-remote-con-nagios-nrpe/
Ciao,
la cosa interessantissima sarebbe conoscere il modo di avere l’integrazione dei sistemi su server diversi
Mi spiego meglio:
Cacti e’ installato su un server 2003 mentre nagios e’ installato su un server linux.
Come e’ possibile fare parlare le due macchine ?
Grazie
Ciao, la procedura ha funzionato alla grande tranne per un piccolo dettaglio:
All’interno dei files .php dentro la directory ho dovuto sostituire le chiamate alla funzione “clean_html_output” con “htmlspecialchars” per evitare parecchi errori e malfunzionamenti sull’interfaccia web cacti.
Grazie mille per averci regalato il tuo tempo e fatto risparmiare tanti grattacapi a noi!
Francesco
Grazie per la precisiazione.
Ciao Paolo,
tutto perfetto l’unico inconveniente alla fine della procedura continuo ad avere il seguente problema quando seleziono il TAB NPC.
The requested URL /cacti/plugins/npc/plugins/npc/npc.php was not found on this server.
Ho rifatto la macchina due volte con Centos 5.6 e lo stesso risultato. Npc risulta correttamente installato.
grazie
Hi Paul,
I have been running into an issue with npc-2.0.4 on CentOS 5.6 x86_64. The issue is Nagios status on NPC tab which comes off but it is still able to populate data in ndoutils and shows on NPC tab.
Could you please suggest something? For more details please refer this thread : http://forums.cacti.net/viewtopic.php?f=14&t=42236&start=15
Thanks,
Shah
Ciao,
una volta terminata l’installazione del plugin npc, cacti mi ripresenta la pagina di installazione. Clicco su continua e quando appare la pagina del login di cacti i campi per inserire le pass non ci sono piu.
Hai idea del perche?
Sandro
Verifica i permessi e che tutti i componenti richiesti siano installati e configurati correttamente… a volte i problemi sorgono per errori banali che spesso sfuggono. Disabilitando il plugin npc riesci a logarti correttamente?