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

From RVM Wiki
Jump to navigation Jump to search
 
(18 intermediate revisions by the same user not shown)
Line 5: Line 5:
==Configurazione del client da monitorare==
==Configurazione del client da monitorare==


* Installare il server di esecuzione dei plugins ed i plugins
===Installazione demone NRPE e Plugins ===
sudo apt-get install nagios-nrpe-server nagios-plugins nagios3-


sudo apt-get install nagios-nrpe-server nagios-plugins
====Compilazione in Debian Jessie====
* In Debian Jessie è stata disabilitata la funzione che accetta gli argomenti ([https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=756479 #756479 - nagios-nrpe-server: Ignores dont_blame_nrpe=1 - Debian Bug report logs]). Anche se la si abilita mettendo '' dont_blame_nrpe=1'', il parametro viene ignorato. Per abilitarlo, è necessario ricompilare il pacchetto


* Installare il build-essentials
sudo apt-get install build-essentials
* Scaricare i sorgenti
cd /tmp
apt-get source nagios-nrpe-server
sudo apt-get build-dep nagios-nrpe-server
* Abilitare il flag --enable-command-args:
vi nagios-nrpe-2.15/debian/rules
    ./configure \
        --prefix=/usr \
        --enable-ssl \
        --with-ssl-lib=/usr/lib/$(DEB_HOST_MULTIARCH) \
        --sysconfdir=/etc \
        --localstatedir=/var \
        --libexecdir=/usr/lib/nagios/plugins \
        --libdir=/usr/lib/nagios \
        --enable-command-args
* Incrementare la versione:
vi nagios-nrpe-2.15/debian/changelog
nagios-nrpe (2.15-2) unstable; urgency=high
  * ENABLED arguments
-- Alexander Wirt <formorer@debian.org>  Tue, 16 Jul 2014 18:30:36 +0200
* Compilare il pacchetto
cd nagios-nrpe-2.15/
dpkg-buildpackage -rfakeroot
* Installarlo
cd ..
sudo dpkg -i nagios-nrpe-server_2.15-2_amd64.deb
* Riavviare nrpe
sudo systemctl restart nagios-nrpe-server.service
===Configurazione Accesso al demone===
Il server ha un demone che ascolta sulla porta 5666: impostare firewal e portmapping di conseguenza.
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:
<pre>
        # ---------------------------------------------------------------------
        # NRPE from Wan (5666)
        # ---------------
        $IPTABLES -A INPUT  -p tcp -i $WAN0_IF \
                  --sport $UNPRIVPORTS -s 1.2.3.4 \
                  --dport 5666  -j ACCEPT
</pre>
* 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
* Verificare la raggiungibilità tramite un telnet dal server nagios che dovrà monitorare questo client
Line 27: Line 95:
</pre>
</pre>


* Configurare i servizi da monitorare.
===Configurazione dei servizi da monitorare===
 
  sudoedit /etc/nagios/nrpe_local.cfg
  sudoedit /etc/nagios/nrpe_local.cfg


Per monitorare lo spazio libero sulla partizione ''/'', inserire:
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 -w 20 -c 10 -p /
  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:
Se si vuole monitorare anche l'aggiornamento dei pacchetti:
  command[check-apt]=/usr/lib/nagios/plugins/check_apt
  command[check-apt]=/usr/lib/nagios/plugins/check_apt


Di default sono già inseriti questi in /etc/nagios/nrpe_local.cfg:
* Inserire i seguenti comandi di default:
sudoedit /etc/nagios/nrpe_local.cfg
 
<pre>
<pre>
command[check_users]=/usr/lib/nagios/plugins/check_users -w 5 -c 10
# Comandi per monitoraggi di host remoti
command[check_load]=/usr/lib/nagios/plugins/check_load -w 15,10,5 -c 30,25,20
command[check-nrpe]=/usr/lib/nagios/plugins/check_nrpe -H $ARG1$ -c $ARG2$
command[check_disk1]=/usr/lib/nagios/plugins/check_disk -w 20 -c 10 -p /dev/hda1
command[check-ping]=/usr/lib/nagios/plugins/check_fping $ARG1$
command[check_disk2]=/usr/lib/nagios/plugins/check_disk -w 20 -c 10 -p /dev/hdb1
command[check-plugin]=/usr/lib/nagios/plugins/$ARG1$ -H $ARG2$
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
# 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%
</pre>
</pre>


Line 49: Line 126:


  sudo -u nagios /usr/lib/nagios/plugins/check_disk -w 20 -c 10 -p /
  sudo -u nagios /usr/lib/nagios/plugins/check_disk -w 20 -c 10 -p /
  DISK OK - free space: / 24915 MB (35% inode=90%);| /=44585MB;73200;73210;0;73220
  DISK OK - free space: / 4 GB (12% inode=86%);| /=29GB;34;35;0;36


  sudo -u nagios /usr/lib/nagios/plugins/check_apt
  sudo -u nagios /usr/lib/nagios/plugins/check_apt
  APT OK: 0 packages available for upgrade (0 critical updates).
  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:
Riavviare il demone nrpe:
Line 66: Line 145:
  sudo apt-get install nagios-nrpe-plugin
  sudo apt-get install nagios-nrpe-plugin


* Testare il plugin con il comando già definito sul client da monitorare:
* 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_md0
  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
  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:
* Definire il comando da usare per il plugin check_nrpe:
Line 100: Line 182:
</pre>
</pre>


Per il plugin check_apt
Per il plugin check_apt:
 
<pre>
define service{
        use                            generic-service
        host_name                      fire.rvmgroup.it
        service_description            APT
        check_command                  check-nrpe!check-apt
        }
</pre>


*Verificare la configurazione:
*Verificare la configurazione:
Line 107: Line 198:
* Riavviare nagios
* Riavviare nagios
  sudo /etc/init.d/nagios restart
  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
<pre>
define command{
        command_name    check-host-dummy-up
        command_line    $USER1$/check_nrpe -t 60 -H $HOSTADDRESS$ -c check-ping
        }
</pre>
Definire il comando check-nrpe-remote:
sudoedit  /etc/nagios2/conf.d/misccommands_nagios.cfg
<pre>
define command{
        command_name    check-nrpe-remote
        command_line    $USER1$/check_nrpe -t 60 -H $HOSTADDRESS$ -c check-nrpe -a $HOSTNAME$ $ARG1$   
        }
</pre>
Definire l'host da monitorare come:
sudoedit  /etc/nagios2/conf.d/met.cfg
<pre>
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
        }
</pre>
Definire il servizio da monitorare come:
<pre>
define service{
        use                            generic-service
        host_name                      mailserver.metrica.priv
        service_description            DISK
        check_command                  check-nrpe-remote!check-disk-root
        }
</pre>
Definire poi tutti gli altri servizi da monitorare, dopo averli creati sull'host interno.


==Riferimenti==
==Riferimenti==
*[http://www.crucialwebhost.com/blog/nagios-howto-using-nrpe-to-monitor-remote-services/ Nagios Howto: Using NRPE To Monitor Remote Services:Crucial Web Hosting » Blog]
*[http://www.crucialwebhost.com/blog/nagios-howto-using-nrpe-to-monitor-remote-services/ Nagios Howto: Using NRPE To Monitor Remote Services:Crucial Web Hosting » Blog]
* [http://trac.nakednuns.org/nscp/wiki NSClient++: NRPE per windows]
* [http://trac.nakednuns.org/nscp/wiki NSClient++: NRPE per windows]

Latest revision as of 11:47, 17 June 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-

Compilazione in Debian Jessie

  • Installare il build-essentials
sudo apt-get install build-essentials
  • Scaricare i sorgenti
cd /tmp
apt-get source nagios-nrpe-server
sudo apt-get build-dep nagios-nrpe-server
  • Abilitare il flag --enable-command-args:
vi nagios-nrpe-2.15/debian/rules
    ./configure \
       --prefix=/usr \
       --enable-ssl \
       --with-ssl-lib=/usr/lib/$(DEB_HOST_MULTIARCH) \
       --sysconfdir=/etc \
       --localstatedir=/var \
       --libexecdir=/usr/lib/nagios/plugins \
       --libdir=/usr/lib/nagios \
       --enable-command-args
  • Incrementare la versione:
vi nagios-nrpe-2.15/debian/changelog
nagios-nrpe (2.15-2) unstable; urgency=high
 * ENABLED arguments
-- Alexander Wirt <formorer@debian.org>  Tue, 16 Jul 2014 18:30:36 +0200
  • Compilare il pacchetto
cd nagios-nrpe-2.15/
dpkg-buildpackage -rfakeroot
  • Installarlo
cd ..
sudo dpkg -i nagios-nrpe-server_2.15-2_amd64.deb
  • Riavviare nrpe
sudo systemctl restart nagios-nrpe-server.service

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