Nagios NRPE – Supervisando máquinas Linux

NRPE – Nagios Remote Plugin Executor

NRPE permite ejecutar remotamente plugins de Nagios en otros equipos Linux / Unix. Esto le permite monitorear las métricas de la máquina remota (uso del disco, carga de la CPU, etc.) NRPE también puede comunicarse con algunos de los complementos del agente de Windows, por lo que puede ejecutar secuencias de comandos y verificar mediciones en máquinas Windows remotos.

En este post hablaremos de como configurar NRPE de manera simple en un entorno Linux.

**Este post se basa  en el documento oficial de nagios -> link

Descripción del Diseño de NRPE

NRPE se compone de dos piezas:

1.- El plugin check_nrpe, que reside en el equipo de monitorización local

2.- El demonio NRPE, que se ejecuta en la máquina Linux/Unix remoto.

nrpe

Cuando Nagios necesita controlar un recurso de servicio en una máquina Linux o Unix remoto realiza lo siguiente:

1.- Nagios ejecuta el plugin check_nrpe y le dice decirle qué servicios deséa comprobar

2.- El plugin check_nrpe contacta el demonio NRPE en la máquina remota a través de una conexión (opcional) protegida con SSL

3.- El demonio NRPE corre el plugin de Nagios apropiado para comprobar que el servicio o recurso en la máquina remopta

4.- Los resultados de la comprobación de servicio se devuelven y pasan desde el demonio NRPE al plugin check_nrpe, que a continuación, devuelve los resultados de la verificación del proceso de Nagios.

Nota: El demonio NRPE requiere que los plugins de Nagios estén instalados en el servidor Linux/Unix remoto. Sin ellos, el demonio no sería capaz de supervisar.

Ejemplos de uso

a) Por control directo.

El más sencillo uso del addon NRPE, se trata de monitorear los recursos “privados” o “locales”  a distancia de una máquina Linux/Unix. Esto incluye servicios como la carga de la CPU, uso de memoria, uso del swap, los usuarios activos, uso de disco, estados de proceso, etc

nrpe-metodo1

b) Para controles indirectos.

NRPE puede comprobar indirectamente los servicios “públicos” y los recursos de los servidores remotos que podrían no ser accesibles directamente desde el host de supervisión. Por ejemplo, si el host remoto se encuentra en una DMZ en la cual Nagios no tiene comunicación (porque el encargado de comunicaciones no te dará por nada el acceso), pero si tiene acceso a otro servidor que si se comunica con el servidor de la DMZ y en la que el demonio NRPE y el plugins si se comunican, se puede configurar NRPE para que supervise el servidor web remoto indirectamente. El demonio NRPE está actuando esencialmente como apoderado en este caso

nrpe-metodo2

INSTALACIÓN

Para utilizar el complemento NRPE, tendrá que realizar algunas tareas tanto en el servidor Nagios como en el servidor remoto Linux/Unix.

Se explicarán ambas tareas por separado.

Nota: Estas instrucciones están basadas en un host remoto que ejecuta Centos. Las convenciones de nomenclatura, comandos, etc varían en diferentes distribuciones de Linux y variantes de UNIX, por lo que las instrucciones proporcionadas aquí pueden ser algo diferentes según su situación.

a) Requisitos previos Para completar estas instrucciones de instalación, deberá:

1.- Acceso de root en el servidor Linux/Unix remoto

2.- El acceso a la cuenta de usuario nagios en el host de monitoreo

b) Supuestos

Asumiremos que va a instalar el addon NRPE en un sistema que soporte TCP wrappers y ha instalado xinetd. Las distribuciones de Linux más modernas y variantes de Unix los tienen instalados por defecto. Si usted tiene un sistema antiguo que ejecuta inetd (en lugar de xinetd) y/o no sea compatible con TCP wrappers o desea ejecutar el demonio NRPE sin inetd o xinetd, lea los siguientes archivos para obtener información sobre la instalación del addon (ambos se encuentran en el directorio principal de la distribución NRPE al descomprimir el tar.gz):

- README

- SEGURIDAD

Configuración en el host remoto

Estas instrucciones deben ser completados en el host Linux/Unix remoto en el que el demonio NRPE será instalado.

Se instalarán los plugins de Nagios y el demonio NRPE

1.- Inicie sesión como usuario Root y cree la cuenta nagios y luego asignele su password

/usr/sbin/useradd nagios
passwd nagios

2.- Instale los Plugins Nagios. Cree un directorio para almacenar las descargas.

mkdir ~/downloads
cd ~/downloads

  • Descarga el código fuente de los plugins de Nagios (visite http://www.nagios.org/download/ para descargas de las última versiones.

wget http://osdn.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.6.tar.gz

  • Extraiga el Nagios plugins.

tar xzf nagios-plugins-1.4.6.tar.gz

cd nagios-plugins-1.4.6

  • Compile e instale los plugins y la librería ssl-dev.

yum install libssl-dev

./configure

make

make install

Los permisos del directorio de plugins y para los plugins tendrán deben fijarse en este punto, por lo que será necesario ejecutar los siguiente comandos:

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

  • Instale xinetd

yum install xinetd

  • Instale el demonio NRPE

Descarge el código fuente NRPE (desde http://www.nagios.org/download/ para enlaces a la última versiones).

cd ~/downloads
wget http://osdn.dl.sourceforge.net/sourceforge/nagios/nrpe-2.8.tar.gz

  • Extraiga NRPE.

tar xzf nrpe-2.8.tar.gz
cd nrpe-2.8

  • Compile NRPE.

./configure
make all

  • Instale el plugin NRPE (para testing), el demonio, y una muestra del archivo de configuración del demonio.

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

  • Instalar el demonio NRPE como un servicio bajo xinetd.

make install-xinetd

  • Edite el archivo /etc/xinetd.d/nrpe y agregue la dirección IP del servidor nagios en la directiva only_from. only_from = 127.0.0.1 <nagios_ip_address>
  • Agregue la siguiente entrada para el demonio NRPE en el fichero /etc/services

nrpe           5666/tcp                # NRPE

  • Reinicie el servicio xinetd

servicio xinetd restart

Pruebe el demonio NRPE localmente para ver si las cosas funcionan correctamente. Asegúrese de que el demonio nrpe se está ejecutando bajo xinetd.

netstat -a | grep nrpe

La salida de este comando debería mostrar algo como esto:

tcp        0      0 *:nrpe                  *:*                     LISTEN

Si es así, ¡genial! Si no lo hace, asegúrese de lo siguiente:

1.- Ha añadido el ingreso nrpe a tu archivo /etc/services

2.- La directiva only_from en el archivo /etc/xinetd.d/ nrpe contiene una entrada para “127.0.0.1”

3.- xinetd se instala y se inicia

4.- Compruebe los archivos de registro del sistema de referencias sobre xinetd o nrpe y corrija los problemas que se reportan

A continuación, compruebe que el daemon NRPE funciona correctamente. Para ello, ejecute el plugin check_nrpe que fue instalado para fines de prueba.

/usr/local/nagios/libexec/check_nrpe -H localhost

Usted debe obtener una cadena de texto que le dice la versión que tiene instalada de NRPE.

En caso de que utilice Iptables, abra las reglas del firewall Asegúrese de que el servidor de seguridad local del equipo permitirá que el demonio NRPE sea accequible desde servidores remotos. Para ello, ejecute el comando iptables siguiente. Tenga en cuenta que la configuración del firewall puede cambiar según su distribución.

iptables -I RH-Firewall-1-INPUT -p tcp -m tcp –dport 5666 -j ACCEPT

Guarde la nueva regla iptables para que sobreviva al reiniciar el equipo.

service iptables save

Personalizar los comandos de NRPE

El archivo de configuración NRPE muestra varias definiciones de comandos útiles para supervisar la máquina remota.

Las definiciones de comandos se utilizan para definir los comandos que el demonio NRPE ejecutará para monitorear los recursos y servicios locales. Las definiciones de comandos de ejemplo ejecutan algunos de los plugins que se instalaron en el paso 2.

Puede editar las definiciones de comandos, agregar nuevos comandos, etc, mediante la edición del archivo de configuración: vi /usr/local/nagios/etc/nrpe.cfg.

Más información sobre cómo personalizar los comandos se puede encontrar en la sección “Personalización del Configuración”.

Por el momento, supondremos que usted está usando los comandos de ejemplo. Usted puede probar algunos de estos ejecutando los siguientes comandos:

/usr/local/nagios/libexec/check_nrpe -H localhost -c check_users

/usr/local/nagios/libexec/check_nrpe -H localhost -c check_load

/usr/local/nagios/libexec/check_nrpe -H localhost -c check_hda1

/usr/local/nagios/libexec/check_nrpe -H localhost -c check_total_procs

/usr/local/nagios/libexec/check_nrpe -H localhost -c check_zombie_procs

En este punto, ya ha terminado la instalación y configuración NRPE en el host remoto. Ahora es el momento de instalar los componentes y hacer algunas configuraciones en el servidor nagios.

Instalación del Host Monitoreo (Nagios.

En el sistema de vigilancia (la máquina que ejecuta Nagios), usted tendrá que hacer un par de cosas:

1.- Instale el plugin check_nrpe

2.- Cree una definición de mandato Nagios para utilizar el plugin check_nrpe

3.- Cree definiciones de Nagios para equipos y servicios para el control de la máquina remota

En estas instrucciones se supone que ya ha instalado Nagios en este equipo de acuerdo con la guía de instalación (Sino vea esto -> link).

Instalación:

1.- Instale el plugin check_nrpe como root.

2.- Cree un directorio para almacenar las descargas.

mkdir /downloads

cd /downloads

3.- Descarga el código fuente del addon NRPE (visita http://www.nagios.org/download/ para enlaces a la última versiones).

wget http://osdn.dl.sourceforge.net/sourceforge/nagios/nrpe-2.8.tar.gz

4.- Extraiga el código fuente.

tar xzf nrpe-2.8.tar.gz

cd nrpe-2.8

5.- Compile el addon NRPE.

./Configure

make all

6.- Instale el plugin NRPE.

make install-plugin

7.- Compruebe la comunicación con el demonio NRPE, Asegúrese de que el plugin check_nrpe puede hablar con el demonio NRPE en el host remoto.

Reemplaze “192.168.0.1” a continuación con la dirección IP del host remoto que tenga instalado NRPE.

/usr/local/nagios/libexec/check_nrpe -H 192.168.0.1

Usted debe obtener un string que indica la versión de NRPE está instalado en la máquina remota, si el plugin devuelve un error de tiempo de espera, compruebe lo siguiente:

  • Asegúrese de que no hay un firewall entre el servidor remoto y el servidor de control que bloquea comunicación
  • Asegúrese de que el demonio NRPE está instalado correctamente en xinetd
  • Asegúrese de que el host remoto no tiene reglas de firewall local (iptables) que impiden que el servidor de control se comunique con el demonio NRPE

8.- Cree una definición de comando.

Tendrá que crear una definición de comando en uno de los archivos de configuración de Nagios con el fin de utilizar check_nrpe. Abra el archivo commands.cfg para la edición

vi /usr/local/nagios/etc/commands.cfg y añada la siguiente definición en el archivo:

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

Ahora está listo para comenzar a añadir los servicios que deben ser controlados en la máquina remota a la configuración de Nagios.

9.- Cree definiciones de equipos y servicios

Tendrá que crear algunas definiciones de objetos con el fin de supervisar la máquina Linux/Unix remoto. Estas definiciones puede ser colocado en su propio archivo. Vamos a crear un nuevo modelo para las definiciones de linux.

define host{
name linux-box ; Name of this template
use generic-host ; Inherit default values
check_period 24×7
check_interval 5
retry_interval 1
max_check_attempts 10
check_command check-host-alive
notification_period 24×7
notification_interval 30
notification_options d,r
contact_groups admins
register 0 ; DONT REGISTER THIS – ITS A TEMPLATE
}

Tenga en cuenta que la definición de plantilla “linux-box” hereda los valores predeterminados de la plantilla “generic-host”, que es definido en el archivo localhost.cfg.

A continuación, defina un nuevo huésped para el Linux/Unix.

define host{
use linux-box ; Inherit default values from a template
host_name remotehost ; The name we’re giving to this server
alias Fedora Core 6 ; A longer name for the server
address 192.168.0.1 ; IP address of the server
}

A continuación, defina algunos servicios para el control del Linux/Unix remoto.

Estos ejemplos de definiciones de servicios utilizarán los comandos de ejemplo que se han definido en el archivo nrpe.cfg en el host remoto. El siguiente servicio controlará la carga de la CPU en la máquina remota. El argumento “check_load” que se pasa a la definición del comando check_nrpe le dice al demonio NRPE que ejecute el comando “check_load” tal como se define en el archivo nrpe.cfg.

define service{
use generic-service
host_name remotehost
service_description CPU Load
check_command check_nrpe!check_load
}

El siguiente servicio vigilará el espacio libre en el disco en /dev/hda1 en el host remoto. 

define service{
use generic-service
host_name remotehost
service_description /dev/hda1 Free Space
check_command check_nrpe!check_hda1
}

El siguiente servicio hará un seguimiento del número total de procesos en la máquina remota.

define service{
use generic-service
host_name remotehost
service_description Total Processes
check_command check_nrpe!check_total_procs
}

Estas son las definiciones de los servicios básicos para el control de la máquina remota. Si usted desea agregar servicios adicionales para ser monitoreados, lea la sección “Personalización de la configuración”.

Reinicie Nagios

En este punto se ha instalado el plugin check_nrpe, el anfitrión NRPE y las definiciones de servicios para el control de la máquina remota Linux/Unix. Ahora es el momento de chequear que funcione.

Compruebe los archivos de configuración en el servidor Nagios.

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Si hay errores, corrijalos. Si todo está bien, puede reiniciar Nagios.

services nagios restart

Eso es todo! Debería ver las definiciones de acogida y el servicio que ha creado en la interfaz web de Nagios. En unos pocos minutos Nagios deberá tener la información sobre el estado actual de la máquina Linux/Unix remoto. Dado que es posible que desee monitorear más servicios en la máquina remota, le sugiero que lea la siguiente sección así. Además, cuando llege el momento de actualizar la versión de NRPE, le será bastante fácil de hacer. La instalación inicial fue el más complicada, pero su actualización es muy fácil.

PERSONALIZACIÓN DE LA CONFIGURACIÓN

Pronto en un nuevo Post!!!!

 

 

9 Responses to “Nagios NRPE – Supervisando máquinas Linux”


  • buen dia cuando hablas de:
    9.- Cree definiciones de equipos y servicios

    Tendrá que crear algunas definiciones de objetos con el fin de supervisar la máquina Linux/Unix remoto. Estas definiciones puede ser colocado en su propio archivo. Vamos a crear un nuevo modelo para las definiciones de linux.

    en que archivo hay que modificarlo

    gracias y disculpa

Leave a Reply




This site is part of the official Nagios Community Network and is operated with permission from Nagios Enterprises. Nagios® and the Nagios logo are registered trademarks of Nagios Enterprises.

Disclaimer | Terms of Use | Privacy Policy