Capturar host remoto en Nagios

1
4962

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:

root@webserver:/tmp# apt-get update
root@webserver:/tmp# apt-get install -y autoconf gcc libc6 libmcrypt-dev make libssl-dev wget
root@webserver:/tmp# wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-3.2.1/nrpe-3.2.1.tar.gz
root@webserver:/tmp# tar -xvf nrpe-3.2.1.tar.gz
root@webserver:/tmp# cd /tmp/nrpe-3.2.1/
root@webserver:/tmp/nrpe-3.2.1/# ./configure --enable-command-args
root@webserver:/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.

root@webserver:/tmp/nrpe-3.2.1/# make install-groups-users
root@webserver:/tmp/nrpe-3.2.1/# make install
root@webserver:/tmp/nrpe-3.2.1/# make install-config
root@webserver:/tmp/nrpe-3.2.1/# echo >> /etc/services
root@webserver:/tmp/nrpe-3.2.1/# echo '# Nagios services' >> /etc/services
root@webserver:/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.

root@webserver:/tmp/nrpe-3.2.1# make install-init
/usr/bin/install -c -m 644 startup/default-service /lib/systemd/system/nrpe.service
root@webserver:/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.
root@webserver:/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í.

root@webserver:/tmp# iptables -I INPUT -p tcp --destination-port 5666 -j ACCEPT
root@webserver:/tmp# apt-get install -y iptables-persistent
Modificamos allow_host en los ficheros de configuración de nagios:
root@webserver:/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

root@webserver:/tmp/nrpe-3.2.1# systemctl start nrpe.service
root@webserver:/tmp/nrpe-3.2.1# /usr/local/nagios/libexec/check_nrpe -H 127.0.0.1
NRPE v3.2.1
root@webserver:/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:

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

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

root@webserver:/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;
root@webserver:/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/

root@nagios:/usr/local/nagios/etc/objects# /etc/init.d/nagios reload
[ ok ] Reloading nagios configuration (via systemctl): nagios.service.
root@nagios:/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

DEJA UNA RESPUESTA

Por favor ingrese su comentario!
Por favor ingrese su nombre aquí