NRPE. Cliente Linux. Instalación y configuración básica.

Hasta ahora hemos hablado de varios clientes para chequear sistemas desde Nagios: el cliente de check_mk que nos valía para Windows/Linux y NSCLIENT++ que nos valía exclusivamente para equipos Windows. Nos toca ahora el cliente clásico para equipos Linux/Unix. Me sigue gustando más si usamos check_mk hacerlo con el cliente de este pero en ocasiones no es posible o necesitamos algo adicional que podemos hacer con nrpe (aunque veremos en un futuro que con el cliente de check_mk podemos usar plugins standard también del equipo remoto).

NRPE es un “addon” para Nagios que permite ejecutar plugins de este en equipos remotos. Realmente NRPE es más que un cliente, podríamos decir que es un “protocolo”. Nació inicialmente para permitir ejecutar plugins de Nagios remotamente en servidores Linux pero actualmente podemos usarlo también para servidores Windows como vimos en el artículo de NSCLIENT++.

Se compone del “demonio” en equipo remoto y del plugin “check_nrpe” que permite llamar a chequeos configurados en el nrpe remoto desde el servidor de Nagios. Realmente podemos ejecutar plugins de Nagios en equipos remotos de forma más segura por medio del plugin check_by_ssh, entonces… ¿por qué usar nrpe? Por que “check_by_ssh” penaliza bastante más en el uso de CPU de ambos equipos. Si tenemos una instalación con muchos equipos a chequear la penalización puede ser importante.
El plugin check_nrpe es llamado desde Nagios y realiza peticiones de ejecución al demonio NRPE corriendo en la máquina remota. Soporta el paso de argumentos al servidor y encriptación nativa SSL/TLS.

Instalación en equipos Linux remotos.

Aunque antiguamente era necesario en muchos casos compilar tanto el demonio como los plugins, en la actualidad todas las distribuciones Linux tienen ya los paquetes necesarios. Debemos instalar tanto el Sofware (demonio) de nrpe como los plugins de Nagios.

Debian / Ubuntu?

Basta con que busquemos por “nrpe” e instalemos

# apt-cache search nrpe
nagios-nrpe-plugin - Nagios Remote Plugin Executor Plugin
nagios-nrpe-server - Nagios Remote Plugin Executor Server
nagios-plugins-basic - Plugins for the nagios network monitoring and management system
nagios-plugins - Plugins for the nagios network monitoring and management system
# apt-get install nagios-nrpe-server nagios-plugins-basic nagios-plugins

OJO. Instalamos el denominado “server”. El paquete nrpe-plugin contiene el plugin “check_nrpe” que es el que habría que instalar en Nagios si no estuviera. Nos crea un servicio “nagios-nrpe-server” que debemos configurar con inicio automático. Podemos arrancarlo:

service nagios-nrpe-server start
service nagios-nrpe-server status

Centos / Redhat

Centos incluye en sus repositorios. Redhat creo que también lo incluye. Si no lo incluyera habría que añadirle los repositorios de EPEL.

Buscamos e instalamos:

# yum search nrpe
============ N/S Matched: nrpe =======
nagios-plugins-nrpe.x86_64 : Provides nrpe plugin for Nagios
nrpe.x86_64 : Host/service/network monitoring agent for Nagios
# yum install nagios-plugins-nrpe nagios-plugins-all nrpe

Nos crea un servicio que debemos configurar como automático. Podemos iniciarlo:

service nrpe start
service nrpe status

Configuración de NRPE.

El fichero de configuración se encuentra en la ruta: /etc/nagios/nrpe.cfg.
Para una configuración básicamente debemos tocar dos cosas, permitir nuestro host de Nagios y permitir recibir argumentos en los comandos si así lo deseamos (no se recomienda por temas de seguridad pero podemos valorarlo si nos es necesario)

# Host permitidos
allowed_hosts=127.0.0.1,192.168.1.43
# Permitir argumentos
dont_blame_nrpe=1

Tenemos ya predefinidos unos plugins listos para su ejecución. Vemos que los que permiten argumentos vienen comentados. Copiamos algunos:

command[check_users]=/usr/lib/nagios/plugins/check_users -w 5 -c 10
command[check_load]=/usr/lib/nagios/plugins/check_load -w 15,10,5 -c 30,25,20
command[check_hda1]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/hda1
command[check_zombie_procs]=/usr/lib/nagios/plugins/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/lib/nagios/plugins/check_procs -w 150 -c 200

#command[check_users]=/usr/lib/nagios/plugins/check_users -w $ARG1$ -c $ARG2$
#command[check_load]=/usr/lib/nagios/plugins/check_load -w $ARG1$ -c $ARG2$
#command[check_disk]=/usr/lib/nagios/plugins/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
#command[check_procs]=/usr/lib/nagios/plugins/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$

No están configurados todos los plugins que ha instalado, solo los más habituales. No solo podemos ejecutar los plugins relacionados con temas locales (disco. memoria, usuarios,…) si no cualquier otro. Hay escenarios donde es interesante o imprescindible (p.e. en una DMZ) que otro hosts realice los chequeos tradicionales (ping p.e.) en “nombre de” Nagios.

Probamos desde Nagios contra nuestro host cliente por nombre o por IP.

# Sin argumentos (fijados en el command de nrpe.cfg)
check_nrpe -H NuestroHost -c check_users
USERS OK - 2 users currently logged in |users=2;5;10;0
# Con argumentos.
check_nrpe -H NuestroHost -c check_users -a 1 2
USERS WARNING - 2 users currently logged in |users=2;1;2;0

 Ficheros de configuración de Nagios

Los ficheros de configuración de Nagios no tienen mucho misterio. El command deberíamos tenerlo configurado tal que así:

# Sin argumentos
define command{
 command_name check_nrpe
 command_line /usr/local/nagios/libexec/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
 }
# Con argumentos
define command{
 command_name check_nrpe_arg
 command_line /usr/local/nagios/libexec/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ -a $ARG2$ $ARG3$
 }

Y en la llamada al check en la definición de nuestro servicio el servicio usamos p.e.:

# Sin argumentos
 check_command   check_nrpe!check_users
# Con argumentos
 check_command   check_nrpe_arg!check_users!4!6

Como vemos es bastante sencillo configurar un cliente NRPE. En otro articulo explicaremos como usar los plugins de Nagios en equipos remotos a través del cliente de check_mk. De esta forma ya habremos cubierto los escenarios más habituales.

 

Leave a Reply

Your email address will not be published. Required fields are marked *

*

Comment moderation is enabled. Your comment may take some time to appear.