Per prima cosa, su server01 installare il pacchetto nagios. In un terminale digitare:
sudo apt-get install nagios3 nagios-nrpe-plugin
Viene chiesto di inserire una password per l'utente nagiosadmin. Le credenziali vengono salvate nel file /etc/nagios3/htpasswd.users
. Per modificare la password dell'utente nagiosadmin o per aggiungere altri utenti, usare il comando htpasswd, parte del pacchetto apache2-utils.
Per esempio, per modificare la password dell'utente nagiosadmin digitare:
sudo htpasswd /etc/nagios3/htpasswd.users nagiosadmin
Per aggiungere un utente:
sudo htpasswd /etc/nagios3/htpasswd.users steve
Su server02 installare il pacchetto nagios-nrpe-server. Da un terminale su server02 inserire:
sudo apt-get install nagios-nrpe-server
![]() |
|
NRPE consente di eseguire controlli locali sugli host remoti. Esistono anche altri metodi per eseguire questo attraverso l'uso di altri plugin o controlli di Nagios. |
Esistono diverse directory contenenti file di configurazione e di controllo di Nagios.
-
/etc/nagios3
: contiene i file di configurazione per le operazioni del demone nagios, i file CGI, host, ecc... -
/etc/nagios-plugins
: contiene i file di configurazione per i controlli del servizio. -
/etc/nagios
: sull'host remoto contiene i file di configurazione di nagios-nrpe-server. -
/usr/lib/nagios/plugins/
: contiene i file binari dei controlli. Per visualizzare le opzioni di un controllo, usare l'opzione -h.Per esempio: /usr/lib/nagios/plugins/check_dhcp -h
Esistono moltissimi controlli che è possibile eseguire tramite Nagios su un qualsiasi host. In questo esempio Nagios viene configurato per controlla lo spazio su disco, DNS e un gruppo di host MySQL. Il controllo DNS avviene su server02 e il gruppo di host MySQL include sia server01 che server02.
![]() |
|
Consultare la sezione chiamata «HTTPD - Server web Apache2» per informazioni su Apache, Capitolo 7, DNS (Domain Name Service) su DNS e la sezione chiamata «MySQL» su MySQL. |
Inoltre, vi sono alcuni termini che una volta descritti, aiuteranno a rendere più semplice la comprensione di Nagios:
-
Host: un server, una workstation o un dispositivo di rete che viene monitorato.
-
Gruppo di host: un gruppo di host simili. Per esempio potrebbe essere possibile raggruppare tutti i server web, i server di file, ecc...
-
Servizio: il servizio che viene monitorato sull'host come HTTP, DNS, FTP, ecc...
-
Gruppo di servizi: consente di raggruppare servizi simili. Utile, per esempio, per raggruppare più servizi HTTP.
-
Contatto: una persona da notificare quando si verifica un evento. Nagios può essere configurato per inviare email, SMS, ecc...
Come impostazione predefinita, Nagios è configurato per controllare HTTP, spazio su disco, SSH, gli utenti attuali, i processi e il carico sul localhost. Inoltre, è in grado di controllare attraverso il comando ping il gateway.
Installazioni di Nagios di grosse dimensioni possono essere complesse da configurare ed è quindi utile partire con una configurazione piccola, uno o due host, prima di aumentare le dimensioni.
-
-
Creare un file di configurazione host per server02. In un terminale digitare:
sudo cp /etc/nagios3/conf.d/localhost_nagios2.cfg /etc/nagios3/conf.d/server02.cfg
Nei comandi precedenti e in quelli che seguono, sostituire "server01", "server02", 172.18.100.100 e 172.18.100.101 con i nomi host e gli indirizzi IP dei propri server.
-
Modificare il file
/etc/nagios3/conf.d/server02.cfg
:define host{ use generic-host ; Name of host template to use host_name server02 alias Server 02 address 172.18.100.101 } # check DNS service. define service { use generic-service host_name server02 service_description DNS check_command check_dns!172.18.100.101 }
-
Riavviare il demone nagios per abilitare la nuova configurazione:
sudo /etc/init.d/nagios3 restart
-
-
-
Aggiungere una definizione di servizio per il controllo MySQL aggiungendo quanto segue al file
/etc/nagios3/conf.d/services_nagios2.cfg
:# check MySQL servers. define service { hostgroup_name mysql-servers service_description MySQL check_command check_mysql_cmdlinecred!nagios!secret!$HOSTADDRESS use generic-service notification_interval 0 ; set > 0 if you want to be renotified }
-
Ora è necessario definire un gruppo di mysqsl-servers. Modificare il file
/etc/nagios3/conf.d/hostgroups_nagios2.cfg
aggiungendovi quando segue:# MySQL hostgroup. define hostgroup { hostgroup_name mysql-servers alias MySQL servers members localhost, server02 }
-
Il controllo di Nagios necessita di autenticarsi con MySQL. Per aggiungere un utente nagios a MySQL inserire:
mysql -u root -p -e "create user nagios identified by 'secret';"
È necessario aggiungere l'utente nagios a tutti gli host deò gruppo mysql-servers hostgroup.
-
Riavviare nagios per iniziare il controllo dei server MySQL.
sudo /etc/init.d/nagios3 restart
-
-
-
Infine configurare NRPE affinché controlli lo spazio su disco su server02.
Sul server01 aggiungere il controllo del servizio al file
/etc/nagios3/conf.d/server02.cfg
:# NRPE disk check. define service { use generic-service host_name server02 service_description nrpe-disk check_command check_nrpe_1arg!check_all_disks!172.18.100.101 }
-
Su server02 modificare il file
/etc/nagios/nrpe.cfg
:allowed_hosts=172.18.100.100
E nella sezione dove sono definiti i comandi, aggiungere:
command[check_all_disks]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -e
-
Infine, riavviare nagios-nrpe-server:
sudo /etc/init.d/nagios-nrpe-server restart
-
Riavviare, su server01, nagios:
sudo /etc/init.d/nagios3 restart
-
Dovrebbe essere possibile visualizzare l'host e i controlli nei file CGI di Nagios. Per accedere a questi file, in un browser web inserire l'indirizzo http://server01/nagios3. Vengono richiesti password e nome utente dell'utente nagiosadmin.
Questa sezione ha fornito una panoramica preliminare delle caratteristiche di Nagios, i pacchetti nagios-plugins-extra e nagios-snmp-plugins contengono molti altri controlli.
-
Per maggiori informazioni, consultare il sito web di Nagios.
-
In particolare, consultare la documentazione in rete.
-
Sono disponibili anche molti libri riguardo Nagios e il monitoraggio di rete: