Instalar y configurar Nagios en servidor Debian 7 (Parte III)

Nagios_LogoSeguimos con el tercer capítulo de la guía de instalación y configuración del servidor de monitorización Nagios, en un sistema operativo GNU/Linux Debian 7. En el capítulo que trataremos hoy hablaremos de cómo se conecta Nagios con un cliente Linux con el plugin NRPE, además de configurar servicios como el SMTP.

Recapitulemos

En la primera parte de la guía tratamos de instalación y configuración básica del servidor, aquí. En la segunda parte de la creación de un cliente windows, concretamente un Windows Server 2008, y posteriormente de la instalación del programa de conexión en dicho servidor, aquí.

Instalar el add-on NRPE

Para poder monitorizar máquinas Linux debemos de instalar en el servidor el Add-on NRPE, que  se encargará de ello. Desde el siguiente enlace podéis encontrár más detalles.

En el siguiente esquema podéis ver su funcionamiento:

nrpe-1Descargamos el add-on:

1
wget http://sourceforge.net/projects/nagios/files/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz

Una vez descargado, lo descomprimimos, accedemos al directorio y compilamos el código fuente.

1
2
3
4
cd nrpe-2.15
./configure
make all
make install-plugin

Si nos da el siguiente error:

nagios-3-ochobits-1El mensaje “Checking for SSL headers… configure: error: Cannot find ssl headers“, lo podemos solucionar de la siguiente manera:

1
apt-get install libssl-dev

Así instalamos las librerías ssl, y ahora el comando configure añadiendo parámetros:

1
./configure --with-ssl=/usr/bin/openssl --with-ssl-lib=/usr/lib/x86_64-linux-gnu

La solución al error lo he encontrado en la web: askubuntu.com

Y ejecutamos los comandos que van a continuación, es decir: make alll y make install-plugin

Ya hemos instalado el plugin en el servidor, ahora haremos lo mismo en el cliente.

Instalar Nagios Plugins y  NRPE en el cliente

Voy a usar como cliente un servidor Debian 7 que tiene instalado un servicio de relay de correo con Postfix, que usa SMTP

Antes de empezar creamos un usuario que se llame nagios, con la contraseña igual que el nombre.

1
2
useradd nagios
passwd nagios

Y descamos el paquete nagios-plugin:

1
wget http://nagios-plugins.org/download/nagios-plugins-2.0.3.tar.gz

Una vez descargado, lo descomprimimos y accedemos a la carpeta:

1
2
tar xvfz nagios-plugins-2.0.3.tar.gz
cd nagios-plugins-2.0.3

Y ya podemos compilar:

1
2
3
4
export LDFLAGS=-ldl
./configure --with-nagios-user=nagios --with-nagios-group=nagios --enable-redhat-pthread-workaround
make
make install

Cambiamos los propietarios de las carpetas de Nagios en el cliente:

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

Ahora nos toca instalar NRPE en el cliente:

Nos descargamos el add-on NRPE otra vez, pero ahora en cliente:

1
wget http://sourceforge.net/projects/nagios/files/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz

Descomprimimos y entramos dentro del directorio recíen creado:

1
2
tar xvfz nrpe-2.15.tar.gz
cd nrpe-2.15

Compilamos el código fuente:

1
2
3
4
5
6
./configure
make all
make install-plugins
make install-daemon
make install-daemon-config
make install-xinetd

Si nos da el mismo error SSL, sólo tenemos que seguir las instrucciones de cuando instalamos el software en el servidor Nagios.

Otro error que nos puede dar es al instalar xinetd. Tenemos que tener el daemon xinetd instalado, simplemente lo instalamos con el comando:

1
apt-get -y install xinetd

Configurar NRPE en el demonio del cliente

Modificar el archivo de configuración de NRPE dentro de xinetd, para indicar que admitimos conexiones desde nuestro servidor Nagios

1
nano /etc/xinetd.d/nrpe

Y añadimos en la línea:

1
  only_from       = 127.0.0.1 192.168.1.x

Donde la x es la IP de nuestro servidor nagios.

Modificamos el archivo /etc/services, y añadimos al final:

1
nrpe 5666/tcp # NRPE

El archivo /usrc/local/nagios/etc/nrpe.cfg

Los comandos que se usan para monitorizar se configuran en el archivo nrpe.cfg. Si lo editaremos veremos varios comandos de ejemplo.

Si echamos un ojo a los parámetros veremos que la “w” es Warning, es decir, advertencia, y “c” es sinónimo de crítico. Podemos modificar el comando check_disk, si el espacio disponibles es menor al 20 % lanza una advertencia, si queda menos del 10 % de espacio Nagios nos enviará un mensajé crítico.

1
command[check_disk]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/hda1

Creamos client y servicio en el servidor Nagios

Ya hemos instalado los plugins necesarios, tanto en el servidor Nagios como en el servidor remoto a monitorizar.

Para ello creamos un archivo desde cero, con los datos del host remoto y sus servicios. En muchas guías recomiendan copiar el archivo localhost.cfg y modificarlo. Creo que es mejor crearlo nuevo, para evitar errores.

Creamos /usr/local/nagios/etc/objects/linux.cfg

Con el siguiente template, que servirá de base:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
define host{
     name                       linux-box
     use                        generic-host
     check_period               24x7
     check_interval             5
     retry_interval             1
     max_check_attempts         10
     check_command              check-host-alive
     notification_period        24x7
     notification_interval      30
     notification_options       d,r
     contact_groups             admin
     register                   0  ;  ES UNA PLANTILLA
}

Añadimos el host que llamaremos RelayCorreo

1
2
3
4
5
6
define host{
      use                  linx-box
      host_name            RelayCorreo
      alias                Debian 7 
      address              192.168.1.x
     }

Y la definición de servicio:

1
2
3
4
5
6
define service{
use                              generic-service
host_name                        RelayCorreo
service_description              Root Partition
check_command                    check_nrpe!check_load
}

Los comandos que estamos definiendo recuerda que están configurados en el archivo /usr/local/nagios/etc/nrpe.cfg del remote host, que en nuestro caso se llamana RelayCorreo.

Añadimos cuatro servicios más, que se encargarán de revisar el espacio de disco, el “log” de los usuarios, el total de los procesos y de los procesos “zombie”

Control de disco:

1
2
3
4
5
6
define service{
use                              generic-service
host_name                        RelayCorreo
service_description              /dev/hda1 Free Space
check_command                    check_nrpe!check_hda1
}

Control de usuarios:

1
2
3
4
5
6
define service{
use                              generic-service
host_name                        RelayCorreo
service_description              Current Users
check_command                    check_nrpe!check_users
}

Control de los procesos:

1
2
3
4
5
6
define service{
use                              generic-service
host_name                        RelayCorreo
service_description              Total Processes
check_command                    check_nrpe!check_total_procs
}

Control de los procesos “zombie”

1
2
3
4
5
6
define service{
use                              generic-service
host_name                        RelayCorreo
service_description              Zombie Processes
check_command                    check_nrpe!check_zombie_procs
}

Modificamos el archivo nagios.cfg, para añadir el nuevo archivo.

Añadiendo la línea:

1
2
# Añadimos el fichero linux.cfg
cfg_file=/usr/local/nagios/etc/objects/linux.cfg

¡IMPORTANTE! Para que funcione el plugin tenemos que modificar el fichero /usr/local/nagios/etc/objects/commands.cfg y añadir:

1
2
3
4
5
# Plugin nrpe para los servidores Linux remotos
define command{
        command_name  check_nrpe
        command_line  $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
        }

Ahora ya podemos reiniciar el servicio nagios

1
service nagios restart

Si todo ha todo bien veremos los servicios OK en la interfaz de Nagios:

nagios-nrpe-1Añadiendo nuevos comandos de control en NRPE

El plugin NRPE permite añadir nuevas definiciones de comandos.Si listamos los archivos de /usr/local/nagios/libexec, veremos los comandos disponibles:

nagios-nrpe-2Indicaremos a NRPE que queremos revisar el estado de la partición transaccional o swap de nuestro RelayCorreo. Donde nos avisará que cuando quede menos del 20 % de espacio nos envié un aviso y si queda menos 10% un aviso crítico.

Probarremos el comando en el remote host con el comando:

1
/usr/local/nagios/libexec/check_swap -w 20% -c 10%

Y obtendremos un mensaje similar al siguiente:

nagios-nrpe-3Añadimos el comando en el archivo del remote host /usr/local/nagios/etc/nrpe.cfg, justo debajo del resto de comandos:

1
command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 10%

Añadimos el servicio en nuestra configuración del server Nagios en /usr/local/nagios/etc/objects/linux.cfg:

1
2
3
4
5
6
define service{
use                              generic-service
host_name                        RelayCorreo
service_description              Swap Usabe
check_command                    check_nrpe!check_swap
}

Cómo última parte de hoy añadiremos el control del servicio SMTP

Añadimos la siguiente línea en el archivo nrpe.cfg del remote host RelayCorreo.

1
command[check_smtp]=/usr/local/nagios/libexec/check_smtp -w 1 -c 2

Y a posteriori, al igual que hemos hecho con el servicio swap, añadimos el servicio SMTP en el servicios nagios:

1
2
3
4
5
6
define service{
use                              generic-service
host_name                        RelayCorreo
service_description              SMTP
check_command                    check_nrpe!check_smtp
}

Reinciamos el servicio nagios:

1
service nagios restart

Y con esto y un bizcocho…,  ya lo tenemos todo listo:

nagios-nrpe-4En el próximo capítulo veremos como generar gráficos de los servicios con cacti.

Si queréis saber más sobre el plugin NRPE, os recomiendo las guías oficiales:

Nagios NRPE Documentation (en inglés)

Más capítulos sobre Nagios:

See you soon!

You may also like...

13 Responses

  1. Muri dice:

    Aloha

    al momento de compilar en el cliente (ubuntu)

    cd nrpe-2.15
    ./configure
    make all

    no funciona, me arroja el error “no se especificó ningún objetivo y no se encontró ningún makefile. Alto.”

    Segui todos los pasos tal cual, de hecho ya estoy monitoreando servers con windows, pero no he podido arrancarlo en mis clientes ubuntu. ¿Sabes que puede ser?

    • davidochobits dice:

      Hola Muri,

      Entiendo que se ha descomprimido el fichero en la carpeta correspondiente. ¿Lo puedes comprobar?

      También puedes ser, que al usar Ubuntu, debas de realizar las operaciones como super usuario, con el comando: sudo -s, realizarás dichas tareas con esos permisos.

      Espero haberte ayudado.

      Saludos!

      • Muri dice:

        Antes que nada muchas gracias davidochobits por la rápida respuesta.

        ¿El fichero debe ir en alguna carpeta en especial? He intentado incluso en la carpeta nagios en ubuntu. Te dejo una captura con mi problema:

        http://es.tinypic.com/r/rsqvdv/8

        En Debian instale el plugin todo perfecto, pero Ubuntu me tiene complicado, de ante mano gracias 🙂

  2. Muri dice:

    A todo esto como puedes ver no me genera el archivo Makefile yo descarge NRPE con wget http://sourceforge.net/projects/nagios/files/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz. y descomprimi con tar xvfz nrpe-2.15.tar.gz

    • Muri dice:

      Update**

      Ya lo solucione, efectivamente y no se la razón al descomprimir en Ubuntu no se creaba el archivo Makefile. Para solucionarlo copie la carpeta completa de NRPE desde Debian hacía Ubuntu luego le di permisos con eso compilo sin problemas. Muchas gracias 🙂 Continuaré con tu tutorial

  3. Miguel dice:

    Hola, estaba siguiendo el tutorial al pie de la letra, y al finalizar cuando reicinio el servicio nagios, me aparecen los siguientes erroes.

    Error: Contactgroup ‘admin’ is not defined anywhere
    Error: Could not add contactgroup ‘admin’ to host (config file ‘/usr/local/nagios/etc/objects/linux.cfg’, starting on line 16)
    Error processing object config files!

    ***> One or more problems was encountered while processing the config files…

    Check your configuration file(s) to ensure that they contain valid
    directives and data defintions. If you are upgrading from a previous
    version of Nagios, you should be aware that some variables/definitions
    may have been removed or modified in this version. Make sure to read
    the HTML documentation regarding the config files, as well as the
    ‘Whats New’ section to find out what has changed.

    Podrias ayudarme?
    Gracis de antemano

  4. Daniel S. dice:

    Me ha servido de mucho los tutoriales, muchas gracias!

  5. thrasher dice:

    Segui tu guia al pie y sin problemas, pero ahora no puedo agregar nada, creo el archivo y lo delcaro en nagios.cfg y no me aparece nada en la interfaz web, alguna idea ?

  1. 10 septiembre, 2014

    […] Instalar y configurar Nagios en servidor Debian 7 (Parte III) […]

  2. 10 septiembre, 2014

    […] Instalar y configurar Nagios en servidor Debian 7 (Parte III) […]

  3. 17 septiembre, 2014

    […] Instalar y configurar Nagios en servidor Debian 7 (Parte III) […]

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR