Instalar y Configurar NRPE

5
NRPE Introducción Este pequeño daemon te permite ejecutar plugins locales en equipos remotos de equipos Linux, como es esto, el plugin check_nrpe es llamado por Nagios y hace las peticiones de los plugins hacia el equipo remoto, requiere que NRPE este siendo ejecutado en ese equipo como un standalone daemon o como un servicio en inetd, tambien soporta encriptación nativa de SSL/TLS. Hay una versión para Win2 pero la verdad opte por nsclient o nc_net. NOTA - La última versión es la 2.0 y es incompatible con las versiones 1.x, tanto para clientes como servidores. Aquí explicare de manera básica sus archivos y su funcionamiento. En el paquete de NRPE pueden encontrar los siguientes archivos: NRPE - Este es el programa que se ejecuta como proceso en el background en los equipos remotos y procesa las peticiones de ejecución de comandos del plugin check_nrpe del equipo donde esta Nagios. Recibe la petición del equipo autorizado, procesa la información del command line asociado con el comando que recibe y envia la información solicitada al plugin check_nrpe. check_nrpe - Este es el plugin que se ejecuta en el equipo donde esta Nagios y es utilizado para contactar el proceso NRPE en los equipos remotos. Este plugin solicita al plugin remoto a ejecutarse en el equipo y espera que el proceso de NRPE se ejcuta y regrese la informacion solicitada. Compilar

Transcript of Instalar y Configurar NRPE

Page 1: Instalar y Configurar NRPE

NRPE

Introducción

Este pequeño daemon te permite ejecutar plugins locales en equipos remotos de equipos Linux, como es esto, el plugin check_nrpe es llamado por Nagios y hace las peticiones de los plugins hacia el equipo remoto, requiere que NRPE este siendo ejecutado en ese equipo como un standalone daemon o como un servicio en inetd, tambien soporta encriptación nativa de SSL/TLS.Hay una versión para Win2 pero la verdad opte por nsclient o nc_net.

NOTA - La última versión es la 2.0 y es incompatible con las versiones 1.x, tanto para clientes como servidores.

Aquí explicare de manera básica sus archivos y su funcionamiento.

En el paquete de NRPE pueden encontrar los siguientes archivos:

NRPE - Este es el programa que se ejecuta como proceso en el background en los equipos remotos y procesa las peticiones de ejecución de comandos del plugin check_nrpe del equipo donde esta Nagios. Recibe la petición del equipo autorizado, procesa la información del command line asociado con el comando que recibe y envia la información solicitada al plugin check_nrpe.

check_nrpe - Este es el plugin que se ejecuta en el equipo donde esta Nagios y es utilizado para contactar el proceso NRPE en los equipos remotos. Este plugin solicita al plugin remoto a ejecutarse en el equipo y espera que el proceso de NRPE se ejcuta y regrese la informacion solicitada.

Compilar

Sencillo, simplemente descompriman el paquete y ejecuten:

isuraeru@localhost$ ./configureisuraeru@localhost$ make all

IMPORTANTE - El daemon NRPE debe ser compilado en el equipo remoto.

Instalación

Page 2: Instalar y Configurar NRPE

Solo copiar el archivo check_nrpe en /usr/local/nagios/plugins o dependiendo donde tengan sus plugins.En el caso del equipo remoto deben tener el daemon NRPE en donde tienen sus daemons i.e. /etc/rc.d/nrpe y tambien el archivo nrpe.cfg i.e. /etc/nrpe.cfg.

Ejecutando bajo inetd o xinetd

Asi es como lo tengo configurado y me funciona muy bien tenemos que ejecutar nrpe bajo inetd o xinetd y hacemos uso de los TCP wrappers, realizamos lo siguiente:

1.- Agregamos una linea en /etc/services como la siguiente:

nrpe 5666/tcp # NRPE

2.- Despues configuramos las entradas del daemon NRPE ya sea en inetd o xinetd, yo utilice inetdNOTA - Si ejecutamos nrpe en inetd o xinetd, las variables server_port y allowed_hosts en el archivo de configuración del nrpe serán ignoradas.

Inetd

Si nuestro sistema utiliza inetd CON tcpwrappers agregamos la siguiente entrada en /etc/inetd.conf:

nrpe stream tcp nowait [user] /usr/sbin/tcpd [nrpebin] -c [nrpecfg] --inetd

Si nuestro sistema utiliza inetd SIN tcpwrappers agregamos la siguiente entrada en /etc/inetd.conf:

nrpe stream tcp nowait [user] [nrpebin] -c [nrpecfg] --inetd

Solamente reemplazamos user por el usuario que el servidor nrpe sera ejecutado. i.e. nagios.

nrpebin con el path del binario de nrpe i.e. /usr/local/nagios/nrpe

nrpecfg con el path del archivo de configuracion de nrpe i.e. /usr/local/nagios/nrpe.cfg o /etc/nrpe.cfg.

Xinetd

Page 3: Instalar y Configurar NRPE

Si nuestro sistema utiliza xinetd en vez de inetd creamos un archivo llamado nrpe en /etc/xinetd.d conteniendo lo siguiente:

# default: on# description: NRPEservice nrpe{flags = REUSEsocket_type = streamwait = nouser = [user]server = [nrpebin]server_args = -c [nrpecfg] --inetdlog_on_failure += USERIDdisable = noonly_from = [ipaddress1] [ipaddress2] ...}

Reemplazamos user por el usuario que el servidor nrpe sera ejecutado. i.e. nagios.

nrpebin con el path del binario de nrpe i.e. /usr/local/nagios/nrpe

nrpecfg con el path del archivo de configuracion de nrpe i.e. /usr/local/nagios/nrpe.cfg o /etc/nrpe.cfg

ipaddress con las direcciones IP de los equipos qu deseamos sean aceptados para conectarse al daemon NRPE. Esto funciona solamente si xinetd fue compilado con soporte para tcpwrappers.

3.- Reiniciamos inetd o xinetd i.e.

isuraeru@localhost# /etc/rc.d/init.d/inet restart

isuraeru@localhost# /etc/rc.d/init.d/xinetd restart

4.- Agregamos entradas en nuestros archivos /etc/hosts.allow y /etc/hosts.deny para habilitar protección TCP wrapper para el servicio nrpe, es opcional pero altamente recomendado.

IMPORTANTE - Los plugins que se deseen ejecutar en el equipo remoto forzosamente deben estar en ese equipo por i.e. yo tengo un equipo que ejecuto check_procs, check_users y check_cpu los cuales los tengo en /usr/local/nagios/libexec y deben de ser propiedad de nagios.nagios.

OK, todo esto fue para los equipos remotos o clientes, ahora vamos a configurar el equipo donde esta Nagios.

Configuración equipo Nagios

Page 4: Instalar y Configurar NRPE

Primeramente ya contamos con un archivo de configuracion nrpe.cfg de ejemplo incluido en el paquete de nrpe el cual va en los equipos remotos ahora definiremos el comando para nrpe ya sea en checkcommands.cfg o commands.cfg dependiendo d cual esten utilizando, el cual podemos declararlo así

define command{command_name check_nrpecommand_line /usr/local/nagios/libexec/check_nrpe -H $HOSTADDRESS$ -c $ARG1$}

Ahora, para ejecutar este comando en los equipos remotos debemos de crear un servicio para tales equipos por ejemplo

define service{host_name someremotehostservice_description someremoteservicecheck_command check_nrpe!yourcommand... etc ...}

En donde yourcommand es el comando que deseamos ejecutar en el equipo remoto i.e. check_procs.

Y listo.