Installare Nagios + NagiosQL su CentOS

nagios1

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

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), 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

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

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

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

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

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

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

firma

Hai già letto questi articoli?

About P@olo

Sistemista Informatico con diversi anni di esperienza in ambito aziendale, l'implementare "soluzioni IT che realmente soddisfano le esigenze" è la filosofia lavorativa adottata ed è la chiave della buona riuscita di un progetto. Rimani aggiornato sui prossimi articoli: iscriviti ai Feed RSS e alla Newsletter.