Un efficiente monitoraggio della propria rete con costi minimi può essere effettuato installando soluzioni open-source Nagios e NagiosQL su Linux CentOS.
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...
Uno strumento molto funzionale è Nagios, un software con licenza GNU (General Public Licence) che permette il monitoraggio completo della rete.
Essendo uno strumento non semplicissimo come setup, sono nati alcuni tool per rendere la sua configurazione un po' più accessibile... uno di questi è NagiosQL, un'interfaccia web che facilita l'impostazione dei parametri di Nagios.
Aggiornamento del sistema
Prima di procedere con l'installazione di Nagios, verifichiamo di avere il nostro Linux aggiornato tramite il comando yum.
# yum update
Installazione del repository RPM forge
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), scaricare l'ultima versione:
# wget http://dag.wieers.com/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
Installare il modulo rpm appena scaricato:
# rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.i386.rpm
Installazione componenti richiesti da Nagios e NagiosQL
I componenti richiesti per il corretto funzionamento sono Linux Apache + MySQL + PHP (acronimo LAMP) che vengono installati tramite il comando yum.
# yum install httpd mod_ssl php mysql mysql-server php-mysql php-pear
Attivare i servizi:
# chkconfig httpd on
# service httpd start
# chkconfig mysqld on
# service mysqld start
Installazione di Nagios
Installare 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 nelle seguenti directory:
-
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 plugin 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
Configurazione di Apache
Modificare il file di configurazione di Apache impostando come ServerName il nome dell’host, supponiamo "monitor".
# vi /etc/httpd/config/httpd.conf
Impostare successivamente la password per accedere a Nagios.
# htpasswd -bcm /etc/nagios/htpasswd.users nagiosadmin password
Digitare dal browser l'indirizzo http://IP_Address_Nagios per verificare che la pagina sia visualizzata.
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 viene prelevato tramite il comando wget e lo copiamo nella directory di appoggio precedentemente creata (/install).
# wget https://sourceforge.net/project/platformdownload.php?group_id=134390
Scompattare e copiare i files in /var/www/html.
# tar -xzvf nagiosql303.tar.gz
# cp nagiosql3/ /var/www/html/ -R
Directory Structure
Come riportato dal sito di NagiosQL, deve essere creata una struttura di directory come riportato nello schema:
/etc/nagiosql /etc/nagiosql/hosts /etc/nagiosql/services /etc/nagiosql/backup /etc/nagiosql/backup/hosts /etc/nagiosql/backup/services
Configurazione nagios.cfg
Il file /etc/nagios/nagios.cfg deve essere corretto per riflettere la directory structure appena creata.
Creare i file a cui fare riferimento nel file 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 file 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 file 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
Configurazione di NagiosQL
Nel browser digitare l'indirizzo http://IP_Address_Nagios/nagiosql3 per accedere all'installazione guidata.
Cliccare sull’opzione Start new installation per procedere con la configurazione di NagiosQL.
Il sistema effettua un controllo sull’ambiente operativo.
Dopo aver verificato che la pagina non presenta nessun errore, specificare la password di MySQL, se precedentemente impostata, e del campo "Initial NagiosQL Password". Cliccare su Next.
La procedura di setup imposta la configurazione richiesta e visualizza lo stato finale nella maschera Finishing Setup.
Per procedere ulteriormente è necessario rimuovere prima il file precedentemente creato in /var/www/html/nagiosql3/install/ENABLE_INSTALLER.
# rm /var/www/html/nagiosql3/install/ENABLE_INSTALLER
Cliccare su Finish, per completare il setup. Si presenta la pagina di login.
A questo punto l’installazione è terminata. Prima di procedere con la configurazione di Nagios, è necessario effettuare alcune modifiche alla configurazione di NagiosQL per farlo funzionare correttamente con Linux CentOS.
Procedere 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 con il seguente valore: /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/nagios/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 resta che definire hosts, printers, switches e tutto ciò che si vuole monitorare.
Troubleshooting
Errore “Permission Denied”
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
Viene visualizzato l'errore:
“Nagios Binary found but not executable, please check permissions!”
Per risolvere il problema:
# chmod +x /usr/bin/nagios
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?
Gli errori riportati sembrano dovuti ad una configurazione errata o incompleta.
Duplicate definition found for host ‘localhost’
Verifica che il parametro di controllo non sia già stato impostato in qualche altro service/host.
Restart failed – Nagios command file not found or no execute permissions
Controllare che il file /usr/bin/nagios abbia i permessi di esecuzione (chmod +x) e che in nagiosql il parametro del campo "Nagios process file" in Administration -> Domains sia impostato a "/var/nagios/nagios.pid".
cfg_file:/etc/nagios/objects/commands.cfg etc devono essere commentate subito o finita l’installazione?
Vanno commentate non appena viene installato NagiosQL per impostare i path corretti di configurazione.
Ciao... io sono fermo a questo punto.
1.effettuare il login a NagiosQL
2.andare su Administration -> Domains
3.editare (Modify) la voce localhost
4.il parametro Nagios command file deve avere il path impostato con il seguente valore: /var/log/nagios/rw/nagios.cmd
5.il parametro Nagios binary file deve avere il path impostato a /usr/bin/nagios
6.il parametro Nagios process file deve avere il path impostato a /var/nagios/nagios.pid
7.cliccare su Save
Cliccando su save mi dice:
Warning, at least one error occurred. Please check!
/etc/nagiosql/ is not writeable
/etc/nagiosql/hosts/ is not writeable
/etc/nagiosql/services/ is not writeable
/etc/nagiosql/backup/ is not writeable
/etc/nagiosql/backup/hosts/ is not writeable
/etc/nagiosql/backup/services/ is not writeable
/etc/nagios/nagios.cfg is not writeable
/etc/nagios/cgi.cfg is not writeable
Ho gia provato a ridare i comandi per i permessi ma non mi cambia niente. Help pls
Come riporta il messaggio, l'errore sembra dovuto ai permessi di scrittura. Verifica che l'utente utilizzato abbia i diritti correttamente assegnati.
anche io come loro ho problemi con i permessi mi sa che c'è qualcosa che non va bene nella guida ho io non sono stato capace di seguirla bene boh!! potresti aiutarmi a risolvere'grazie per il tuo lavoro
Se sorgono problemi con i permessi, è necessario verificare attentamente come vengono assegnati ai vari file e directory.
Non basta assegnare i permessi tramite chmod, bisogna assegnare anche l'ownership tramite il comando chown a apache.nagios.
Se ricevi il messaggio "... is not writeable" il motivo dipende da quello. Verifica le impostazioni che hai effettuato.
Ciao,
ho seguito con attenzione la tua guida ed è tutto ok o almeno sembra dai vari check. L'unica cosa è che da nagiosql non riesco a riavviare il demone di nagios mi ritorna sempre: Restart failed - Nagios daemon was not running ho controllato posizione pid, nagios.cms, file conf etc etc e sembra tutto ok. Sono su centos 6. Any clue? Grazie!
Hai verificato che il file /usr/bin/nagios abbia i permessi di esecuzione (chmod +x) e che in nagiosql il parametro del campo “Nagios process file” in Administration -> Domains sia impostato a /var/nagios/nagios.pid?
Ciao,
ho un problema nell'installazione visuale (via browser), nella finestra di Termine Setup ho una problema con la seguente riga:
Database server connection (NagiosQL user) Fallito.
Grazie in anticipo!
Hai verificato i permessi sul database e digitato le giuste credenziali?
Cosa ti dice il log?
Ciao!
Tutto perfetto, ho seguito alla lettera quanto hai esposto e ha funzionato tutto.
Vorrei chiederti come faccio a cancellare definitivamente degli host e a non farli ripresentare su monitoring.
Grazie ancora!!
Un saluto
Fabio