Come visto nei precedenti post, Nagios è un ottimo sistema per il monitoraggio della rete. Se abbiamo delle macchine in Linux e vogliamo tenere sotto controllo lo stato globale del sistema, dobbiamo installare nei computer nagios-nrpe, un agent di Nagios che permette al sistema di effettuare controlli remoti.
Vediamo i vari passi da effettuare per configurare le nostre macchine remote utilizzando Linux CentOS.
Installazione plugin sulla macchina remota
Per effettuare l’installazione tramite yum è necessario aver installato il repository RPMforge.
# yum install nagios-nrpe
# chkconfig nrpe on
I plug-in vengono installati nella directory /usr/lib/nagios/plugins/.
Per monitorare le eventuali partizioni presenti nei sistemi Linux della rete, dobbiamo conoscere quante sono le partizioni presenti nelle varie macchine. Tramite il comando df è possibile visualizzare le partizioni di un sistema.
# df –h
In questo caso abbiamo cinque partizioni. Questa informazione ci serve per aggiungere i parametri mancanti nel file di configurazione di NRPE.
Configurazione plugin
Per poter monitorare i nostri sistemi (partizioni, swap, processi, etc.), bisogna editare il file di configurazione nrpe.conf. Va specificato l’IP del server Nagios per permettere la corretta comunicazione tra i sistemi e definire i comandi addizionali richiesti non presenti per default nel file di configurazione.
# vi /etc/nagios/nrpe.conf
log_facility=daemon pid_file=/var/run/nrpe.pid server_port=5666 #server_address=127.0.0.1 nrpe_user=nagios nrpe_group=nagios allowed_hosts=127.0.0.1,IP_Nagios dont_blame_nrpe=0 # command_prefix=/usr/bin/sudo debug=0 command_timeout=60 connection_timeout=300 #allow_weak_random_seed=1 #include=<somefile.cfg> #include_dir=<somedirectory> #include_dir=<someotherdirectory> # The following examples use hardcoded command arguments... command[check_users]=/usr/lib/nagios/plugins/check_users -w 5 -c 10 command[check_load]=/usr/lib/nagios/plugins/check_load -w 15,10,5 -c 30,25,20 command[check_hda1]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/hda1 # Aggiungere i comandi in base alle partizioni da monitorare command[check_hdax]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/hdax command[check_sdax]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/sdax command[check_zombie_procs]=/usr/lib/nagios/plugins/check_procs -w 5 -c 10 -s Z command[check_total_procs]=/usr/lib/nagios/plugins/check_procs -w 150 -c 200 command[check_swap]=/usr/lib/nagios/plugins/check_swap -w 20% -c 10%
Avviamo quindi il servizio:
# service nrpe start
Se tra la macchina remota e il server Nagios c’è un firewall, bisogna aprire la porta TCP 5666 necessaria a Nagios per comunicare con la macchina da monitorare.
Testare la comunicazione
Per verificare che Nagios riesca a comunicare con il daemon NRPE nella macchina remota, da Nagios lanciamo il comando:
# /usr/lib/nagios/plugins/check_nrpe -H IP_MacchinaRemota
Per verificare manualmente che il sistema funzioni, proviamo a controllare lo stato della partizione di ROOT della macchina remota:
# /usr/lib/nagios/plugins/check_nrpe -H IP_MacchinaRemota -c check_hda3
Verificato che il plug-in funziona correttamente, andiamo a definire il comando in Nagios.
Configurare Nagios
Una volta configurati i parametri nel file di configurazione di NRPE, non ci resta che editare il file /etc/nagios/commands.cfg per definire il comando per l’utilizzo del plug-in da parte di Nagios:
define command { command_name check_nrpe command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ }
Impostando ad esempio il comando per la verifica dello stato della partizione di ROOT della macchina remota, Nagios è adesso in grado di visualizzare lo stato corrente ed eventualmente generare un alert al presentarsi di un problema.
Adesso siamo in grado di monitorare i parametri che più ci interessano delle macchine remote Linux presenti nella rete.
Articolo ben scritto compliemnti
se lancio il comando, dalla macchina dove è installato nagios:
/usr/lib/nagios/plugins/check_nrpe -H IP_MacchinaRemota
mi restituisce:
CHECK_NRPE: Socket timeout after 10 seconds.
(la porta 5666 è aperta).
Non riesco a capire cosa c'è che non va...
Ho capito, ho installato il tutto su un server virtuale che sta dietro un firewall che non permette l'utilizzo sia in entrata sia in uscita di altre porte oltre quelle usate per plesk e per i servizi di default.