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!
Me haservidor de mucho compañero! Gracias!
Y las siguientes entradas relacionadas?
Hola Paloma.
La verdad es que ahí se quedó xD, si tienes cualquier duda puedes decirme y puedo tratar de ayudarte.
Un saludo!