Ejecutar plugins de nagios en equipos remotos
[toc]
Introducción
En ocasiones queremos monitorizar diferentes parámetros de un servidor remoto de el que tenemos instalado Nagios. Para recuperar esta información necesitamos de una manera en la que el Nagios pueda solicitarla al servidor remoto y este se la diga. Para ello disponemos de Nrpe, que es un servicio que instalado en la máquina remota, ejecuta plugins de Nagios y devuelve el resultado a quien se lo solicite. A continuación vamos a ver que tenemos que hacer para usarlo.
Instalar Nrpe
Lo primero que tenemos que hacer es instalamos el servidor nrpe en la máquina remota. Para ello tendremos que instalar el paquete de nombre nagios-nrpe-server con nuestro gestor de paquetes favoritos o ejecutando la siguiente orden:
>> sudo apt-get install nagios-nrpe-server
Si en esa máquina disponemos de un cortafuegos, tendremos que abrir el puerto en el que escucha nrpe (por defecto 5666) y que se encuentra en el fichero /etc/nagios/nrpe.cfg indicado en el parámetro server_port:
server_port=5666
Otra de las cosas que tenemos que tener en cuenta es indicarle las direcciones ip que podrán solicitarle información. Para ello tendremos que editar el fichero /etc/nagios/nrpe.cfg y cambiar la línea que pone allowed_hosts para poner la ip de nuestro servidor con nagios. Por ejemplo así:
allowed_hosts=152.145.125.145
Ahora podremos instalar cualquier plugin de Nagios y declarar el comando que le ejecute. Para ello tendremos que añadir al final del fichero /etc/nagios/nrpe.cfg una línea por cada plugin con el siguiente formato:
command[NOMBRE_COMANDO]=COMANDO
Por ejemplo:
command[check_users]=/usr/lib/nagios/plugins/check_users -w 5 -c 10
Configurar Nagios
En la máquina del servidor de Nagios tenemos que instalar un plugin que será el encargado de pedirle la información a un servidor remoto con nrep. Para ello instalaremos el paquete de nombre nagios-nrpe-plugin a través de nuestro gestor de paquetes favoritos o con el siguiente comando:
>> sudo apt-get install nagios-nrpe-plugin
Los parámetros que soporta el plugin son los siguientes:
>> /usr/lib/nagios/plugins/check_nrpe --help Usage: check_nrpe -H <host> [-n] [-u] [-p <port>] [-t <timeout>] [-c <command>] [-a <arglist...>] Options: -n = Do no use SSL -u = Make socket timeouts return an UNKNOWN state instead of CRITICAL <host> = The address of the host running the NRPE daemon [port] = The port on which the daemon is running (default=5666) [timeout] = Number of seconds before connection times out (default=10) [command] = The name of the command that the remote daemon should run [arglist] = Optional arguments that should be passed to the command. Multiple arguments should be separated by a space. If provided, this must be the last option supplied on the command line. -h,--help Print this short help. -l,--license Print licensing information. -n,--no-ssl Do not initial an ssl handshake with the server, talk in plaintext.
Para probar si funciona, por ejemplo para ejecutar remotamente un comando de nombre check_users en un servidor remoto de ip 145.124.124.125 con nrpe instalado, tendremos que ejecutar el siguiente comando:
>> /usr/lib/nagios/plugins/check_nrpe -H 145.124.124.125 -u -c check_users
Los comandos de nagios que el plugin nrpe define están en este fichero /etc/nagios-plugins/config/check_nrpe.cfg y un ejemplo de uso sería la definición del siguiente servicio de nagios:
define service { hostgroup_name remote_linux service_description Users - Usuarios check_command check_nrpe_1arg!check_users use generic-service }
Problemas
Problema
Puede darse el caso de que al intentar ejecutar un plugin en un equipo remoto, nos de el siguiente error:
>> /usr/lib/nagios/plugins/check_nrpe -H 145.124.124.125 -u -c check_users CHECK_NRPE: Error - Could not complete SSL handshake
Solución
El problema puede ser debido a que no hemos indicado la ip del servidor de nagios en el fichero de configuración del servidor de nrpe en el equipo remoto. Por lo que tendremos que ponerla como se indica en el apartado de instalación del nrpe .