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
[Nota]

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.

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. First, create a host configuration file for server02. Unless otherwise specified, run all these commands on server01. In a terminal enter:

      sudo cp /etc/nagios3/conf.d/localhost_nagios2.cfg /etc/nagios3/conf.d/server02.cfg
      
      [Nota]

      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. A mysql-servers hostgroup now needs to be defined. Edit /etc/nagios3/conf.d/hostgroups_nagios2.cfg adding:

      # 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';"
      
      [Nota]

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