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. cd nrpe-2.15
  2. ./configure
  3. make all
  4. 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. useradd nagios
  2. 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. tar xvfz nagios-plugins-2.0.3.tar.gz
  2. cd nagios-plugins-2.0.3

Y ya podemos compilar:

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

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

  1. chown nagios.nagios /usr/local/nagios
  2. 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. tar xvfz nrpe-2.15.tar.gz
  2. cd nrpe-2.15

Compilamos el código fuente:

  1. ./configure
  2. make all
  3. make install-plugins
  4. make install-daemon
  5. make install-daemon-config
  6. 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. define host{
  2.      name                       linux-box
  3.      use                        generic-host
  4.      check_period               24x7
  5.      check_interval             5
  6.      retry_interval             1
  7.      max_check_attempts         10
  8.      check_command              check-host-alive
  9.      notification_period        24x7
  10.      notification_interval      30
  11.      notification_options       d,r
  12.      contact_groups             admin
  13.      register                   0  ;  ES UNA PLANTILLA
  14. }

Añadimos el host que llamaremos RelayCorreo

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

Y la definición de servicio:

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

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. define service{
  2. use                              generic-service
  3. host_name                        RelayCorreo
  4. service_description              /dev/hda1 Free Space
  5. check_command                    check_nrpe!check_hda1
  6. }

Control de usuarios:

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

Control de los procesos:

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

Control de los procesos «zombie»

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

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

Añadiendo la línea:

  1. # Añadimos el fichero linux.cfg
  2. 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. # Plugin nrpe para los servidores Linux remotos
  2. define command{
  3.         command_name  check_nrpe
  4.         command_line  $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
  5.         }

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. define service{
  2. use                              generic-service
  3. host_name                        RelayCorreo
  4. service_description              Swap Usabe
  5. check_command                    check_nrpe!check_swap
  6. }

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. define service{
  2. use                              generic-service
  3. host_name                        RelayCorreo
  4. service_description              SMTP
  5. check_command                    check_nrpe!check_smtp
  6. }

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!

18 Respuestas

  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 ?

  6. emiliano dice:

    gente me da este error root@beweb1:/disco2/nrpe-2.15# ./configure
    checking for a BSD-compatible install… /usr/bin/install -c
    checking build system type… i686-pc-linux-gnuoldld
    checking host system type… i686-pc-linux-gnuoldld
    checking for gcc… no
    checking for cc… no
    checking for cc… no
    checking for cl… no
    configure: error: no acceptable C compiler found in $PATH

    • Hola Emiliano,

      Te faltan las «Build-essentials». Aquí tienes como instalarlas:

      https://www.ochobitshacenunbyte.com/2014/12/10/que-es-y-como-se-instala-build-essentials/

      Saludos

      • emiliano dice:

        buenas, gracias David por la ayuda…
        me da este error el primer comando.

        # apt-get -y update
        Ign cdrom://[Debian GNU/Linux 7.7.0 _Wheezy_ – Official i386 DVD Binary-1 20141018-11:53] wheezy Release.gpg
        Ign cdrom://[Debian GNU/Linux 7.7.0 _Wheezy_ – Official i386 DVD Binary-1 20141018-11:53] wheezy Release
        Ign cdrom://[Debian GNU/Linux 7.7.0 _Wheezy_ – Official i386 DVD Binary-1 20141018-11:53] wheezy/contrib i386 Packages/DiffIndex
        Ign cdrom://[Debian GNU/Linux 7.7.0 _Wheezy_ – Official i386 DVD Binary-1 20141018-11:53] wheezy/main i386 Packages/DiffIndex
        Ign cdrom://[Debian GNU/Linux 7.7.0 _Wheezy_ – Official i386 DVD Binary-1 20141018-11:53] wheezy/contrib Translation-es_AR
        Ign cdrom://[Debian GNU/Linux 7.7.0 _Wheezy_ – Official i386 DVD Binary-1 20141018-11:53] wheezy/contrib Translation-es
        Ign cdrom://[Debian GNU/Linux 7.7.0 _Wheezy_ – Official i386 DVD Binary-1 20141018-11:53] wheezy/main Translation-es_AR
        Des:1 http://security.debian.org wheezy/updates Release.gpg [1.601 B]
        Des:2 http://security.debian.org wheezy/updates Release [39,0 kB]
        Des:3 http://security.debian.org wheezy/updates/main Sources [324 kB]
        Obj http://security.debian.org wheezy/updates/contrib Sources
        Des:4 http://security.debian.org wheezy/updates/main i386 Packages [589 kB]
        Obj http://security.debian.org wheezy/updates/contrib i386 Packages
        Obj http://security.debian.org wheezy/updates/contrib Translation-en
        Des:5 http://security.debian.org wheezy/updates/main Translation-en [313 kB]
        Descargados 1.266 kB en 14seg. (85,5 kB/s)
        Leyendo lista de paquetes… Hecho
        W: No existe ninguna clave pública disponible para los siguientes identificadores de clave:
        9D6D8F6BC857C906

        • Hola,

          Has probado instalarla?

          apt-key adv –keyserver security.debian.org –recv-keys 9D6D8F6BC857C906

          Saludos

          • emiliano dice:

            me da este error ahora:

            root@beweb1:/disco2# apt-key adv -keyserver security.debian.org -rec-keys 9D6D8F6BC857C906
            Executing: gpg –ignore-time-conflict –no-options –no-default-keyring –secret-keyring /tmp/tmp.m6WAfS8FrM –trustdb-name /etc/apt//trustdb.gpg –keyring /etc/apt/trusted.gpg –primary-keyring /etc/apt/trusted.gpg –keyring /etc/apt/trusted.gpg.d//debian-archive-jessie-stable.gpg –keyring /etc/apt/trusted.gpg.d//debian-archive-squeeze-automatic.gpg –keyring /etc/apt/trusted.gpg.d//debian-archive-squeeze-stable.gpg –keyring /etc/apt/trusted.gpg.d//debian-archive-wheezy-automatic.gpg –keyring /etc/apt/trusted.gpg.d//debian-archive-wheezy-stable.gpg -keyserver security.debian.org -rec-keys 9D6D8F6BC857C906
            gpg: órdenes incompatibles
            root@beweb1:/disco2# apt-key adv -keyserver security.debian.org –rec-keys 9D6D8F6BC857C906
            Executing: gpg –ignore-time-conflict –no-options –no-default-keyring –secret-keyring /tmp/tmp.PdGkIFYzu0 –trustdb-name /etc/apt//trustdb.gpg –keyring /etc/apt/trusted.gpg –primary-keyring /etc/apt/trusted.gpg –keyring /etc/apt/trusted.gpg.d//debian-archive-jessie-stable.gpg –keyring /etc/apt/trusted.gpg.d//debian-archive-squeeze-automatic.gpg –keyring /etc/apt/trusted.gpg.d//debian-archive-squeeze-stable.gpg –keyring /etc/apt/trusted.gpg.d//debian-archive-wheezy-automatic.gpg –keyring /etc/apt/trusted.gpg.d//debian-archive-wheezy-stable.gpg -keyserver security.debian.org –rec-keys 9D6D8F6BC857C906
            gpg: órdenes incompatibles

            tendran un link a una distro que ya tenga todo esto cargado?
            saludos

  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

This site uses Akismet to reduce spam. Learn how your comment data is processed.