Cómo instalar Nagios en CentOS 8

En este artículo veremos cómo instalar Nagios en CentOS 8 / CentOS Stream 8 paso a paso, de modo que puedas usar Nagios Core, los plugins de Nagios y el servicio Nagios NRPE para monitorizar distintas máquinas de forma centralizada, utilizando tu servidor o VPS CentOS.

Antes de instalar Nagios en CentOS 8

Para poder seguir esta completa guía de instalación de Nagios en CentOS 8 debes satisfacer los siguientes requisitos mínimos:

  • Un sistema CentOS Stream 8 actualizado.
  • Un servidor web con PHP.
  • Acceso a línea de comandos con un usuario con privilegios de sudo o el mismo root.
  • Conexión a Internet.

Si no dispones del entorno necesario, puedes consultar previamente nuestra guía de instalación de Apache en CentOS 8 y guía de instalación de PHP en CentOS 8.

En este artículo configuraremos un servidor Nagios Core en una máquina CentOS 8 (llamada centos8.local.lan), en el que instalaremos:

  • Los plugins de Nagios
  • El servicio Nagios Core
  • El plugin Nagios NRPE

También configuraremos una máquina remota CentOS 8 (llamada centos82.local.lan) para ser monitorizada por el servidor anterior, donde instalaremos:

  • Los plugins de Nagios
  • El servicio Nagios NRPE

Además, instalaremos en todas las máquinas CentOS Stream 8 (tanto el servidor como las máquinas que van a ser monitorizadas) algunas herramientas del sistema que necesitaremos, por lo que actualizamos la información de los repositorios:

~$ sudo yum update

E instalamos dichas herramientas:

~$ sudo yum install -y gcc make tar unzip wget

Cómo descargar e instalar los plugins de Nagios para CentOS 8

Vamos a descargar los plugins de Nagios para CentOS 8 desde el sitio web del proyecto.

Este proceso lo realizaremos tanto en la máquina que actuará como servidor Nagios, como en cada máquina remota que queramos supervisar desde el servidor Nagios

como descargar los plugins de nagios para centos 8 / centos stream 8

Encontraremos la última versión disponible en forma de paquete .tar.gz cuyo enlace vamos a copiar para descargar desde consola con el comando wget:

~$ wget https://github.com/nagios-plugins/nagios-plugins/releases/download/release-2.4.0/nagios-plugins-2.4.0.tar.gz

Instalaremos también algunas dependencias que necesitan algunos plugins:

~$ sudo yum install -y bind-utils libpq-devel mysql-devel openldap-devel openssl-devel

Descomprimimos el archivo en el directorio personal:

~$ tar xf nagios-plugins-2.4.0.tar.gz

Y cambiamos el directorio de trabajo al subdirectorio que se acaba de crear:

~$ cd nagios-plugins-2.4.0

Configuramos la compilación:

$ ./configure

Y compilamos los plugins:

$ make

Finalizada la compilación, instalamos los plugins:

~$ sudo make install

Ya podemos abandonar el directorio de trabajo e incluso eliminarlo.

Los plugins de Nagios quedan instalados como comandos ejecutables en la ruta /usr/local/nagios/libexec/, y pueden ser utilizados directamente desde consola. Por ejemplo, el plugin check_uptime, que puede usarse sin parámetros:

~$ /usr/local/nagios/libexec/check_uptime
Uptime OK: 0 day(s) 1 hour(s) 36 minute(s) | uptime=96.000000;;;

Si usas el parámetro -h en este o cualquier otro plugin obtendrás ayuda de los parámetros que admite. Es importante conocer los plugins disponibles y su uso para configurar la monitorización de servicios, más allá de los predeterminados por defecto.

Cómo descargar e instalar Nagios Core en CentOS 8

Ahora vamos a descargar Nagios Core para CentOS 8 desde el sitio de desarrollo del proyecto:

Este proceso sólo lo realizaremos en la máquina CentOS 8 que actuará como servidor Nagios

como descargar nagios core para centos 8 / centos stream 8

Copiamos el enlace del paquete .tar.gz y lo descargamos desde consola:

~$ wget https://github.com/NagiosEnterprises/nagioscore/releases/download/nagios-4.4.7/nagios-4.4.7.tar.gz

Descomprimimos el paquete en el directorio personal:

~$ tar xf nagios-4.4.7.tar.gz

Y cambiamos el directorio de trabajo al subdirectorio que se acaba de crear:

~$ cd nagios-4.4.7

Ahora configuramos la compilación:

$ ./configure --disable-ssl

Y compilamos:

$ make all

La instalación consta de varios pasos, como crear usuario y grupo con el que corre el servicio, instalación en las rutas adecuadas de los binarios, archivos de configuración, scripts de manejo, configuración del servicio web, etc.

$ sudo make install-groups-users install install-webconf install-config install-init install-daemoninit install-commandmode

Podemos abandonar el directorio de trabajo y eliminarlo.

Añadimos el grupo de Nagios que se acaba de crear al usuario con el que corre el servicio web para poder ejecutar comandos externos:

~$ sudo usermod -a -G nagios apache

Como normalmente SELinux se encuentra activado en CentOS Stream 8 no bastará con el ajuste anterior, sino que habrá que crear un contexto de lectura/escritura para el servicio web sobre el directorio de comandos externos:

~$ sudo semanage fcontext -a -t httpd_sys_rw_content_t "/usr/local/nagios/var/rw(/.*)?"

Aplicamos el nuevo contexto sobre el directorio:

~$ sudo restorecon -R /usr/local/nagios/var/rw/

Y por fin iniciamos el nuevo servicio Nagios:

~$ sudo systemctl start nagios

Podemos comprobar el estado del servicio en cualquier momento con el comando systemctl status nagios:

como instalar nagios core en centos 8

Necesitamos crear el usuario y la contraseña para acceder a la interfaz web de Nagios Core:

~$ sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
New password:
Re-type new password:
Adding password for user nagiosadmin
~$

Finalmente, reiniciamos el servicio web para cargar la configuración específica de la aplicación Nagios Core:

~$ sudo systemctl restart httpd

Acceder a Nagios Core en CentOS 8

Para acceder a Nagios Core en CentOS 8 debemos saber que la instalación ha creado un alias /nagios para la aplicación web, por lo que accederemos añadiendo este alias a la dirección IP o nombre DNS del servidor.

Por ejemplo, en este tutorial trabajamos sobre un servidor accesible en el dominio centos8.local.lan, por lo que usamos http://centos8.local.lan/nagios como URL:

instalar nagios core en centos 8 / centos stream 8

Tras autenticarnos con el usuario que hemos creado, accedemos a la página principal:

instalacion de nagios core en centos 8 / centos stream 8

Si accedemos a la sección «Hosts» veremos las máquinas supervisadas por el servidor Nagios Core:

nagios core para centos 8 / centos stream 8

Y si accedemos a la sección «Services» además veremos información detallada sobre los servicios supervisados en cada máquina:

nagios core en centos 8 / centos stream 8

Cómo descargar Nagios NRPE

Finalmente, vamos a descargar Nagios NRPE para CentOS 8 desde el sitio web del proyecto:

Descargamos Nagios NRPE tanto en el servidor Nagios Core como en las máquinas remotas, ya que el mismo paquete contiene tanto el servicio Nagios NRPE para las máquinas remotas como el plugin NRPE para el servidor Nagios Core

como descargar nagios nrpe para centos 8 / centos stream 8

Encontraremos el paquete .tar.gz de la última versión disponible, cuyo enlace copiaremos para descargar desde consola:

~$ wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.0.3/nrpe-4.0.3.tar.gz

Cómo instalar el servicio Nagios NRPE en CentOS 8

En primero lugar, vamos a instalar el servicio Nagios NRPE en cada máquina remota CentOS 8 que será supervisada.

Para ello descomprimimos el paquete en el directorio actual:

~$ tar xf nrpe-4.0.3.tar.gz

Cambiamos el directorio de trabajo a la carpeta que se acaba de crear:

~$ cd nrpe-4.0.3

Configuramos la compilación:

$ ./configure

Compilamos:

$ make nrpe

Terminada la compilación instalamos los binarios, archivos de configuración, scripts, etc.:

$ sudo make install-groups-users install-daemon install-config install-init

Ya podemos salir del directorio de trabajo y eliminarlo si lo consideramos oportuno.

Ahora podemos iniciar el servicio:

~$ sudo systemctl start nrpe

Comprobamos el estado del servicio con el comando systemctl status nrpe:

como instalar el servicio nagios nrpe en centos 8 / centos stream 8

Y habilitamos el servicio para que inicie automáticamente en cada arranque de la máquina remota:

~$ sudo systemctl enable nrpe

Cómo configurar el servicio Nagios NRPE en CentOS 8

Para configurar el servicio Nagios NRPE en CentOS 8 editamos su archivo de configuración principal, nrpe.cfg, que se encuentra en el directorio /usr/local/nagios/etc/:

~$ sudo nano /usr/local/nagios/etc/nrpe.cfg

Buscamos la directiva allowed_hosts, que indica qué servidores Nagios Core podrán conectar con el servicio:

...
allowed_hosts=127.0.0.1,::1
...

Añadimos la dirección del servidor Nagios Core, en este ejemplo es centos8.local.lan:

...
allowed_hosts=127.0.0.1,::1,centos8.local.lan
...

En este mismo archivo encontramos la definición de los comandos que pueden ser ejecutados a través de peticiones remotas, por ejemplo:

...
command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
command[check_load]=/usr/local/nagios/libexec/check_load -r -w .15,.10,.05 -c .30,.25,.20
command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/hda1
command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200
...

Puedes añadir, eliminar (o desactivar), modificar, etc. los comandos que quieras. Por ejemplo, el comando check_hda1 usa el plugin check_disk para supervisar la partición /dev/hda1, pero en la máquina CentOS 8 en la que realizamos este tutorial no tenemos unidades hdx, sino sdx, por lo que modificamos tanto el nombre del comando como el parámetro relacionado:

...
command[check_sda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/sda1
...

Guardamos el archivo y recargamos la configuración del servicio Nagios NRPE para aplicar los nuevos ajustes:

~$ sudo systemctl reload nrpe

Cómo configurar el firewall de CentOS 8 para el servicio NRPE

Si tenemos activado el firewall de CentOS 8 en la máquina remota, lo que suele ocurrir por defecto, tendremos que añadimos una regla para que el servidor Nagios Core pueda conectar al servicio Nagios NRPE:

~$ sudo firewall-cmd --permanent --add-service=nrpe

Recargamos la configuración de firewall para aplicar los cambios:

~$ sudo firewall-cmd --reload

Cómo instalar el plugin NRPE en CentOS 8

De vuelta al servidor Nagios Core, es el momento de instalar el plugin NRPE en CentOS 8, para lo que empezaremos descomprimiendo el paquete que descargamos anteriormente:

~$ tar xf nrpe-4.0.3.tar.gz

Cambiamos el directorio de trabajo:

~$ cd nrpe-4.0.3

Configuramos la compilación:

$ ./configure

En este caso, a diferencia de las máquinas remotas, aquí compilamos el plugin en lugar del servicio:

$ make check_nrpe

Y lo instalamos:

$ sudo make install-plugin

Podemos abandonar el directorio de trabajo e incluso eliminarlo.

Es posible probar el plugin NRPE directamente desde consola indicando la dirección de la máquina remota:

~$ /usr/local/nagios/libexec/check_nrpe -H centos82.local.lan
NRPE v4.0.3

Si la configuración es correcta, el plugin NRPE conecta con el servicio NRPE de la máquina remota y este responde con la versión del servicio.

Con el plugin NRPE instalado en el servidor Nagios Core, debemos añadir una configuración para el uso del comando en commands.cfg:

~$ sudo nano /usr/local/nagios/etc/objects/commands.cfg

Al final del archivo añadimos la definición de comando para el plugin NRPE:

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

Podemos ver que el valor del parámetro command_line es bastante parecido a la prueba que realizamos antes, aunque se añade un parámetro para lanzar comandos remotos.

Guardamos los cambios y editamos ahora el archivo nagios.cfg para que incluya los archivos de configuración de máquinas remotas:

~$ sudo nano /usr/local/nagios/etc/nagios.cfg

Buscamos esta línea:

...
#cfg_dir=/usr/local/nagios/etc/servers
...

Y la activamos eliminando el carácter # inicial:

...
cfg_dir=/usr/local/nagios/etc/servers
...

Ya podemos guardar el archivo.

El subdirectorio servers/ que acabamos de habilitar en la configuración no existe, así que lo creamos antes de continuar:

~$ sudo mkdir /usr/local/nagios/etc/servers

Y creamos dentro de este subdirectorio el archivo de configuración de la máquina remota que hemos preparado:

~$ sudo nano /usr/local/nagios/etc/servers/centos82.local.lan.cfg

Empezamos añadiendo la definición de la máquina remota, es decir, su información identificativa y para conexión:

define host {
        use                     linux-server
        host_name               centos82.local.lan
        alias                   CentOS 8 (remota)
        address                 centos82.local.lan
        max_check_attempts      5
        check_period            24x7
        notification_interval   30
        notification_period     24x7
}

La configuración de este bloque es bastante intuitiva, destacando la directiva address, que es donde debes indicar la dirección IP o nombre DNS de la máquina remota.

A continuación de este bloque añadimos otros para definir los servicios que queremos supervisar, dentro de los que la máquina remota permite según su configuración:

...
define service {
        use                     generic-service
        host_name               centos82.local.lan
        service_description     Carga de CPU
        check_command           check_nrpe!check_load
}

define service {
        use                     generic-service
        host_name               centos82.local.lan
        service_description     Espacio libre en /dev/sda1
        check_command           check_nrpe!check_sda1
}

Hemos elegido estos dos servicios de ejemplo, pero obviamente puedes añadir otros y todos los que quieras.

Guardamos los cambios y, como ya hemos terminado la configuración de Nagios Core para añadir la máquina remota, recargamos la configuración del servicio:

~$ sudo systemctl reload nagios

Accedemos a la interfaz web de Nagios Core, nos dirigimos a la sección «Hosts» y ya podremos ver la nueva máquina remota en la lista:

instalar nagios nrpe en centos 8 / centos stream 8

Y si accedemos a la sección «Services» veremos también el estado de los servicios de la nueva máquina remota:

instalacion de nagios nrpe en centos 8 / centos stream 8

Conclusión

Ahora que sabes cómo instalar Nagios en CentOS 8 ya puedes monitorizar los servicios de distintas máquinas gracias a la suite compuesta por Nagios Core, los plugins de Nagios, Nagios NRPE y el plugin NRPE.

Si te ha quedado alguna duda o tienes preguntas, sugerencias de mejora o actualización del artículo, notificaciones de errores, etc. puedes dejar un comentario.

¡Apoya comoinstalar.me!

¿Ya puedes monitorizar los servicios de tus sistemas en red gracias a esta guía de instalación de Nagios en CentOS 8? Si es así y quieres agradecérnoslo, cualquier pequeña ayuda contribuye mucho al mantenimiento de este sitio y la creación de nuevos artículos sobre CentOS 8 y Nagios. Puedes dejar una propina a partir de 1 $ desde PayPal:

O, si te sientes especialmente agradecido, puedes invitarnos a un cappuccino:

¡Gracias!

Valora esta entrada

5/5 - (2 votos)

3 comentarios en «Cómo instalar Nagios en CentOS 8»

  1. Hola, buenas. Tengo un problema con el NRPE, cuando termino la instalación y procedo a comprobar en la página los procesos, me salta «NRPE: Unable to read output«. Tras buscar mucho por Internet no he conseguido solucionarlo.
    Un saludo.

    Responder
    • Hola, Christian. Yo buscaría el problema así:

      • En la máquina remota prueba directamente en la terminal los plugins tal como aparecen en la definición de los comandos disponibles del servicio NRPE.
      • Comprueba la visibilidad entre ambas máquinas a nivel de ping.
      • Comprueba que la configuración del firewall de la máquina remota deje pasar las peticiones del servidor Nagios.
      • En el servidor Nagios prueba el plugin NRPE contra la máquina remota (en el tutorial tienes el ejemplo).

      En alguno de estos pasos deberías encontrar algo.

      Responder

Deja un comentario