Cómo instalar Nagios en Debian 11 Bullseye

En esta entrada veremos cómo instalar Nagios en Debian 11 Bullseye paso a paso, de manera que puedas monitorizar desde un servidor Nagios Core distintas máquinas mediante los plugins de Nagios y el servicio NRPE, ya sean máquinas en red local, tu servidor o VPS Debian, etc.

Antes de instalar Nagios en Debian 11 Bullseye

Para poder seguir los pasos de esta guía de instalación de Nagios Core en Debian 11 Bullseye es importante partir del siguiente escenario:

  • Una máquina Debian 11 Bullseye actualizada, que actuará como servidor Nagios Core, desde la que se monitorizarán el resto de máquinas.
  • Servidor web con PHP.
  • Acceso a consola con un usuario con permisos de sudo.
  • Conexión a Internet.
  • Opcionalmente, otras máquinas Debian 11 que serán monitorizadas desde el servidor.

En caso de que no dispongas aún del entorno necesario en la máquina Debian 11 que actuará como servidor Nagios, puedes consultar nuestra guía de instalación de Apache en Debian 11.

Cómo descargar e instalar los plugins de Nagios en Debian 11 Bullseye

Vamos a descargar los plugins de Nagios para Debian 11 tanto en el servidor como en las máquinas remotas, visitando la página de descargas del sitio del proyecto:

como descargar los plugins de nagios para debian 11 bullseye

Si trabajamos de forma remota en alguna de las máquinas Debian 11, podemos descargar el paquete .tar.gz desde consola con la herramienta wget:

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

Instalamos algunas dependencias que necesitaremos para compilar los plugins:

~$ sudo apt install -y gcc make libssl-dev

Extraemos el paquete que acabamos de descargar en el directorio de trabajo:

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

Cambiamos el directorio activo al nuevo subdirectorio que acabamos de crear:

~$ cd nagios-plugins-2.3.3/

Configuramos la compilación:

$ ./configure

Compilamos los plugins:

$ make

Y los instalamos:

$ sudo make install

Ya podemos abandonar el directorio actual:

$ cd ..

Y eliminarlo:

~$ rm -rf nagios-plugins-2.3.3

Los plugins han quedado instalados en el directorio /usr/local/nagios/libexec/, de modo que pueden ser utilizados como cualquier otro comando del sistema, por ejemplo el plugin check_apt:

~$ /usr/local/nagios/libexec/check_apt
APT OK: 0 packages available for upgrade (0 critical updates). |available_upgrades=0;;;0 critical_updates=0;;;0

Aunque en este caso no hemos utilizado ninguno, prácticamente todos los plugins admiten los parámetros -w y -c para determinar los umbrales de alarma y de condición crítica del servicio monitorizado. Puedes obtener ayuda sobre el uso de cualquier plugin utilizando el parámetro -h:

~$ /usr/local/nagios/libexec/check_apt -h
check_apt v2.3.3 (nagios-plugins 2.3.3)
Copyright (c) 2006-2014 Nagios Plugin Development Team
        <devel@nagios-plugins.org>

This plugin checks for software updates on systems that use
package management systems based on the apt-get(8) command
found in Debian GNU/Linux


Usage:
check_apt [[-d|-u|-U]opts] [-n] [-t timeout] [-w packages-warning]

Options:
 -h, --help
    Print detailed help screen
 -V, --version
    Print version information
 --extra-opts=[section][@file]
    Read options from an ini file. See
    https://www.nagios-plugins.org/doc/extra-opts.html
    for usage and examples.
 -t, --timeout=INTEGER
    Seconds before plugin times out (default: 10)
 -U, --upgrade=OPTS
    [Default] Perform an upgrade.  If an optional OPTS argument is provided,
    apt-get will be run with these command line options instead of the
    default (-o 'Debug::NoLocking=true' -s -qq).
    Note that you may be required to have root privileges if you do not use
    the default options.
 -d, --dist-upgrade=OPTS
    Perform a dist-upgrade instead of normal upgrade. Like with -U OPTS
    can be provided to override the default options.
  -n, --no-upgrade
    Do not run the upgrade.  Probably not useful (without -u at least).
 -i, --include=REGEXP
    Include only packages matching REGEXP.  Can be specified multiple times
    the values will be combined together.  Any packages matching this list
    cause the plugin to return WARNING status.  Others will be ignored.
    Default is to include all packages.
 -e, --exclude=REGEXP
    Exclude packages matching REGEXP from the list of packages that would
    otherwise be included.  Can be specified multiple times; the values
    will be combined together.  Default is to exclude no packages.
 -c, --critical=REGEXP
    If the full package information of any of the upgradable packages match
    this REGEXP, the plugin will return CRITICAL status.  Can be specified
    multiple times like above.  Default is a regexp matching security
    upgrades for Debian and Ubuntu:
        ^[^\(]*\(.* (Debian-Security:|Ubuntu:[^/]*/[^-]*-security)
    Note that the package must first match the include list before its
    information is compared against the critical list.
 -o, --only-critical
    Only warn about upgrades matching the critical list.  The total number
    of upgrades will be printed, but any non-critical upgrades will not cause
    the plugin to return WARNING status.

 -w, --packages-warning=INTEGER
    Minumum number of packages available for upgrade to return WARNING status.
    Default is 1 package.

The following options require root privileges and should be used with care:

 -u, --update=OPTS
    First perform an 'apt-get update'.  An optional OPTS parameter overrides
    the default options.  Note: you may also need to adjust the global
    timeout (with -t) to prevent the plugin from timing out if apt-get
    upgrade is expected to take longer than the default timeout.

Send email to help@nagios-plugins.org if you have questions regarding use
of this software. To submit patches or suggest improvements, send email to
devel@nagios-plugins.org

Para poder monitorizar correctamente los servicios de cada máquina, es interesante conocer los plugins disponibles y su forma de uso.

Cómo descargar e instalar Nagios Core en Debian 11 Bullseye

Vamos a descargar Nagios Core para Debian 11 Bullseye en la máquina que actuará como el servidor que recabará la información de las máquinas monitorizadas. Para ello visitamos el sitio oficial de Nagios Core:

como descargar nagios core para debian 11 bullseye

Y descargamos desde el navegador o desde consola el paquete .tar.gz:

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

Instalamos las dependencias:

~$ sudo apt install -y unzip

Descomprimimos el paquete recién descargado:

~$ tar xf nagios-4.4.6.tar.gz

Cambiamos al nuevo subdirectorio:

~$ cd nagios-4.4.6/

Configuramos la compilación:

$ ./configure

Compilamos Nagios Core:

$ make all

E instalamos el servicio y su configuración:

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

Abandonamos el directorio del código fuente:

$ cd ..

Y lo borramos:

~$ rm -rf nagios-4.4.6

Creamos el usuario nagiosadmin y su contraseña para poder 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

Iniciamos el servicio nagios con systemctl:

~$ sudo systemctl start nagios

Podemos comprobar fácilmente su estado:

~$ systemctl status nagios

como instalar nagios core en debian 11 bullseye

Por último activamos el módulo CGI del servicio web:

~$ sudo a2enmod cgi

Y reiniciamos el servicio web para cargar el nuevo módulo y aplicar la configuración de la aplicación web:

~$ sudo systemctl restart apache2

Cómo acceder a Nagios Core en Debian 11

Para acceder a Nagios Core en Debian 11 Bullseye desde un navegador bastará con indicar la dirección del servidor (IP, nombre DNS, dominio, localhost si se trata de acceso local, etc.) y añadimos la ruta /nagios para formar la URL.

Por ejemplo, en este tutorial hemos preparado una máquina Debian 11 accesible en el subdominio debian11.local.lan, así que podemos utilizar http://debian11.local.lan/nagios como URL.

Se nos solicitará usuario y contraseña:

como acceder a nagios core en debian 11 bullseye

Nos identificamos como nagiosadmin con la contraseña que creamos anteriormente.

Se mostrará la página principal de la aplicación, en la que comprobaremos que el servicio Nagios Core funciona, ya que se muestra su PID:

nagios core en debian 11 bullseye

Si visitamos la sección «Hosts» observaremos que se muestra la propia máquina local (el servidor Nagios):

nagios sobre debian 11 bullseye

Un pequeño resumen nos informará de las máquinas y servicios monitorizados y su estado. Puede que se muestre algún servicio como pendiente o «Pending» si la instalación ha transcurrido rápidamente y aún no se han ejecutado todos los comandos de monitorización.

En la pagina «Services» obtendremos información detallada de los servicios y su estado:

Cómo configurar Nagios Core en Debian 11

Para configurar Nagios Core en Debian 11 Bullseye debemos trabajar sobre los archivos ubicados en la ruta /usr/local/nagios/etc/, siendo el archivo principal nagios.cfg.

Si examinas el contenido de este archivo observarás que enlaza a su vez al archivo objects/localhost.cfg, donde se guarda la información de conexión y los servicios a monitorizar.

A su vez, las declaraciones de servicios emplean comandos definidos en el archivo objects/commands.cfg, siendo precisamente en la definición de comando donde se indica el plugin a usar y sus parámetros.

Conviene echar un vistazo al contenido de estos archivos para ver cómo crear y modificar servicios, comandos, etc. para ajustarlos a nuestras necesidades.

A continuación veremos cómo añadir máquinas remotas a la configuración de Nagios Core.

Cómo descargar e instalar Nagios NRPE en Debian 11 Bullseye

Para monitorizar otras máquinas en red debemos descargar Nagios NRPE en las máquinas Debian 11, tanto en el servidor como en las máquinas remotas. Esto es así porque el mismo paquete contiene el servicio que correrá en las máquinas remotas y el plugin que utiliza el servidor Nagios.

Vamos a descargar Nagios NRPE para Debian 11 desde el sitio del proyecto, donde encontraremos la última versión estable:

como descargar e instalar nagios nrpe en debian 11 bullseye

Descargamos el paquete .tar.gz desde consola:

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

Descomprimimos este paquete en el directorio de trabajo:

~$ tar xf nrpe-4.0.3.tar.gz

Cambiamos el directorio activo al nuevo subdirectorio:

~$ cd nrpe-4.0.3/

Configuramos la compilación:

$ ./configure

A partir de este punto en las máquinas remotas compilaremos el servicio y en el servidor Nagios compilaremos el plugin. Detallamos ambos procesos a continuación.

Servicio NRPE

En las máquinas remotas Debian 11 compilamos el servicio NRPE que recibirá las peticiones de monitorización desde el servidor:

$ make nrpe

Instalamos el servicio y su configuración:

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

Salimos del directorio fuente:

$ cd ..

Y lo podemos borrar:

~$ rm -rf nrpe-4.0.3

Antes de lanzar el servicio es preciso configurarlo editando su archivo de configuración principal:

~$ 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:

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

En este archivo también están definidos los comandos cuya ejecución puede solicitar el servidor Nagios y que podemos modificar, eliminar o ampliar. Por ejemplo, se incluye el comando check_hda1:

...
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
...

Este comando define el chequeo de la unidad de almacenamiento principal, trabajando con dispositivos tipo /dev/hd*, pero la máquina de este ejemplo usa un dispositivo tipo /dev/sd*.

Desactivamos este comando check_hda1 y creamos ccc_check_sda1 de modo similar, pero usando la nomenclatura de dispositivo adecuada:

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

Guardamos los cambios y ya podemos iniciar el servicio:

~$ sudo systemctl start nrpe

Comprobamos su estado también con systemctl:

~$ systemctl status nrpe

servicio nrpe en debian 11 bullseye

Si queremos que el servicio esté disponible en todo momento podemos activarlo para que inicie automáticamente con el sistema:

~$ sudo systemctl enable nrpe

Cómo configurar el firewall de Debian 11 para el servicio NRPE

Si tienes activado el firewall UFW en la máquina remota Debian 11 hay que aplicar una regla que permita las conexiones entrantes procedentes del servidor Nagios Core:

~$ sudo ufw allow nrpe

Todo listo en la máquina remota.

Plugin NRPE

En el servidor Nagios Core compilamos el plugin:

$ make check_nrpe

Lo instalamos:

$ sudo make install

Abandonamos el directorio:

$ cd ..

Y borramos dicho directorio:

~$ rm -rf nrpe-4.0.3

Configurar máquinas remotas

Creamos un directorio para guardar los archivos de configuración de las distintas máquinas remotas que queramos monitorizar:

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

Editamos el archivo principal de configuración, nagios.cfg:

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

Buscamos esta línea, que contiene precisamente la ruta que acabamos de crear:

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

Y la activamos eliminando el carácter # inicial:

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

Guardamos los cambios y creamos un archivo para la máquina remota del ejemplo de este tutorial:

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

Creamos la sección de identificación y conexión a la máquina remota:

define host {
        use                     linux-server
        host_name               debian11b.local.lan
        alias                   Debian 11 Bullseye (remota)
        address                 debian11b.local.lan
        max_check_attempts      5
        check_period            24x7
        notification_interval   30
        notification_period     24x7
}

Básicamente indicamos la plantilla de sistema a usar, el nombre, alias y dirección de la máquina remota y los parámetros de conexión y monitorización.

A continuación definimos los servicios que nos interesen:

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

define service {
        use                     generic-service
        host_name               debian11b.local.lan
        service_description     Espacio libre en /dev/sda1
        check_command           ccc_check_nrpe!ccc_check_sda1
}

En las definiciones de servicio indicamos la plantilla de servicio, el nombre de la máquina, descripción del servicio y la llamada al comando que lanza el plugin NRPE (ccc_check_nrpe, que aún no existe) con el comando remoto que informará del estado del servicio (comandos definidos en la máquina remota, como hemos visto en pasos anteriores).

Una vez definidos los servicios guardamos el archivo.

Sólo queda crear el comando específico que lanza el plugin NRPE, que hemos utilizado hace unos momentos (ccc_check_nrpe), para lo que editamos el archivo commands.cfg:

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

Al final del archivo añadimos la definición del comando:

...
### Plugin NRPE

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

Únicamente se necesita dar el nombre por el que es referido desde otros archivos de configuración, y la línea de comando con la que se llama al plugin NRPE.

Guardamos los cambios y ya tenemos todo lo necesario para que el servicio Nagios Core empiece a monitorizar la máquina remota Debian 11 que acabamos de añadir. Por tanto, recargamos la configuración del servicio:

~$ sudo systemctl reload nagios

Accedemos a la sección «Hosts«:

Aparece la nueva máquina en la lista y en el resumen.

Y si visitamos «Services«:

Veremos con más detalle las máquinas y sus servicios.

¡Justo lo que queríamos!

Conclusión

Ahora que sabes cómo instalar y configurar Nagios en Debian 11 Bullseye ya puedes monitorizar todos los servicios críticos de las máquinas de tu red local o tus servidores y VPS Debian en Internet, de forma sencilla y visual mediante la interfaz web de esta aplicación.

Si ya funciona el servicio en tus máquinas y quieres agradecérnoslo, siempre es bienvenida cualquier mínima contribuición para el mantenimiento en línea de este sitio y la creación de nuevos tutoriales y guías.

Puedes ayudarnos dejando una propina de tan sólo 1 $ desde PayPal:

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

¡Gracias!

Deja un comentario

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

ACEPTAR
Aviso de cookies