Installazione di Nagios e Centreon per il monitoraggio della rete.

There is a mobile optimized version of this page, view AMP Version.

network_monitorMonitorare la rete per garantire il corretto funzionamento di tutti i servizi, è un aspetto che ritengo molto importante in una infrastruttura di medie dimensioni.

Di software che svolgono questo compito ce ne sono molti, vi propongo una soluzione freeware e opensource basata sul celebre motore Nagios e Centreon come front-end.

Il sistema operativo da me scelto è “CentOS 6 64-bit minimal installation”

NB. Questa guida non è valida per sistemi operativi o architetture differenti.

nagioscentreon2

 

Terminata l’installazione del sistema operativo, possiamo procedere con l’aggiornamento dei pacchetti.

#yum update

Ora installiamo i package di sistema richiesti per il corretto funzionamento di Nagios.

# yum install system-config-firewall-tui system-config-network-tui wget ntp perl vixie-cron sudo

Disabilitiamo SELINUX e riavviamo per applicare le modifiche.

# vim /etc/selinux/config
    SELINUX=disabled
# reboot

Disabilitiamo anche il firewall

# system-config-firewall-tui

image

Attiviamo il client NTP e configuriamo il servizio.

# chkconfig ntpd on
# ntpdate pool.ntp.org
# service ntpd start

Ora scarichiamo il repository rpmforge ed installiamolo

# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

# rpm -Uvh rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

Installiamo tutti i pacchetti necessari all’ambiente

#yum -y update
#yum -y install make gcc php-pear* mysql mysql-server php-mbstring mysql-devel httpd net-snmp php-mysql gd-devel perl-GD perl-Config-IniFiles perl-Crypt-DES perl-Digest-HMAC perl-IO-Socket-INET6 perl-Net-SNMP php-ldap php-snmp perl-Socket6 php-gd php-xml mlocate sendmail openssh-clients php-posix mailx system-config-network-tui ntp rrdtool rrdtool-devel php-rrdtool perl-rrdtool net-snmp-utils bc

image

Abilitiamo e facciamo partire il servizio MySQL

#chkconfig mysqld on
#service mysqld start

Mettiamo in sicurezza MySQL, dobbiamo impostare la password e rispondere in modo affermativo alle richieste.

# mysql_secure_installation

Inseriamo nel file hosts il nome completo del server, in questo modo non dovremmo avere errori o avvisi da parte di Apache.

#vim /etc/hosts

   127.0.0.1 centreon.miodominio.it

Abilitiamo anche Apache

#chkconfig httpd on

#service httpd start

Apportiamo le adeguate modifiche agli utenti e ai gruppi

# groupadd nagios
# adduser nagios -g nagios
# passwd nagios

# usermod -G nagios nagios
# usermod -G apache,nagios apache

Scarichiamo ed estraiamo i pacchetti di Nagios,Centreon e NDOUTILS

#wget http://sourceforge.net/projects/nagios/files/ndoutils-1.x/ndoutils-1.4b9/ndoutils-1.4b9.tar.gz/download
#wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.3.tar.gz
#wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz
#wget
http://download.centreon.com/index.php?id=169

#tar zxvf nagios-3.2.3.tar.gz
#tar zxvf nagios-plugins-1.4.15.tar.gz
#tar zxvf centreon-2.3.4.tar.gz
#tar zxvf ndoutils-1-4b9.tar.gz

Entriamo nella directory di Nagios, compiliamolo ed installiamolo

#cd nagios-3.2.3
#./configure
#make all
#make install
#make install-init
#make install-commandmode
#make install-config
#make install-webconf

Creiamo l’utente nagiosadmin con password nagiosadmin

#htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

Abilitiamo il servizio Nagios

#chkconfig –add nagios
#chkconfig nagios on

Ora compiliamo ed installiamo il plugins

#cd nagios-plugins-1.4.15
#./configure
#make
#make install

Compiliamo ed installiamo NDOUtils

#cd ndoutils-1.4b9
#./configure –with-mysql-lib=/usr/lib64/mysql
#make
#make install
#make install-init

Il motore di Nagios è ora installato.

image

Adesso è il momento di installare Centreon

#cd centreon-2.3.4
#./install.sh -i –v

image

Rispondete in modo affermativo a tutte le richieste, ed accettare tutti i path di Centreon che vengono proposti, ad eccezione dei seguenti che devono essere cambiati:

RRD Path: /usr/lib64/perl5/RRDs.pm
PEAR Path: /usr/share/pear/PEAR.php
NDOMOD Path: /usr/local/nagios/bin/ndomod.o

Consiglio comunque di controllare l’effettiva esistenza di questi percorsi.

image

Terminata l’installazione andiamo a cambiare il file sudoers,permettendo ad apache di eseguire script.

#visudo-f /etc/sudoers

In questo file commentiamo la voce “Default requiretty”

Ora dobbiamo editare il file /etc/init.d/nagios inserendo un comando sopra la riga 133

#vim /etc/init.d/nagios

:set number

chmod 777 $NagiosCommandFile

image

Editiamo la configurazione del demone SNMP per permettere a Centreon di controllare lo stesso server.

#vim /etc/snmp/snmpd.conf

  rocommunity public 127.0.0.1

#service snmpd start
#chkconfig snmpd on

Abilitiamo ndo2db e permettiamo a Nagios di avere diritti sufficienti

#cp /usr/src/ndoutils-1.4b9/config/ndo2db.cfg-sample /usr/local/nagios/etc/ndo2db.cfg

#chown nagios:nagios /usr/local/nagios/etc/ndo2db.cfg

#chmod 775 /usr/local/nagios/etc/ndo2db.cfg

#chmod -R 775 /usr/local/nagios/var/

#chmod 775 /var/lib/centreon/*

#chkconfig ndo2db on
#service ndo2db start

L’installazione di centreon e del database di connessione è terminata.

Ora possiamo aprire il browser puntando all’indirizzo http://mioserver/centreon per terminare la configurazione.

image

image

Share

33 pensieri su “Installazione di Nagios e Centreon per il monitoraggio della rete.

  1. Ottimo!!!! Concordo anch’io, l’unica guida veramente fatta bene!
    Complimenti!
    Se non sono troppo indiscreto, hai fatto anche un manuale operativo?

    Grazie!!!

    Fabio

      • Grazie!
        Vorrei poter monitorare un servizio attivo su un server e capire quando va giù.
        Ho già aggiunto il file mib con le trap snmp, cerco di creare un servizio con il comando check_centreon_process ma mi restituisce l’errore:
        No output returned from plugin.
        Ho attivato anche il servizio snmp sul server interessato (Windows) in read ONLY.
        Se hai un esempio da mandarmi ti sarei molto grato!

        Fabio
        fabio.tufi@libero.it

        • Ciao, che tipo di servizio devi monitorare? Comunque è possibile che sul server windows devi installare nsclient.

          Sempre verso quel server, stai monitorando altro?

          • Il server è un server dove gira Domino di IBM e devo monitorare lo stato del servizio:
            nserver.exe.

            Grazie per l’aiuto!

          • Ciao, ho provato ad utilizzare il comando check_centreon_processes ed effettivamente anche a me restituiva lo stesso errore.
            Ho risolto in questo modo:
            Configuration,commands,check_centreon_process
            Dalla definizione del comando ho tolto il parametro “-n”

            Comunque in generale quando devo fare il debug di un comando o un servizio, provo prima a lanciarlo collegandomi in ssh al server centreon, in questo caso ho lanciato questo comando per verificare l’esecuzione del processo store.exe
            /usr/local/nagios/libexec/check_centreon_snmp_process -H 10.101.126.3 -p store.exe -C miaCommunity

  2. Perfetto ora funziona tutto!
    Grazie per i tuoi consigli molto preziosi e per la tua professionalità!

    Grazie infinite

    Fabio

  3. Ciao Luca,

    sono Fabio Tufi.

    Spero di non disturbarti chiedendoti un’ulteriore delucidazione.

    Sto configurando un servizio che controlli un FTP con accesso ed esecuzione di un programma interno e sto utilizzando il plugin check_ftp_rw che necessita, a quanto pare, di alcune configurazioni Perl5 che mi stanno facendo diventare matto.

    Ti dico cosa ho fatto:

    – ho copiato il plugin nel percorso /usr/lib/nagios/plugins/

    – ho cambiato all’interno di check_ftp_rw il percorso /usr/local/nagios/libexec/ con /usr/lib/nagios/plugins

    – ho eseguito il comando perl -MCPAN -e shell

    – install Net::FTPSSL

    tutto come dal link : http://exchange.nagios.org/directory/Plugins/Network-Protocols/FTP/check_ftp_rw/details

    ma niente da fare….

    Rilascia l’errore:

    [root@localhost ~]# /usr/lib/nagios/plugins/check_ftp_rw –host 10.0.0.4 –username user –password password

    Can’t locate Net/FTPSSL.pm in @INC (@INC contains:

    /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi

    /usr/lib/perl5/site_perl/5.8.8

    /usr/lib/perl5/site _perl

    /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi

    /usr/lib/perl5/vendor_perl/5.8.8

    /usr/lib/perl5/vendor_perl

    /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi

    /usr/lib/perl5/5.8.8 .) at

    /usr/lib/nagios/plugins/check_ftp_rw line 26.

    BEGIN failed–compilation aborted at /usr/lib/nagios/plugins/check_ftp_rw line 26.

    Hai qualche idea in merito?

    Ti sarei enormemente grato se mi aiutassi.

    Grazie in qualsiasi caso!

    Un saluto

    Fabio Tufi

    • Ciao Fabio, è un problema di dipendenze, ho risolto in questo modo:
      #yum install perl-Net-FTPSSL

      A questo punto lo script funziona, questo è il risultato:

      [root@centreon libexec]# ./check_ftp_rw –host 10.101.126.4 –user ftptest –password test.123 –dir test
      Connected to 10.101.126.4, logged in as ftp, chdir’ed to test

  4. Ciao Luca,
    grazie per avermi risposto!
    eseguo yum install perl-Net-FTPSSL ma ricevo questo errore…

    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
    *base: centos.crazyfrogs.org
    *extrass: centos.crazyfrogs.org
    *updates: centos.crazyfrogs.org
    Setting up Install Process
    No package perl-Net-FTPSSL available.
    Nothing to do

    …..

    Che posso fare?

    Grazie

    Fabio

  5. rpm -Uvh epel-release*rpm
    non viene accettato e rilascia come errore file non trovato da glob.
    Ho provato anche direttamente:
    rpm -Uvh epel-release-6-8.noarch.rpm
    e anche questo non va.
    La mia installazione non è CentOS + Nagios e Centreon ma direttamente l’installazione di Centreon da iso ces-standard-2.2-x86_64.iso versione Central.
    Non so se questo cambi qualcosa.
    Grazie per il tuo aiuto!

    • Ahh, certo. gli RPM sono pacchetti per le distro basate su RH.
      Non so CES su cosa è basata, devi trovare un pacchetto per quella.

  6. Pingback: Installazione di Nagvis su Centos 6 | Luca Malatesta | Articoli e Configurazioni

  7. Buonasera Luca,
    è possibile raccogliere dati giornalieri, per la precisione spazio disponibile su disco e memoria utilizzata, per poter ottenere a fine mese dei dati statistici raccogliendoli ad esempio in un file .csv?

    Grazie

    a presto!

    Fabio

    • Certamente, dalla sezione “View,Graphz” è possibile selezionare un arco temporale e visualizzare le statistiche, è inoltre possibile salvarle come immagine PNG o esportarle in CSV.
      Saluti
      Grafici Centreon

      • Grazie Luca!
        Posso ottenere tutti dati che voglio ora!

        Posso farti un’altra domanda?
        Sto monitorando un servizio https, avendo attivato l’agent snmp sulla macchina windows.
        Ricevo da un po di tempo errori di mancata connessione (Centreon CRITICAL – Socket timeout after 10 seconds) ma il servizio in realtà è su!
        Premetto che questo servizio è di Domino IBM per cui utilizza il file lnsnmp.exe che da la possibilità anche di monitorare il processo di domino server (nserver.exe), che non da mai problemi di time out.
        Sai dirmi qualcosa al riguardo?

        Grazie!

        Fabio

  8. Ciao. Procedura perfetta. Davvero molto utile.
    Perdona la domanda ma io non sono un sistemista linux. Per monitorare sistemi cisco (ASA, Switch, Router), e macchine windows, la configurazione è tutta a riga di comando o posso farlo anche da console? Esiste un manuale? Se non c’è per caso tu sapresti darmi qualche dritta?
    Grazie e a presto

    • Ciao, ti ringrazio.
      Se intendi la configurazione dei trap su centreon, puoi fare quasi tutto attraverso l’interfaccia web. Potresti dare uno sguardo alla documentazione ufficiale http://documentation.centreon.com/
      Per il resto c’è da prendere apparato per apparato ed iniziare a configurare il monitoring, all’inizio è complesso poi inizi a prenderci mano. Successivamente se hai domande più specifiche non esitare a chiedere.

      Ciao

  9. Buonasera Luca,
    sei riuscito in passato a risolvere e spiegarmi tutti i miei problemi.
    Oggi ti faccio questa domanda:
    – se avessi un server in Back End che fai il monitoring di tutto, potrei installare un server (Poller) in Front End magari child di quello Back End? così facendo veicolerei il traffico di rete dei firewall solo tra il Central ed il Poller (che mi controlla il Front End).

    Grazie per l’aiuto

    Fabio

  10. Luca,
    avrei un’altro quesito.
    Considerando che devo monitorare un pagina di accesso e volessi verificare la presenza di una parola che mi identificasse l’avvenuto accesso alla pagina (impostando UserID e Password e la parola “chiave) Come dovrei fare?
    Ho già impostato il seguente comando, funziona ma si ferma alla schermata di Login dandomi esito positivo:

    $USER1$/check_http -H pippo.dominio.int -I xxx.xxx.xxx.xxx -p 443 -4 –ssl -j GET -u /homepage/login/ -s Welcome

    Vorrei creare qualcosa di più specifico che faccia il login e me lo dimostrasse verificando se, alla schermata successiva del login, è presente una parola “chiave”.

    Grazie per il tuo continuo aiuto e sostegno..

    Fabio

  11. Ciao. Scusa la domanda ma ho seguito tutto correttamente come da te descritto. Unica cosa su Centreon non vedo gli host che diversamente vedo su Nagios. Su Nagios funziona tutto alla perfezione.
    Hai qualche consiglio?

    • Ciao, mi gli host li inserisci da nagios o da centreon?
      Inoltre il collegamento di centreon con il db di nagios funziona?
      Ciao
      Luca

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *