Cómo instalar Nagios en Debian 10 Buster

Cómo instalar Nagios en Debian 10 Buster

En este artículo veremos cómo instalar Nagios Core en Debian 10 Buster paso a paso, de modo que podrás monitorizar vía web los servicios de cualquier servidor o VPS Debian de forma local y remota, mediante Nagios Core, Nagios NRPE y los plugins de Nagios.

Antes de instalar Nagios en Debian 10 Buster

Si quieres seguir esta guía de instalación y configuración de Nagios Core en Debian 10 Buster debes satisfacer estos puntos básicos:

  • Una máquina Debian 10 Buster actualizada.
  • Servidor web Apache con PHP.
  • Paquetes instalados: gcc, make, unzip y wget.
  • Un usuario con privilegios de sudo o el propio root.
  • Acceso a Internet.

En caso de no disponer del entorno necesario puede ser útil consultar la guía de instalación de Apache en Debian 10 y la guía de instalación de PHP en Debian 10.

Cómo instalar los plugins de Nagios en Debian 10

A pesar de que en los repositorios existen paquetes, para instalar los plugins de Nagios en Debian 10 Buster descargaremos y compilaremos la última versión desde la web oficial:

como descargar los plugins de nagios para debian 10 buster

Realizaremos la descarga e instalación de los plugins de Nagios en todas las máquinas remotas que queramos monitorizar, y también en la máquina que actuará como servidor Nagios si queremos supervisar sus servicios locales.

Podemos descargar el paquete .tar.gz desde el navegador o, como haremos en este tutorial, copiar el enlace para descargarlo desde consola con el comando wget:

~$ wget https://nagios-plugins.org/download/nagios-plugins-2.3.3.tar.gz

Compilación e instalación de los plugins

El contenido del paquete que acabamos de descargar viene organizado en un directorio principal, por lo que podemos descomprimir el paquete en el directorio de trabajo:

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

Y cambiamos el directorio de trabajo al nuevo directorio del código fuente de los plugins:

~$ cd nagios-plugins-2.3.3/

En primer lugar instalaremos algunas dependencias de ciertos plugins. Si ves alguna que claramente no te interese puedes eliminarla:

$ sudo apt install -y postgresql-server-dev-all libdbi-dev libldap2-dev default-libmysqlclient-dev libssl-dev dnsutils smbclient qstat fping

Concretamente, el paquete smbclient solicita cierto ajuste de configuración, que se puede dejar con el valor por defecto.

Puedes consultar más información sobre las librerías de desarrollo y comandos en el archivo REQUERIMENTS presente en el directorio actual.

Comenzaremos la configuración de la compilación:

$ ./configure

Ya podemos compilar los plugins que se ajusten a la configuración de nuestro sistema:

$ make

Para instalar los plugins de Nagios en Debian 10 Buster usaremos el siguiente comando

~$ sudo make install

Los plugins quedan instalados en el directorio /usr/local/nagios/libexec/ en forma de binarios que se pueden ejecutar directamente en línea de comandos. Vamos a probar alguno:

~$ /usr/local/nagios/libexec/check_disk -w 20% -c 5% -p /
DISK OK - free space: / 1304 MiB (46,76% inode=79%);| /=1484MiB;2366;2810;0;2958

Otro ejemplo de plugin:

~$ /usr/local/nagios/libexec/check_users -w 5 -c 10
USERS OK - 2 users currently logged in |users=2;5;10;0

Y otro más:

$ /usr/local/nagios/libexec/check_http -H localhost
HTTP OK: HTTP/1.1 200 OK - 10975 bytes in 0,051 second response time |time=0,051045s;;;0,000000 size=10975B;;;0

Cómo instalar Nagios Core en Debian 10 Buster

Vamos a descargar Nagios Core para Debian 10 Buster desde el sitio oficial de desarrollo del proyecto. Este proceso lo haremos solamente en el sistema Debian 10 Buster que actuará como servidor Nagios.

como descargar nagios core para debian 10 buster

Descargamos el archivo desde consola:

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

Y lo descomprimimos en el directorio de trabajo:

~$ tar xf nagios-4.4.6.tar.gz

Al igual que en el caso de los plugins, Nagios Core se organiza en un subdirectorio que se acaba de crear y al que cambiaremos:

~$ cd nagios-4.4.6/

Instalamos la librería de desarrollo de GD:

$ sudo apt install -y libgd-dev

Ya podemos configurar la instalación:

$ ./configure

Y compilamos los plugins:

$ make all

Instalación

La instalación está repartida en una serie de objetivos de make que enumeramos a continuación.

Comenzamos creando el usuario y grupo con el que correrá el servicio Nagios Core en Debian 10 Buster:

$ sudo make install-groups-users

Instalamos los archivos de Nagios Core en Debian 10:

$ sudo make install

Añadimos los archivos de configuración necesarios para el servidor web:

$ sudo make install-webconf

Instalamos los archivos con la configuración por defecto de Nagios Core:

$ sudo make install-config

Instalamos los scripts del servicio:

$ sudo make install-init

Y habilitamos el servicio Nagios para su inicio automático con cada arranque de Debian 10 Buster:

$ sudo make install-daemoninit

Configuramos el directorio para comandos externos:

$ sudo make install-commandmode

Y finalmente podemos iniciar el servicio, ya que la configuración por defecto es perfectamente funcional:

$ sudo systemctl start nagios

Para poder acceder a Nagios Core, debemos crear el usuario administrador, nagiosadmin:

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

Tendremos que introducir la contraseña y confirmarla.

Activar el módulo CGI de Apache

Nagios Core en Debian 10 necesita el módulo CGI del servicio web, que en el caso de Apache no suele estar activado por defecto:

~$ sudo a2enmod cgi

Reiniciamos Apache para que cargue el nuevo módulo:

~$ sudo systemctl restart apache2

Acceder a Nagios Core en Debian 10 Buster

Para acceder a Nagios Core en Debian 10 añadiremos la ruta /nagios a la dirección IP o dominio del sistema. Por ejemplo, en este tutorial el servidor Debian 10 es accesible en el dominio debian10.local, por lo que usaremos http://debian10.local/nagios como URL:

como instalar nagios core en debian 10 buster

Se nos muestra una ventana para introducir las credenciales de acceso (el usuario nagiosadmin y la clave que hayamos creado), mostrándose a continuación la página principal:

instalar nagios core en debian 10 buster

Si accedemos a la sección «Hosts» del menú encontraremos que aparece la máquina local (el propio servidor Nagios Core Debian 10) ya configurada:

nagios core para debian 10 buster

Obtendremos información sobre su estado general, última comprobación, etc.

Si accedemos a la sección «Services» veremos una lista de las máquinas monitorizadas (hasta el momento sólo la máquina Debian 10 local) y el estado de los servicios configurados y monitorizados por defecto:

Nagios Core en Debian 10 Buster

 

Cómo configurar Nagios Core en Debian 10 Buster

Para configurar Nagios Core en Debian 10 Buster hemos de tener en cuenta que los archivos de configuración se reparten en el directorio /usr/local/nagios/etc/. El archivo objects/commands.cfg contiene la definición de los comandos que utilizan los plugins.

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

Los comandos se definen como bloques en los que se define un nombre para el comando (que será usado desde otras configuraciones para llamar al comando), y la línea de comando que llama al binario del plugin, al que se pueden pasar argumentos fijos o variables. Por ejemplo:

...
define command {

    command_name    check_local_users
    command_line    $USER1$/check_users -w $ARG1$ -c $ARG2$
}
...

El nombre que se utilizará desde otras configuraciones es check_local_users, que lanzará el plugin check_users, que es uno de los plugins de Nagios que instalamos y configuramos anteriormente. Para la línea de comandos se utilizan argumentos variables, como $USER1$ que contiene la ruta en la que se encuentra el plugin (/usr/local/nagios/libexec/ en Debian 10) o $ARG1$ y $ARG2$ que recibirán el número de usuarios que se consideran como alarmante y crítico, respectivamente.

Estos comandos se usan en múltiples archivos de configuración que definen sistemas, como la máquina local o las máquinas remotas. La máquina local está configurada en el archivo objects/localhost.cfg:

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

Este archivo contiene la definición de máquina:

...
define host {

    use                     linux-server

    host_name               localhost
    alias                   localhost
    address                 127.0.0.1
}
...

Podemos ver la plantilla que se usa (linux-server) y datos como el nombre de máquina y dirección.

Opcionalmente también podemos ver a qué grupo pertenece la máquina:

...
define hostgroup {

    hostgroup_name          linux-servers
    alias                   Linux Servers
    members                 localhost
}
...

Y todos los servicios que se supervisan a través de llamadas a comandos. Por ejemplo, uno de los servicios que se definen es la supervisión del servicio web local:

...
define service {

    use                     local-service
    host_name               localhost
    service_description     HTTP
    check_command           check_http
    notifications_enabled   0
}
...

Vemos que el parámetro check_command hace referencia al comando check_http, que a su vez hace referencia a un comando definido en commands.cfg, que a su vez llama al plugin check_http (casualmente el comando y el plugin tienen el mismo nombre).

Podemos añadir un nuevo servicio usando el comando que vimos antes como ejemplo, check_local_users, añadiendo la siguiente definición:

...
# Chequea los usuarios con sesión iniciada

define service {
        use     local-service
        host_name       localhost
        service_description     Usuarios locales
        check_command           check_local_users!3!5
}

Guardamos los cambios y cerramos el archivo.

Finalmente el archivo nagios.conf:

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

Se encarga, entre otras muchas cosas, de cargar las configuraciones de otros archivos, como por ejemplo commands.cfg y localhost.cfg:

...
# You can specify individual object config files as shown below:
cfg_file=/usr/local/nagios/etc/objects/commands.cfg
...
# Definitions for monitoring the local (Linux) host
cfg_file=/usr/local/nagios/etc/objects/localhost.cfg
...

Finalmente, cualquier cambio en estos y otros archivos de configuración se aplicará al recargar la configuración del servicio Nagios Core:

~$ sudo systemctl reload nagios

Si has introducido servicios nuevos, como hemos hecho en el tutorial, en unos instantes se reflejarán en la interfaz de Nagios Core:

nagios en debian 10 buster

 

Cómo instalar Nagios NRPE en Debian 10 Buster

Vamos a instalar y configurar Nagios NRPE en Debian 10 Buster, en la máquina remota que monitorizaremos desde el servidor Nagios Core. Se supone que ya has instalado previamente los plugins de Nagios en esta máquina, por lo que el único trabajo que queda es instalar el servicio NRPE.

Para ello descargaremos el paquete con la última versión de Nagios NRPE para Debian 10 Buster:

como descargar nagios nrpe para debian 10 buster

Copiamos el enlace del paquete .tgz y lo descargamos desde consola con wget:

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

Descomprimimos el archivo en el directorio actual:

~$ tar xf nrpe-4.0.3.tar.gz

Cambiamos el directorio de trabajo:

~$ cd nrpe-4.0.3/

Configuramos la compilación:

$ ./configure

Compilamos:

$ make nrpe

Creamos el usuario y grupo con el que correrá el servicio NRPE:

$ sudo make install-groups-users

Instalamos el script del servicio:

$ sudo make install-daemon

También instalamos los archivos de configuración del servicio NRPE:

$ sudo make install-config

Instalamos los scripts de manejo del servicio:

$ sudo make install-init

Y ya podemos iniciar el servicio:

$ sudo systemctl start nrpe

Comprobamos su estado:

$ systemctl status nrpe

Para asegurarnos de que el servicio esté siempre disponible, lo habilitaremos y así Nagios NRPE iniciará en cada arranque de Debian 10:

~$ sudo systemctl enable nrpe

Configurar el servicio NRPE en Debian 10

Antes de iniciar el servicio, editamos el archivo de configuración de Nagios NRPE:

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

Buscamos la directiva allowed_hosts:

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

Y añadimos la dirección del servidor Nagios Core que monitorizará esta máquina:

...
allowed_hosts=127.0.0.1,::1,debian10.local
...

Este archivo además debe contener la definición de los comandos que podrá utilizar el servidor Nagios Core. De hecho, existen algunos comandos de prueba activados y otros muchos desactivados, como 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 borrarlos, desactivarlos, modificarlos o añadir nuevos comandos. Por ejemplo, modificaré el comando chech_hda1, ya que en esta máquina remota no existe unidad /dev/hda, sino /dev/sda, quedando por tanto el comando así:

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

Observa que hemos cambiado también el nombre del comando, pasando de check_hda1 a check_sda1.

Al terminar los ajustes, guardamos y cerramos el archivo, y recargamos la configuración del servicio NRPE:

~$ sudo systemctl reload nrpe.service

Cómo configurar el firewall UFW para Nagios NRPE en Debian 10

Si tienes activado el firewall UFW en la máquina remota Debian 10 hay que añadir la siguiente regla para permitir las conexiones entrantes desde el servidor Nagios Core:

~$ sudo ufw allow nrpe

Cómo añadir máquinas remotas en Nagios Core

De vuelta en el servidor Nagios Core, descargamos Nagios NRPE:

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

Descomprimimos el paquete:

~$ tar xf nrpe-4.0.3.tar.gz

Cambiamos el directorio activo:

~$ cd nrpe-4.0.3/

Configuramos la compilación:

$ ./configure

En lugar de compilar el servicio, en el servidor Nagios Core compilamos el plugin NRPE:

$ make check_nrpe

Y lo instalamos:

$ sudo make install-plugin

Podemos probarlo directamente en consola pasando como argumento la dirección de la máquina remota Debian 10 que hemos configurado anteriormente:

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

La máquina remota responde con la versión del servicio NRPE instalado.

Configurar Nagios Core para añadir máquinas remotas

Crearemos un comando para manejar el plugin NRPE, para lo que editaremos el archivo commands.cfg:

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

Y añadiremos el bloque para la definición del nuevo comando, junto al resto de definiciones:

...
################################################################################
# NOTE:  The following 'check_...' commands are used to monitor services on
#        both local and remote hosts.
################################################################################
...
define command {
        command_name    check_nrpe
        command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
...

Guardamos los cambios y cerramos commands.cfg.

Ahora vamos a preparar un directorio independiente para las configuraciones de las máquinas remotas. Para ello editamos el archivo de configuración de Nagios Core, nagios.cfg:

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

Buscamos esta línea:

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

Podemos ver que la configuración de Nagios Core ya tiene previsto un directorio para máquinas remotas, pero hay que activarlo:

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

Guardamos los cambios y cerramos. Ahora Nagios Core incluirá en su configuración los archivos existentes en la ruta /usr/local/nagios/etc/servers/.

Esa carpeta no existe aún, así que la creamos:

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

Y el primer archivo de configuración que crearemos será el correspondiente a la máquina remota Debian 10 que preparamos en un paso anterior:

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

Incluiremos los datos de identificación y conexión de la máquina:

define host {
        use                     linux-server
        host_name               debian102.local
        alias                   Debian 10 Buster (remota)
        address                 debian102.local
        max_check_attempts      5
        check_period            24x7
        notification_interval   30
        notification_period     24x7
}

Además añadiremos las definiciones de todos los servicios que queramos supervisar:

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

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

Naturalmente, puedes añadir tantos servicios como necesites. Guardamos los cambios y cerramos.

Terminada la configuración de Nagios Core, recargamos la configuración del servicio:

~$ sudo systemctl reload nagios

Y accedemos a la aplicación web. Ahora en la sección «Services» veremos la nueva máquina remota y sus correspondientes servicios monitorizados:

¡Así de fácil!

Conclusión

Ahora que sabes cómo instalar Nagios Core, Nagios NRPE y los plugins de Nagios en Debian 10 Buster, puedes monitorizar máquinas remotas tanto en red local como a través de Internet, comprobando su estado y el de sus servicios gracias a esta potente y prestigiosa aplicación.

En caso de dudas, preguntas, sugerencias de mejoras o actualizaciones de este artículo, notificaciones de errores, etc. puedes dejar un comentario.

Y si gracias a esta guía de instalación de Cockpit en Debian 9 Stretch ya administras remotamente tu servidor o VPS, ¡invítame a un café cuando quieras!

O también puedes dejarme una propina en PayPal:

¡Gracias!

 

1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (1 votos, promedio: 5,00 de 5)
Cargando…

Deja una respuesta