Installare Nagios e NagiosQL su Linux CentOS

nagios1

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.

nagios2

Poichè l'installazione è un po' lunga, ricordarsi tutti i passaggi necessari per il corretto funzionamento del sistema potrebbe non essere immediato. Di seguito viene riportata la procedura adottata per l’installazione del sistema utilizzando come OS Linux CentOS 5.3.

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

nagios3

Installare il modulo rpm appena scaricato:

# rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.i386.rpm

nagios4

 

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

nagios5

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

nagios6

Impostare successivamente la password per accedere a Nagios.

# htpasswd -bcm /etc/nagios/htpasswd.users nagiosadmin password

nagios7

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:

  1. Webserver (Apache 1.x o superiore)
  2. PHP 5 o superiore
  3. MySQL 4.1 o superiore
  4. Nagios 2 o superiore
  5. PEAR Module: HTML_Template_IT 1.1 o superiore
  6. PHP Extension: mysql
  7. Javascript enabled nel browser

 

Installazione template PEAR

L'installazione del template viene effettuata con il comando pear:

# pear install HTML_Template_IT

nagios8

 

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

nagios9

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.

nagios10

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.

nagiosql

Il sistema effettua un controllo sull’ambiente operativo.

nagiosql1

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.

nagiosql2

La procedura di setup imposta la configurazione richiesta e visualizza lo stato finale nella maschera Finishing Setup.

nagiosql3

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.

nagiosql4

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:

  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
  8. 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

Nagios NagiosQL Linux CentOS 1

11 Comments

  1. Davide Cavanna 12/10/2009
    • Paolo 13/10/2009
  2. pietro 23/03/2011
    • Paolo 24/03/2011
  3. alessio 24/07/2011
    • Paolo 25/07/2011
  4. Giorgio 26/08/2011
    • Paolo 26/08/2011
  5. sasa11s 13/05/2012
    • Paolo 14/05/2012
  6. Fabio 14/02/2013