Documentazione di Ubuntu → Ubuntu 10.04 → Guida a Ubuntu server → Monitoraggio → Nagios

## Nagios

### Installazione

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.

### Panoramica della configurazione

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.

### Configurazione

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

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

  3. Riavviare il demone nagios per abilitare la nuova configurazione:

         sudo /etc/init.d/nagios3 restart

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

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

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

  4. Riavviare nagios per iniziare il controllo dei server MySQL.

         sudo /etc/init.d/nagios3 restart

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

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

  3. Infine, riavviare nagios-nrpe-server:

         sudo /etc/init.d/nagios-nrpe-server restart

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

### Riferimenti

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:

- The Nagios Ubuntu Wiki page also has more details.

Panoramica |  | Munin