Inicio > monitorizacion > Nagios -NRPE

Nagios -NRPE

miércoles, 5 de agosto de 2009 Dejar un comentario Ir a comentarios

NRPE

Muchos de vosotros utilizareis Nagios, como herramienta para monitorizar vuestros sistemas. La verdad es que se trata de una herramienta muy potente que nos permite controlar el estado de nuestros sistemas, ahorrar mucho tiempo en el dia a día y evitar algún que otro disgustillo.

A través de una serie de artículos voy a ir reflejando todo aquello que pueda resultar interesante en torno a esta plataforma. No se trata de una guía básica, sino que supongo disponéis de conocimientos, al menos básicos, sobre una configuración standard de Nagios.
.
En este caso vamos a hablar de NRPE. Se trata de un complemento para Nagios. Pero, ¿ Que nos va a permitir este complemento ?. Ejecutar Scripts en la maquina remota que queremos monitorizar. Un caso muy sencillo puede ser que estemos monitorizando un servicio y queremos ejecutar una determinada acción en función del estado en el que se encuentre ese servicio.

La idea es muy sencilla. Se trata de instalar un demonio (NRPE) en la maquina que queramos monitorizar, y desde nuestros servidor Nagios, aprovechándonos del plugin check_nrpe lanzar peticiones de estado. Esas peticiones se ejecutaran en la maquina remota, que al final devolverán el estado, que mostraremos en la consola del nagios. Me imagino que se ve clara la potencia de NRPE. No solo nos permite conocer el estado, sino que podemos ejecutar acciones para alterar el mismo.

Tampoco me quiero enrollar mas con el tema, porque si preguntáis al que todo lo sabe Google obtendréis multitud de referencias. La cosilla es aportar la idea, y luego cada uno que la aplique como le venga en gana.

En la pagina de nagios existe un muy buen documento NRPE.pdf  en el que se detalla como realizar la instalación. Yo lo voy a esquematizar un poco, a modo de chuleta que me permita recordar de una manera rápida.

Puedo decir que es un proceso que he probado en maquinas con RedHat/Fedora, Suse y debian y funciona perfectamente.

Vamos a detalla todos los pasos a seguir :

Generamos el usuario nagios

useradd nagios
passwd nagios (introducimos la contraseña)

Si no nos genera el grupo lo generamos con el comando

groupadd nagios

Generamos un directorio en el que descargar todos los programas necesarios

mkdir /usr/src/programas/nagios
cd /usr/src/programas/nagio
s

Descargamos la ultima versión de los plugins de nagios de (www.nagios.org/download)

A día de hoy: nagios-plugins-1.4.13.tar.gz

Descomprimimos los archivos

tar -xvzf  nagios-plugins-1.4.13.tar.gz
cd  nagios-plugins-1.4.13

Y compilamos

./configure
make
make install.

Aplicamos permisos para que el usuario nagios tenga acceso y pueda ejecutar los scripts

chown nagios.nagios /usr/lib/nagios
chown -R nagios.nagios /usr/lib/nagios/libexec

Instalamos el servicio xinetd en caso de no disponer de el

apt-get install xinetd

Ahora procedemos a instalar el demonio NRPE

cd /usr/src/programas/nagios
nrpe-2.12.tar.gz
tar -xvzf nrpe-2.12.tar.gz
cd  nrpe-2.12

Y ahora compilamos

./configure –enable-ssl (deberemos tener las librerías instaladas openssl-devel)
make all

Instalamos el plugin NRPE

make install-plugin
make install-daemon
make install-daemon-config

Instalamos el demonio NRPE como servicio

make install-xinetd

Si tenemos la suerte de estar frente a un sistema debian, lo anterior lo podemos resumir un poco 🙂

apt-get install nagios-plugins nagios-nrpe-plugin

Editamos el fichero que genera /etc/xinetd.d/nrpe y modificamos la directiva only_from

only_from = IP_Servidor_Nagios

# default: on
# description: NRPE (Nagios Remote Plugin Executor)
service nrpe
{
flags           = REUSE
socket_type     = stream
port            = 5666
wait            = no
user            = nagios
group           = nagios
server          = /usr/local/nagios/bin/nrpe
server_args     = -c /usr/local/nagios/etc/nrpe.cfg –inetd
log_on_failure  += USERID
disable         = no
only_from       = 127.0.0.1 IP_Nagios_Server
}

Añadimos el servicio NRPE en /etc/services. Como por defecto lo instala en el puerto 5666.

nrpe    5666/tcp    #NRPE

Reiniciamos el servicio xinetd

/etc/init.d/xinetd restart

Añadimos en el fichero hosts.allow

nrpe :  IP_Nagios_Server,  127.0.0.1 : ALL

Comprobamos que todo funciona correctamente

netstat -at | grep nrpe
tcp        0      0 *:nrpe                      *:*                         LISTEN

telnet localhost 5666

Trying 127.0.0.1…
Connected to localhost.localdomain (127.0.0.1).
Escape character is ‘^]’
.

/usr/loca/nagios/libexec/check_nrpe -H localhost
NRPE v2.8

Tambien lo podemos lanzar desde el servidor de nagios

/usr/loca/nagios/libexec/check_nrpe -H IP_Maquina_NRPE
NRPE v2.8

Si recibimos un error del tipo CHECK_NRPE: Error – Could not complete SSL handshake, tenemos un problema. Tenemos que revisar todos los ficheros generados. Comprobar los permisos de los ficheros, soporte SSL, versiones NRPE (demonio/cliente), ficheros hosts.allow y hosts.deny TCP_Wrapper, rutas que le hemos marcado al binario nrpe en /etc/xinet.d/nrpe, revisar los logs que nos pueden aportar información (/var/log/messages)… y sobre todo tener paciencia y no desesperarse.

Una vez el servicio este levantado, pasamos a configurar el plugin NRPE definiendo todos los comandos que nos interesen. Como ya hemos comentado, aquí nosotros podemos aprovecharnos de los que ya trae el nagios, o podemos generar nosotros mismos alguno que nos pueda interesar.

vi /usr/local/nagios/etc/nrpe.cfg

command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20
command[check_disk]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/mapper/VolGroup00-LogVol00
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_portal]=/usr/local/nagios/libexec/check_jboss.sh

Ya solo nos falta la configuracion en el servidor nagios. Pero esto lo hacemos como hemos estado trabajando hasta ahora.

En el archivo commands.cfg añadimos

define command{
command_name    check_nrpe
command_line    $USER1$/check_nrpe -H $ARG1$ -c $ARG2$
}

Si vemos que el script tarda mas de 10 segundos en responder podemos añadir el parámetro -t Seg con el tiempo que estimemos para no obtener el error “CHECK_NRPE:Socket timeout after 10 seconds” o  “Connection refused or time out”

Y generamos un servicio

define service{
use generic-service
host_name X.X.X.X
service_description Check_WEB
check_command check_nrpe!X.X.X.X!check_portal
}

Ahora solo tenemos que reiniciar nuestro servidor nagios

/etc/init.d/nagios2 restart

Bueno compañero nos vemos en la próxima.

Enviar a un amigo: Share this page via Email
Categories: monitorizacion Tags: ,
  1. Farlpaccera
    jueves, 18 de noviembre de 2010 a las 11:10 | #1

    Hola, muy interesante el articulo, saludos desde Chile!

  1. Sin trackbacks aún.