Вы находитесь на странице: 1из 4

c 




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.

 

Sencillo, simplemente descompriman el paquete y ejecuten:


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

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

 
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.


     

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
inetd
NOTA - 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.

 

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.

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

# default: on
# description: NRPE
service nrpe
{
flags = REUSE
socket_type = stream
wait = no
user = [user]
server = [nrpebin]
server_args = -c [nrpecfg] --inetd
log_on_failure += USERID
disable = no
only_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.

 
 
c 
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_nrpe
command_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 someremotehost
service_description someremoteservice
check_command check_nrpe!yourcommand
... etc ...
}
En donde yourcommand es el comando que deseamos ejecutar en el equipo remoto i.e.
check_procs.

Y listo.

Вам также может понравиться