Il dover controllare quotidianamente che tutti i sistemi siano perfettamente operativi è uno dei compiti più importanti per un sistemista. Il trascurare un’anomalia può portare a dei risvolti a volte drammatici… morto un disco del server in RAID5, il sistema continua a funzionare ma ovviamente il disco deve essere sostituito al più presto per evitare problemi. Ma se non verifichiamo lo stato degli array dei nostri server… cosa succede se oltre al primo, anche un secondo disco del RAID smette di funzionare?… vi consiglio di non sfidare la sorte…
In reti piccole o con pochi apparati, il controllo periodico si può fare “manualmente” ma se la rete presenta un numero importante di dispositivi “in produzione”, è opportuno utilizzare un qualche sistema di controllo automatico.
Uno strumento molto funzionale è Nagios, un software che permette il monitoraggio completo della rete.
Essendo uno strumento non semplicissimo come setup, sono nati alcuni tools per rendere la sua configurazione un po’ più accessibile… uno di questi che ho trovato utile è NagiosQL, un’interfaccia web che facilita l’impostazione dei parametri di Nagios.
Poichè l’installazione è un po’ lunga, ricordarsi tutti i passaggi necessari per il corretto funzionamento del sistema potrebbe non essere immediato, ecco la procedura che ho adottato per le mie installazioni utilizzando come OS Linux CentOS 5.3.
1. Aggiornamento del sistema
Prima di procedere con l’installazione di Nagios, verifichiamo di avere il nostro Linux aggiornato tramite il comando yum.
# yum update
2. Aggiunta del repository RPMForge
RPMForge è una collaborazione dei più noti packagers (Dag, Dries, etc.) che implementano i moduli rpm delle più note distribuzioni Linux. L’aggiunta di questo repository, ci permette di effettuare l’installazione di Nagios tramite yum.
Verifichiamo innanzitutto quale sia l’ultima release di rpmforge-release all’indirizzo http://dag.wieers.com/rpm/packages/rpmforge-release/ e poi procediamo con la sua installazione.
In una cartella precedentemente creata (/install nell’esempio), scarichiamo l’ultima versione:
# wget http://dag.wieers.com/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm

Installiamo il modulo rpm appena scaricato:
# rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.i386.rpm

3. Installazione dei componenti richiesti da Nagios + NagiosQL
I componenti richiesti per il corretto funzionamento sono Linux Apache + MySQL + PHP (acronimo LAMP) che installeremo tramite yum:
# yum install httpd mod_ssl php mysql mysql-server php-mysql php-pear
Attiviamo i servizi:
# chkconfig httpd on
# service httpd start
# chkconfig mysqld on
# service mysqld start
4. Installazione Nagios
Installiamo i componenti di Nagios richiesti per il suo funzionamento:
# yum install nagios nagios-devel nagios-plugins nagios-plugins-nrpe

Una volta installato, i componenti di Nagios risiedono in:
- cfg files: /etc/nagios
- web interface files: /usr/share/nagios
- log files: /var/log
- CGI files: /usr/lib/nagios/cgi
- plugins: /usr/lib/nagios/plugins
Per l’utilizzo di plugins che utilizzano il protocollo SNMP (tipo check_hpjd), è necessario installare ed abilitare il daemon net-snmp:
# yum install net-snmp net-snmp-utils
# chkconfig snmpd on
# service snmpd start
5. Configurazione di Apache
Modifichiamo il file di configurazione di Apache impostando come ServerName il nome del nostro host, supponiamo “monitor”:
# vi /etc/httpd/config/httpd.conf
![]()
Impostiamo la password per Nagios:
# htpasswd -bcm /etc/nagios/htpasswd.users nagiosadmin password
![]()
Digitiamo nel nostro browser l’indirizzo IP del nostro server Nagios per verificare che la pagina sia visualizzata.
6. Installazione componenti NagiosQL
I componenti richiesti da NagiosQL sono i seguenti:
-
Webserver (Apache 1.x o superiore)
-
PHP 5 o superiore
-
MySQL 4.1 o superiore
-
Nagios 2 o superiore
-
PEAR Module: HTML_Template_IT 1.1 o superiore
-
PHP Extension: mysql
-
Javascript enabled nel browser
Installazione template PEAR
L’installazione del template viene effettuata con il comando pear:
# pear install HTML_Template_IT

Installazione NagiosQL
Il file di installazione lo preleviamo tramite il comando e lo copiamo nella directory di appoggio (/install):
# wget https://sourceforge.net/project/platformdownload.php?group_id=134390

Scompattiamo e copiamo i files in /var/www/html:
# tar zxfv nagiosql303.tar.gz
# cp nagiosql3/ /var/www/html/ -R
Directory Structure
Come riportato dal sito di NagiosQL, deve essere creata una struttura di directories come riportato nello schema:
-
/etc/nagios
/etc/nagiosql/hosts /etc/nagiosql/services /etc/nagiosql/backup
/etc/nagiosql/backup/hosts /etc/nagiosql/backup/services
nagios.cfg
Il file /etc/nagios/nagios.cfg deve essere corretto per riflettere la directory structure appena creata.

Creiamo i files a cui facciamo riferimento in nagios.cfg:
# touch /etc/nagiosql/contacttemplates.cfg
# touch /etc/nagiosql/contactgroups.cfg
# touch /etc/nagiosql/contacts.cfg
# touch /etc/nagiosql/timeperiods.cfg
# touch /etc/nagiosql/commands.cfg
# touch /etc/nagiosql/hostgroups.cfg
# touch /etc/nagiosql/servicegroups.cfg
Permessi
Per permettere a NagiosQL di leggere e scrivere i files di configurazione di Nagios, bisogna impostare i permessi di accesso:
- Nagios Main Configuration Files
-
# chgrp apache /etc/nagios
-
# chgrp apache /etc/nagios/nagios.cfg
-
# chgrp apache /etc/nagios/cgi.cfg
-
# chmod 775 /etc/nagios
-
# chmod 664 /etc/nagios/nagios.cfg
-
# chmod 664 /etc/nagios/cgi.cfg
- NagiosQL Configuration
-
# chmod 6755 /etc/nagiosql
-
# chown apache.nagios /etc/nagiosql
-
# chmod 6755 /etc/nagiosql/hosts
-
# chown apache.nagios /etc/nagiosql/hosts
-
# chmod 6755 /etc/nagiosql/services
-
# chown apache.nagios /etc/nagiosql/services
- NagiosQL Backup Configuration
-
# chmod 6755 /etc/nagiosql/backup
-
# chown apache.nagios /etc/nagiosql/backup
-
# chmod 6755 /etc/nagiosql/backup/hosts
-
# chown apache.nagios /etc/nagiosql/backup/hosts
-
# chmod 6755 /etc/nagiosql/backup/services
-
# chown apache.nagios /etc/nagiosql/backup/services
- Impostare i permessi sui files già esistenti
-
# chmod 644 /etc/nagiosql/*.cfg
-
# chown apache.nagios /etc/nagiosql/*.cfg
- Il file binario Nagios deve essere eseguibile dall’utente di Apache:
# chown nagios.apache /usr/bin/nagios
# chmod 750 /usr/bin/nagios
- l’utente Apache deve poter accedere alla directory /var/www/html/nagiosql3/:
# chown apache:apache /var/www/html/nagiosql3/ -R
L’utente Nagios deve poter scrivere il file di comando nagios.cmd (verificare che in /etc/nagios/nagios.cfgi il parametro check_external_commands sia impostato a 1):
# chown nagios.apache /var/log/nagios/rw/ -R # se la directory rw non esiste, crearla manualmente.
# chmod 750 /var/log/nagios/rw/ -R
Per verificare se sono necessari ulteriori permessi, eseguire il comando:
# nagios -v /etc/nagios/nagios.cfg
Creazione file ENABLE_INSTALLER
L’installatione wizard di NagiosQL richiede l’esistenza del file ENABLE_INSTALLER in /var/www/html/nagiosql3/install/:
# touch /var/www/html/nagiosql3/install/ENABLE_INSTALLER
4. Installazione NagiosQL tramite Installation Wizard
Nel browser digitare l’indirizzo http://IP_ADDRESS/nagiosql3 per accedere all’installazione guidata:

Dopo aver verificato che la pagina non presenta nessun errore, specificare la password solo del campo “Initial NagiosQL Password“.

Nella pagina successiva viene visualizzato il riepilogo.

Per procedere ulteriormente è necessario rimuovere il file precedentemente creato in /var/www/html/nagiosql3/install/ENABLE_INSTALLER:
# rm /var/www/html/nagiosql3/install/ENABLE_INSTALLER
Cliccando su Finish, si presenta finalmente la pagina di login:

A questo punto l’installazione è terminata. Prima di procedere con la configurazione di Nagios, è necessario effettuare alcune modifiche configurazione di NagiosQL per farlo funzionare correttamente con Linux CentOS. Procediamo in questo modo:
- effettuare il login a NagiosQL
- andare su Administration -> Domains
- editare (Modify) la voce localhost
- il parametro Nagios command file deve avere il path impostato a /var/log/nagios/rw/nagios.cmd
- il parametro Nagios binary file deve avere il path impostato a /usr/bin/nagios
- il parametro Nagios process file deve avere il path impostato a /var/run/nagios.pid
- cliccare su Save
- ricordatevi di effettuare sempre il controllo della configurazione di Nagios tramite NagiosQL per essere sicuri che non ci siano errori. Con NagiosQL si utilizza: Tools -> Nagios Control -> Check configuration files.
A questo punto non ci resta che definire hosts, printers, switches e tutto ciò che vogliamo monitorare.
TROUBLESHOOTING
1. Tramite il comando Tools -> Nagios Control -> Check configuration files, viene visualizzato l’errore:
- Error: Unable to write to temp_path (‘/var/nagios/spool/checkresults’) – Permission Denied
- Error: Unable to write to check_result_path (‘/var/nagios/spool/checkresults’) – Permission Denied
E’ un semplice problema di permessi. Per il fix procedere così:
# chown nagios.apache /var/nagios/spool/checkresults/ -R
# chmod 774 /var/nagios/spool/checkresults/ -R
2. Viene visualizzato l’errore:
- Nagios Binary found but not executable, please check permissions!
Per risolvere il problema:
# chmod +x /usr/bin/nagios
- p@olo

Ciao ho seguito esattamente la tua procedura ma quando vado a fare un check dei configuration files mi appare questo errore
Warning: Duplicate definition found for host ‘localhost’ (config file ‘/etc/nagios/objects/localhost.cfg’, starting on line 25)
Error: Could not add object property in file ‘/etc/nagios/objects/localhost.cfg’ on line 29.
Error processing object config files!
ed in più non riesco a restartare nagios mi compare l’errore:
Restart failed – Nagios command file not found or no execute permissions
Scusa ma sono abbastanza ignorante su linux….
Grazie
Ps: quando vado ad editare il file /etc/nagios/nagios.cfg che deve essere corretto per riflettere la directory structure, le tre righe
cfg_file:/etc/nagios/objects/commands.cfg etc devono essere commentate subito o finita l’installazione?
Come linee guida per la verifica, controllare che:
1. I permessi sono stati assegnati agli utenti nagios & apache come indicato e il file di configurazione nagios.cfg è impostato correttamente (commentare i parametri prima di riavviare il daemon nagios).
2. Verificare la configurazione di nagios tramite i comando: nagios -v /etc/nagios/nagios.cfg
3. NagiosQL è configurato correttamente (path, commands) e quindi è possibile configurare nagios tramite il frontend.
4. Controllare che il file /usr/bin/nagios abbia i permessi di esecuzione (chmod +x).