Monitoraggio di altri sistemi con Nagios attraverso NRPE: Difference between revisions

From RVM Wiki
Jump to navigation Jump to search
Line 7: Line 7:
===Installazione demone NRPE e Plugins ===
===Installazione demone NRPE e Plugins ===


  sudo apt-get install nagios-nrpe-server nagios-plugins
  sudo apt-get install nagios-nrpe-server nagios-plugins nagios3-


===Configurazione Accesso al demone===
===Configurazione Accesso al demone===

Revision as of 17:06, 19 January 2015

Se un sistema è raggiungibile direttamente (ip pubblico o portmap), si può monitorare in una istanza esterna di Nagios, tramite il plugin NRPE: Nagios Remote Plugin Executor.

Per windows è disponibile il servizio NSClient++ (Vedi Riferimenti)

Configurazione del client da monitorare

Installazione demone NRPE e Plugins

sudo apt-get install nagios-nrpe-server nagios-plugins nagios3-

Configurazione Accesso al demone

Il server ha un demone che ascolta sulla porta 5666: impostare firewal e portmapping di conseguenza.

Se non serve portmapping, ma si vuole abilitare l'accesso solo dall'host su cui gira Nagios:

        # ---------------------------------------------------------------------
        # NRPE from Wan (5666)
        # ---------------

        $IPTABLES -A INPUT  -p tcp -i $WAN0_IF \
                  --sport $UNPRIVPORTS -s 1.2.3.4 \
                  --dport 5666  -j ACCEPT
  • Abilitare l'accesso direttamente sul daemon e se server, il richiamo diretto di plugin::
sudoedit /etc/nagios/nrpe_local.cfg 
...
allowed_hosts=nagios.example.com
dont_blame_nrpe=1
...
  • Riavviare il demone:
sudo invoke-rc.d nagios-nrpe-server restart
  • Verificare la raggiungibilità tramite un telnet dal server nagios che dovrà monitorare questo client
user@nagios-server$ telnet host.da.monitorare 5666
Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.






Connection closed by foreign host.

Configurazione dei servizi da monitorare

sudoedit /etc/nagios/nrpe_local.cfg

Per monitorare lo spazio libero sulla partizione /, con Warning a 2Gb liberi e critical a 1Gb libero, inserire:

command[check-disk-root]= /usr/lib/nagios/plugins/check_disk --units=GB --warning=2 --critical=1 --path=/

Se si vuole monitorare anche l'aggiornamento dei pacchetti:

command[check-apt]=/usr/lib/nagios/plugins/check_apt
  • Inserire i seguenti comandi di default:
sudoedit /etc/nagios/nrpe_local.cfg
# Comandi per monitoraggi di host remoti
command[check-nrpe]=/usr/lib/nagios/plugins/check_nrpe -H $ARG1$ -c $ARG2$
command[check-ping]=/usr/lib/nagios/plugins/check_fping $ARG1$
command[check-plugin]=/usr/lib/nagios/plugins/$ARG1$ -H $ARG2$

# Comandi per monitoraggi locali standard
command[check-disk]=/usr/lib/nagios/plugins/check_disk -w 10% -c 5% --stat-remote-fs -e -X tmpfs -X proc -X sysfs -X devpts -X none -X rpc_pipefs -X xenfs
command[check-apt]=/usr/lib/nagios/plugins/check_apt
command[check-time]=/usr/lib/nagios/plugins/check_ntp_time -H time.ien.it
command[check-load]=/usr/lib/nagios/plugins/check_load -w 2,1.5,1 -c 3,2.5,2
command[check-raid]=/usr/lib/nagios/plugins/check_linux_raid
command[check-swap]=/usr/lib/nagios/plugins/check_swap -a -w 10% -c 5%

Verificare che i plugin usati funzionino in locale, esempio:

sudo -u nagios /usr/lib/nagios/plugins/check_disk -w 20 -c 10 -p /
DISK OK - free space: / 4 GB (12% inode=86%);| /=29GB;34;35;0;36
sudo -u nagios /usr/lib/nagios/plugins/check_apt
APT OK: 0 packages available for upgrade (0 critical updates).
sudo -u nagios /usr/lib/nagios/plugins/check_load -w 2,1.5,1 -c 3,2.5,2

Riavviare il demone nrpe:

sudo /etc/init.d/nagios-nrpe-server restart
  • Ora i plugin definiti sono richiamabili da remoto dal server nagios.

Configurazione del Server Nagios

Il server Nagios contatterà il demone NRPE del client tramite il plugin check_nrpe, eseguendo uno dei comandi predecedentemente definti nella configurazione del client.

  • Installazione del plugin nrpe
sudo apt-get install nagios-nrpe-plugin
  • Testare il plugin con il comando già definito sul client da monitorare per lo spazio su disco:
sudo -u nagios /usr/lib/nagios/plugins/check_nrpe -H fire.rvmgroup.it -c check-disk-root
DISK OK - free space: / 24915 MB (35% inode=90%);| /=44585MB;73200;73210;0;73220

e quello per Apt:

sudo -u nagios /usr/lib/nagios/plugins/check_nrpe -H fire.rvmgroup.it -c check-apt
  • Definire il comando da usare per il plugin check_nrpe:
sudoedit /etc/nagios/misccommands.cfg

inserire:

define command{
        command_name    check-nrpe
        command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
        }
  • Dopo aver definito l'host remoto, aggiungere il servizio remoto da monitorare. Se l'host remoto non è pingabile, inserire localhost come ip, oppure non monitorarne lo stato ed usare il plugin check_dummy.
sudoedit /etc/nagios/services.cfg

inserire (notare il -, non il _)

Per il plugin check_disk:

define service{
        use                             generic-service
        host_name                       fire.rvmgroup.it
        service_description             DISK
        check_command                   check-nrpe!check-disk-root
        }

Per il plugin check_apt:

define service{
        use                             generic-service
        host_name                       fire.rvmgroup.it
        service_description             APT
        check_command                   check-nrpe!check-apt
        }
  • Verificare la configurazione:
sudo nagios -v /etc/nagios/nagios.cfg
  • Riavviare nagios
sudo /etc/init.d/nagios restart

Monitoraggio di Host Nattati Interni

Se si vuole monitorare un host dietro ad un firewall, è possibile farlo con una sequenza di agenti NRPE.

Configurazione sul firewall

In pratica creiamo dei comandi nrpe generici, che fowarderanno le richieste all'host interno sul quale gira a sua volta nrpe.

Assicurarsi di poter pingare l'host interno PER NOME dal firewall

ping host.interno

Abilitare il passaggio di argomenti ad NRPE:

sudoedit /etc/nagios/nrpe.cfg
dont_blame_nrpe=1

Installare il plugin NRPE:

sudo apt-get install nagios-nrpe-plugin

Definire il comando check-ping e check-nrpe:

sudoedit /etc/nagios/nrpe_local.cfg
command[check-ping]=/usr/lib/nagios/plugins/check_fping $ARG1$
command[check-nrpe]=/usr/lib/nagios/plugins/check_nrpe -H $ARG1$ -c $ARG2$

Questi comandi ricevono come primo argomento l'host a cui inviare le richieste e come secondo argomento il comando nrpe da eseguire sull'host interno.

Riavviare NRPE

sudo invoke-rc.d nagios-nrpe-server restart

Configurazione dell'Host Interno

Installare e configurare NRPE (vedi prima)

Configurazione del Server Monitorante

Definire il comando di monitoraggio dell'host:

sudoedit  /etc/nagios2/conf.d/misccommands_nagios.cfg
define command{
        command_name    check-host-dummy-up
        command_line    $USER1$/check_nrpe -t 60 -H $HOSTADDRESS$ -c check-ping
        }

Definire il comando check-nrpe-remote:

sudoedit  /etc/nagios2/conf.d/misccommands_nagios.cfg
define command{
        command_name    check-nrpe-remote
        command_line    $USER1$/check_nrpe -t 60 -H $HOSTADDRESS$ -c check-nrpe -a $HOSTNAME$ $ARG1$    
        }


Definire l'host da monitorare come:

sudoedit /etc/nagios2/conf.d/met.cfg

define host{
        use                     generic-host
        host_name               mailserver.metrica.priv
        alias                   MET Mailserver
        address                 fire.metrica.it
        check_command           check-host-dummy-up
        parents                 fire.metrica.it
        }


Definire il servizio da monitorare come:

define service{
        use                             generic-service
        host_name                       mailserver.metrica.priv
        service_description             DISK
        check_command                   check-nrpe-remote!check-disk-root
        }

Definire poi tutti gli altri servizi da monitorare, dopo averli creati sull'host interno.

Riferimenti