Monitoraggio di altri sistemi con Nagios attraverso NRPE: Difference between revisions
| (16 intermediate revisions by the same user not shown) | |||
| Line 5: | Line 5: | ||
==Configurazione del client da monitorare== | ==Configurazione del client da monitorare== | ||
===Installazione demone NRPE e Plugins === | |||
sudo apt-get install nagios-nrpe-server nagios-plugins nagios3- | |||
====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 | Se non serve portmapping, ma si vuole abilitare l'accesso solo dall'host su cui gira Nagios: | ||
<pre> | <pre> | ||
| Line 19: | Line 64: | ||
$IPTABLES -A INPUT -p tcp -i $WAN0_IF \ | $IPTABLES -A INPUT -p tcp -i $WAN0_IF \ | ||
--sport $UNPRIVPORTS -s | --sport $UNPRIVPORTS -s 1.2.3.4 \ | ||
--dport 5666 -j ACCEPT | --dport 5666 -j ACCEPT | ||
</pre> | </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 40: | Line 95: | ||
</pre> | </pre> | ||
===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 - | 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 | ||
* Inserire i seguenti comandi di default: | |||
sudoedit /etc/nagios/nrpe_local.cfg | |||
<pre> | <pre> | ||
command[ | # Comandi per monitoraggi di host remoti | ||
command[ | command[check-nrpe]=/usr/lib/nagios/plugins/check_nrpe -H $ARG1$ -c $ARG2$ | ||
command[ | command[check-ping]=/usr/lib/nagios/plugins/check_fping $ARG1$ | ||
command[ | command[check-plugin]=/usr/lib/nagios/plugins/$ARG1$ -H $ARG2$ | ||
command[ | |||
command[ | # 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 62: | 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: / | 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 132: | 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
- In Debian Jessie è stata disabilitata la funzione che accetta gli argomenti (#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.
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.