Capturar host remoto en Nagios

1
1086

En esta entrada vamos a capturar host remoto en Nagios, en esta anterior entrada explicábamos como instalar nagios.

Para comenzar el procedimiento, necesitaremos instalar el addon NRPE en el servidor a monitorizar. Comprobaremos que tenemos instalados los siguientes paquetes:

[email protected]:/tmp# apt-get update
[email protected]:/tmp# apt-get install -y autoconf gcc libc6 libmcrypt-dev make libssl-dev wget
[email protected]:/tmp# wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-3.2.1/nrpe-3.2.1.tar.gz
[email protected]:/tmp# tar -xvf nrpe-3.2.1.tar.gz
[email protected]:/tmp# cd /tmp/nrpe-3.2.1/
[email protected]:/tmp/nrpe-3.2.1/# ./configure --enable-command-args
[email protected]:/tmp/nrpe-3.2.1/# make all

Estos comandos se deben ejecutar uno detrás de otro, algunos tardarán más en ejecutarse que otros.

[email protected]:/tmp/nrpe-3.2.1/# make install-groups-users
[email protected]:/tmp/nrpe-3.2.1/# make install
[email protected]:/tmp/nrpe-3.2.1/# make install-config
[email protected]:/tmp/nrpe-3.2.1/# echo >> /etc/services
[email protected]:/tmp/nrpe-3.2.1/# echo ‘# Nagios services’ >> /etc/services
[email protected]:/tmp/nrpe-3.2.1/# echo ‘nrpe 5666/tcp’ >> /etc/services

Para Debian 8 «Jessie» y Debian 9 «stretch» se debe ejecutar el siguiente comando para cargar el daemon.

[email protected]:/tmp/nrpe-3.2.1# make install-init
/usr/bin/install -c -m 644 startup/default-service /lib/systemd/system/nrpe.service
[email protected]:/tmp/nrpe-3.2.1# systemctl enable nrpe.service
Created symlink /etc/systemd/system/multi-user.target.wants/nrpe.service → /lib/systemd/system/nrpe.service.
[email protected]:/tmp/nrpe-3.2.1#

Ahora crearemos las reglas de comunicación a través de iptables, para permitir la comunicación de los puertos utilizados por NPRE, cuando nos pregunte si deseamos guardar las reglas existentes, le indicamos que sí.

[email protected]:/tmp# iptables -I INPUT -p tcp --destination-port 5666 -j ACCEPT
[email protected]:/tmp# apt-get install -y iptables-persistent

Modificamos allow_host en los ficheros de configuración de nagios:

[email protected]:/tmp# nano /usr/local/nagios/etc/nrpe.cfg
allowed_hosts=127.0.0.1,192.168.1.219
dont_blame_nrpe=1

En mi caso, la IP de mi servidor nagios es 192.168.1.219, arrancamos el servicio y hacemos una prueba de test

[email protected]:/tmp/nrpe-3.2.1# systemctl start nrpe.service
[email protected]:/tmp/nrpe-3.2.1# /usr/local/nagios/libexec/check_nrpe -H 127.0.0.1
NRPE v3.2.1
[email protected]:/tmp/nrpe-3.2.1#

Si nos devuelve el mensaje de la versión, todo estará correctamente.

Ahora solo tendremos que instalar los plugins para poder comprobar los servicios. Verificar que tenemos los siguientes paquetes instalados:

[email protected]:/tmp# apt-get install -y autoconf gcc libc6 libmcrypt-dev make libssl-dev wget bc gawk dc build-essential snmp libnet-snmp-perl gettext
[email protected]:/tmp# wget --no-check-certificate -O nagios-plugins.tar.gz https://github.com/nagios-plugins/nagios-plugins/archive/release-2.2.1.tar.gz
[email protected]:/tmp# tar -xvf release-2.2.1.tar.gz
[email protected]:/tmp# cd nagios-plugins-release-2.2.1
[email protected]:/tmp/nagios-plugins-release-2.2.1# ./tools/setup
[email protected]:/tmp/nagios-plugins-release-2.2.1# ./configure
[email protected]:/tmp/nagios-plugins-release-2.2.1# make
[email protected]:/tmp/nagios-plugins-release-2.2.1# make install

Una vez ejecutados los anteriores comandos, podemos lanzar una comprobación:

[email protected]:/home/sysadm# /usr/local/nagios/libexec/check_nrpe -H 127.0.0.1 -c check_load
OK -- load average: 0.06, 0.03, 0.01|load1=0.060;0.150;0.300;0; load5=0.030;0.100;0.250;0; load15=0.010;0.050;0.200;0;
[email protected]:/home/sysadm#

Para finalizar solo tenemos que capturar el host en nuestro servidor de nagios, en el servidor de nagios tendremos que modificar el siguiente fichero:

/usr/local/nagios/etc/nagios.cfg

Añadir la siguiente entrada:

# Definitions for monitoring a Remote Linux Server
cfg_file=/usr/local/nagios/etc/objects/linux.cfg

Dónde yo he puesto «linux» tenemos que poner el nombre de fichero que queramos crear para añadir nuestros hosts remotos.

Lo siguiente que tenemos que hacer es modificar el fichero NRPE.cfg, el NRPE tenemos que tenerlo instalado tanto en el lado cliente (equipo a monitorizar) como en el lado servidor (Equipo que monitoriza).

Nos dirijimos a «/usr/local/nagios/etc#» y abrimos el fichero nrpe.cfg y añadiremos los siguientes commandos:

command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
command[check_load]=/usr/local/nagios/libexec/check_load -r -w .15,.10,.05 -c .30,.25,.20
command[check_sda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /
command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200
command[check_swap]=/usr/local/nagios/libexec/check_swap -w 40% -c 20%
allowed_hosts=127.0.0.1,192.168.1.27

Os recuerdo que estos comandos se deberán configurar en el fichero nrpe.cfg tanto en el lado cliente como en el servidor, además deberemos añadir en la entrada «allowed_hosts» la IP de los hosts a monitorizar. Lo siguiente que tenemos que hacer es dirigirnos a la carpeta «/usr/local/nagios/etc/objects#» y añadir lo siguiente al fichero commands.cfg:

define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ -t 20
}

Para finalizar, ahora sí, lo único que falta por añadir es a nuestro fichero linux.cfg los comandos que queremos utilizar de NRPE de la siguiente manera:

define service{
use local-service ; Name of service template to use
host_name unifi-controller
service_description Swap Usage
check_command check_nrpe!check_swap
}

Con esto podríamos monitorizar la memória swap en uso.

Os podéis descargar un fichero de configuración muy básico desde mi Nextcloud a través de este enlace, solamente tenéis que ubicarlo dentro de la carpeta /usr/local/nagios/etc/objects/

[email protected]:/usr/local/nagios/etc/objects# /etc/init.d/nagios reload
[ ok ] Reloading nagios configuration (via systemctl): nagios.service.
[email protected]:/usr/local/nagios/etc/objects#

Recargamos el servicio de Nagios en el servidor y comprobamos en la web que los servicios vayan apareciendo poco a poco en verde.

El procedimiento que se ha seguido en esta entrada, ha sido extraído y traducido de la documentación oficial de Nagios. Podéis leer el artículo oficial mediante este enlace así como encontrar dicha configuración para diferentes distribuciones de Linux.

En una futura entrada, añadiremos un servidor Windows y además crearemos servicios concretos para monitorizar ciertas cosas, como una conexión a una base de datos o la carga de un servidor web.

¡Hasta la próxima!

1 Comentario

Dejar respuesta

Please enter your comment!
Please enter your name here