Cómo instalar Nagios Core en Fedora 35

En este artículo veremos cómo instalar Nagios Core en Fedora 35, 34 y 33 paso a paso, tanto Nagios Core, como los plugins de Nagios, el plugin NRPE y el servicio NRPE, de modo que puedas monitorizar distintos servicios en sistemas, servidores o VPS Fedora.

Antes de instalar Nagios Core en Fedora 35

Para poder completar esta guía de instalación de Nagios Core en Fedora 35 necesitarás cumplir los siguientes requisitos mínimos:

  • Una máquina Fedora 35, 34 ó 33 actualizada que actuará como servidor Nagios Core.
  • Servicio web con PHP.
  • Acceso a consola con un usuario con permisos de sudo, o el mismo root.
  • Conexión a Internet.

También necesitaremos algunas herramientas del sistema que obtendremos desde los repositorios de Fedora 35, para lo que actualizamos las listas de paquetes:

~$ sudo yum update

E instalamos los paquetes necesarios:

~$ sudo yum install -y tar wget

Opcionalmente sería interesante disponer de otras máquinas Fedora 35 que actúen como máquinas remotas para ser supervisadas desde el servidor Nagios.

En este tutorial trabajaremos con dos máquinas:

  • Un servidor Fedora 35 que actuará como servidor Nagios Core, accesible con el nombre DNS fedora.local.lan.
  • Una máquina remota Fedora 35 que será supervisada, cuyo nombre DNS es fedora352.local.lan.

Cómo instalar los plugins de Nagios en Fedora 35

Vamos a descargar, compilar e instalar los plugins de Nagios en Fedora 35, tanto en el servidor Nagios Core como en las máquinas remotas.

Esta sección es común para todas las máquinas Fedora 35, tanto para el servidor Nagios Core como para las máquinas remotas, por lo tanto repetiremos los mismos pasos en cada una de ellas

Cómo descargar los plugins de Nagios para Fedora 35

Vamos a descargar los plugins de Nagios para Fedora 35 desde el sitio web de desarrollo de los mismos, donde encontraremos la última versión estable disponible:

como descargar los plugins de nagios para fedora 35, 34 y 33

Encontraremos un paquete en formato .tar.gz que podemos descargar desde el navegador o, como haremos en este tutorial, desde consola con el comando wget:

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

Cómo compilar e instalar los plugins de Nagios en Fedora 35

Vamos a instalar los requerimientos y dependencias para poder compilar los plugins de Nagios desde los repositorios de Fedora 35, requerimientos que son básicamente herramientas, comandos y librerías de desarrollo utilizadas para crear los plugins:

~$ sudo yum install -y gcc make bind-utils fping net-snmp-utils qstat rpcbind samba-client freeradius-client-devel krb5-devel libdbi-devel libpq-devel mariadb-devel openldap-devel openssl-devel perl-CPAN perl-Net-SNMP perl-Crypt-X509 perl-Text-Glob

Instalamos algún módulo de Perl para el que no hay paquetes con la herramienta cpan:

~$ sudo cpan -i LWP::Simple

Si es la primera vez que ejecutamos cpan, la herramienta nos preguntará si deseamos que se autoconfigure (lo cual es lo deseable):

...
Would you like to configure as much as possible automatically? [yes]

Descomprimimos el paquete de los plugins que acabamos de descargar:

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

Cambiamos el directorio de trabajo al subdirectorio que se acaba de crear:

~$ cd nagios-plugins-2.4.0

Configuramos la compilación con los requerimientos presentes en el sistema:

$ ./configure

Compilamos:

$ make

E instalamos los plugins:

$ sudo make install

Ya podemos salir del subdirectorio del código fuente:

$ cd ..

Y eliminarlo:

~$ sudo rm -rf nagios-plugins-2.4.0

Ahora tenemos un directorio /usr/local/nagios/libexec/ en el que se guardan todos los plugins que hemos podido compilar (la cantidad de plugins disponible dependerá de las dependencias satisfechas):

~$ ls /usr/local/nagios/libexec/
check_apt       check_icmp          check_nt        check_ssh
check_breeze    check_ide_smart     check_ntp       check_ssl_validity
check_by_ssh    check_ifoperstatus  check_ntp_peer  check_ssmtp
check_clamd     check_ifstatus      check_ntp_time  check_swap
check_cluster   check_imap          check_nwstat    check_tcp
check_dbi       check_ircd          check_oracle    check_time
check_dhcp      check_jabber        check_overcr    check_udp
check_dig       check_ldap          check_pgsql     check_ups
check_disk      check_ldaps         check_ping      check_uptime
check_disk_smb  check_load          check_pop       check_users
check_dns       check_log           check_procs     check_wave
check_dummy     check_mailq         check_radius    negate
check_file_age  check_mrtg          check_real      remove_perfdata
check_flexlm    check_mrtgtraf      check_rpc       urlize
check_fping     check_mysql         check_sensors   utils.pm
check_ftp       check_mysql_query   check_simap     utils.sh
check_game      check_nagios        check_smtp
check_hpjd      check_nntp          check_snmp
check_http      check_nntps         check_spop

Todos los comandos que empiezan por check_ son binarios que podemos ejecutar perfectamente desde consola si sabemos qué parámetros necesitan. Por ejemplo, si ejecutamos el plugin check_users sin parámetros obtendremos información sobre su uso:

~$ /usr/local/nagios/libexec/check_users


Usage:
check_users -w <users> -c <users>

El parámetro -w indicaría el número de usuarios en el sistema que consideraríamos como alarmante, mientras que el parámetro -c sería la cantidad crítica. Por ejemplo, podemos especificar un número alarmante de 5 usuarios y un número crítico de 10:

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

El plugin devuelve OK como estado, ya que el número de usuarios con sesión iniciada es 1, menor que el umbral de alarma.

Otro ejemplo, que en este caso no necesita parámetros, puede ser el plugin check_uptime:

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

Siéntete libre de explorar el funcionamiento de los plugins disponibles. Si echas en falta alguno es porque probablemente no se cumplía alguna dependencia, por lo que habría que instalarla e iniciar de nuevo el proceso de compilación e instalación.

Cómo descargar, compilar e instalar Nagios Core en Fedora 35

Ahora vamos a ver cómo instalar el servidor Nagios Core en Fedora 35, de modo que dispongamos del servicio encargado de recopilar información de las máquinas remotas y de sí misma, ya que hemos instalado también los plugins en la máquina que actuará como servidor.

Este paso sólo lo realizaremos en la máquina Fedora 35 que actuará como servidor Nagios Core

Cómo descargar Nagios Core para Fedora 35

Tenemos que descargar Nagios Core para Fedora 35 desde el sitio web del proyecto, donde está disponible la última versión:

como descargar nagios core para fedora 35, 34 y 33

Encontraremos un paquete en formato .tar.gz que vamos a descargar también desde consola:

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

Cómo instalar Nagios Core en Fedora 35

Instalamos las dependencias:

~$ sudo yum install -y gd-devel libtool-ltdl-devel traceroute unzip

Descomprimimos el paquete de Nagios Core que acabamos de descargar:

~$ tar xf nagios-4.4.7.tar.gz

Cambiamos el directorio de trabajo al subdirectorio del código fuente creado en el paso anterior:

~$ cd nagios-4.4.7

Configuramos la compilación:

$ ./configure --disable-ssl

Compilamos:

$ make all

Y por fin instalamos los binarios, las configuraciones, el servicio, etc.:

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

Podemos salir del subdirectorio:

$ cd ..

Y borrarlo:

~$ sudo rm -rf nagios-4.4.7

Para que el servicio web pueda trabajar con los comandos externos de Nagios habrá que crear un contexto de lectura/escritura en el directorio donde se guardan dichos comandos:

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

Y aplicamos el nuevo contexto:

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

Recargamos la configuración del servicio web para aplicar las configuraciones de Nagios Core:

$ sudo systemctl reload httpd

Ahora disponemos de un nuevo servicio en Fedora 35, el servicio nagios.service o nagios, que no qued en ejeución ni habilitado por defecto. Lo habilitaremos para que inicie junto al sistema:

$ sudo systemctl enable nagios

Y lo arrancaremos por primera vez de forma manual, para tenerlo disponible de forma inmediata:

$ sudo systemctl start nagios

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

como instalar nagios core en fedora 35, 34 y 33

Será necesario crear el usuario nagiosadmin para poder acceder a la interfaz web de Nagios Core:

~$ sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

Tendremos que crear y confirmar la contraseña correspondiente.

Acceder al servidor Nagios Core

Para acceder al servidor Nagios Core en Fedora 35 desde un navegador bastará con añadir la ruta /nagios a la dirección IP, nombre DNS, dominio o localhost (si accedemos localmente).

Por ejemplo, la máquina Fedora 35 sobre la que realizamos este tutorial es accesible en el subdominio fedora.local.lan, así que empleamos http://fedora.local.lan/nagios como URL:

instalar nagios core en fedora 35, 34 y 33

Nos autenticamos con el usuario nagiosadmin y su contraseña, tal como la acabamos de crear, y accedemos a la página principal del servicio Nagios Core:

nagios core en fedora 35, 34 y 33

Visitamos la sección «Hosts» del panel lateral:

nagios core sobre fedora 35, 34 y 33

Aquí se mostrará la lista de máquina superviadas, donde inicialmente sólo aparece la máquina local, es decir, el propio servidor Nagios Core.

Consultamos los servicios monitorizados en la opción «Services» del panel lateral:

nagios core para fedora 35, 34 y 33

Y veremos detallados los servicios supervisados. Si te aparece una alarma referente al servicio web, es perfectamente normal, ya que si no se ha creado una página web la que se muestra como bienvenida por defecto en realidad es un error 403.

Cómo configurar Nagios Core en Fedora 35

Para configurar Nagios Core en Fedora 35 debemos trabajar sobre los archivos presentes en la ruta /usr/local/nagios/etc/, siendo el archivo principal nagios.cfg.

En nagios.cfg, además de asignarse valores por defecto para Nagios, se incluyen otros archivos de configuración, como los archivos commands.cfg y localhost.cfg, por ejemplo, ambos ubicados en la subcarpeta objects/:

...
# You can specify individual object config files as shown below:
cfg_file=/usr/local/nagios/etc/objects/commands.cfg
cfg_file=/usr/local/nagios/etc/objects/contacts.cfg
cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg
cfg_file=/usr/local/nagios/etc/objects/templates.cfg

# Definitions for monitoring the local (Linux) host
cfg_file=/usr/local/nagios/etc/objects/localhost.cfg
...

El archivo commands.cfg contiene la definición de los comandos que usa Nagios Core para monitorizar los servicios. Un comando no es más que una determinada forma de usar un plugin (ya que un mismo plugin puede usarse para obtener distintas informaciones). Si echamos un vistazo al archivo commands.cfg entenderemos el funcionamiento:

...
define command {

    command_name    check-host-alive
    command_line    $USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 5
}
...

A través de un bloque de definición se le da un nombre al comando, con command_name, y la línea de comando para lanzar el plugin en consola, con command_line.

La variable $USER1$ hace referencia a la ubicación de los plugins en el sistema, en este caso /usr/local/nagios/libexec/, y $HOSTADDRESS$ es la dirección de la máquina, que se sustituirá por localhost o la dirección de una máquina remota. Además, se incluyen los parámetros necesarios para obtener la información deseada.

Podemos encontrar otros comandos más complejos, como el siguiente:

...
define command {

    command_name    check_local_disk
    command_line    $USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
}
...

En este caso no hay variable ni parámetro de dirección de red, por lo que se ejecutará localmente, y sin embargo sí se usan variables para los distintos parámetros del plugin.

Los comandos se emplean desde archivos correspondientes a los sistemas monitorizados. Inicialmente Nagios Core sólo incluye el sistema local, definido en el archivo localhost.cfg, en el que podremos ver cómo se utilizan los comandos definidos en el archivo commands.cfg para definir a su vez los servicios monitorizados:

...
define service {

    use                     local-service           ; Name of service template to use
    host_name               localhost
    service_description     Root Partition
    check_command           check_local_disk!20%!10%!/
}
...

Podemos ver cómo se define un servicio para monitorizar el espacio de una partición de disco, usando el comando check_local_disk que vimos anteriormente definido en el archivo commands.cfg, incluyendo los valores para los parámetros que admite dicho comando.

Puedes crear comandos personalizados con sus propios nombres y valores, añadiéndolos al archivo commands.cfg, y puedes definir nuevos servicios incluyéndolos en localhost.cfg.

Cómo descargar, compilar e instalar Nagios NRPE en Fedora 35

Es el momento de instalar Nagios NRPE en Fedora 35, aunque en esta ocasión tenemos la particularidad de que tanto el plugin (que se instala en el servidor Nagios Core) como el servicio NRPE (que se instala en la máquina remota) vienen incluidos en el mismo paquete.

Cómo descargar Nagios NRPE para Fedora 35

Vamos a descargar Nagios NRPE para Fedora 35 desde el sitio oficial del proyecto, y haremos esto tanto en el servidor Nagios Core como en las máquinas remotas:

Hay que descargar Nagios NRPE tanto en el servidor Nagios como en las máquinas remotas

como descargar nagios nrpe para fedora 35, 34 y 33

Descargamos el paquete .tar.gz desde consola con wget:

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

Cómo instalar el servicio NRPE en Fedora 35

Vamos a instalar el servicio Nagios NRPE en las máquinas remotas Fedora 35, es decir, en los sistemas que van a ser monitorizados por el servidor Nagios.

Esta parte del proceso sólo la realizaremos en las máquinas remotas

Descomprimimos el archivo que acabamos de descargar:

~$ tar xf nrpe-4.0.3.tar.gz

Accedemos al nuevo subdirectorio:

~$ cd nrpe-4.0.3

Si trabajamos con Fedora 33 ó anteriores, configuramos la compilación como en versiones anteriores:

$ ./configure

Pero si trabajamos con Fedora 35 ó 34 habrá que desactivar la opción SSL:

$ ./configure --disable-ssl

Compilamos el servidor NRPE:

$ make nrpe

E instalamos binarios y configuraciones:

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

Podemos abandonar el subdirectorio del código fuente:

$ cd ..

Y eliminar dicho subdirectorio:

~$ sudo rm -rf nrpe-4.0.3

Cómo configurar el servicio Nagios NRPE en Fedora 35

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

A la lista de direcciones permitidas añadiremos la de nuestro servidor Nagios Core, indicando su dirección IP o un nombre DNS que se pueda resolver:

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

En este mismo archivo ya existen definiciones de comandos permitidos desde el servidor Nagios Core, podemos echar un vistazo:

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

Podemos modificar los comandos existentes, como por ejemplo el comando check_hda1, ya que el sistema de ejemplo sobre el que trabajamos en lugar de dispositivo /dev/hda1 tiene /dev/sda1, quedando así:

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

Puedes hacer las modificaciones que consideres necesarias, activar cualquiera de los otros comandos desactivados que se incluyen en la configuración y añadir nuevos comandos personalizados. Pero observa que en cualquier caso las definiciones de comandos sólo admiten parámetros perfectamente determinados, no es posible utilizar variables para que el servidor envíe valores para estos parámetros.

Guardados los cambios y cerrado el archivo, podemos iniciar el servicio:

~$ sudo systemctl start nrpe

Para comprobar que el servicio se encuentra en ejecución podemos lanzar el comando systemctl status nrpe:

como instalar nagios nrpe en fedora 35, 34 y 33

Si queremos que el servicio Nagios NRPE esté siempre disponible e inicie automáticamente junto a Fedora 35, lo habilitaremos:

~$ sudo systemctl enable nrpe

Configurar el firewall de Fedora 35 para Nagios NRPE

El servicio Nagios NRPE queda a la espera de peticiones en el puerto 5666/TCP, por lo que debemos añadir una regla para el firewall de Fedora 35. En luegar de usar el puerto es posible añadir el servicio:

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

Aplicamos los cambios recargando la configuración del firewall:

~$ sudo firewall-cmd --reload

Cómo instalar el plugin NRPE en Fedora 35

Es el momento de instalar el plugin NRPE en el servidor Fedora 35 donde tenemos corriendo el servicio Nagios Core.

Este paso lo realizaremos en el servidor Nagios Core

Descomprimimos el paquete de NRPE:

~$ tar xf nrpe-4.0.3.tar.gz

Cambiamos el directorio de trabajo al subdirectorio que se acaba de crear:

~$ cd nrpe-4.0.3

En Fedora 33 y anteriores configuramos la compilación del siguiente modo:

$ ./configure

Pero en Fedora 35 ó 34 habrá que desactivar la configuración para SSL:

$ ./configure --disable-ssl

Compilamos el plugin check_nrpe:

$ make check_nrpe

Y lo instalamos:

$ sudo make install-plugin

Ya podemos abandonar el subdirectorio del código fuente:

$ cd ..

Y eliminarlo:

~$ sudo rm -rf nrpe-4.0.3

Podemos comprobar que el plugin funciona lanzándolo desde consola utilizando el parámetro -H para indicar la dirección de alguna máquina remota que tenga el servicio Nagios NRPE configurado para recibir instrucciones desde el servidor Nagios Core:

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

Como prueba de funcionamiento, la máquina remota responde con la versión del servicio NRPE instalado.

Configurar una máquina remota en Nagios Core

Empezaremos editando el archivo commands.cfg de Nagios Core para crear un comando que nos permita usar el nuevo plugin check_nrpe:

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

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

...
### Comando para usar el plugin NRPE

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

Guardamos los cambios y cerramos el archivo.

Ahora editamos la configuración de Nagios Core:

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

Aunque no está activado por defecto, la configuración ya ha previsto un directorio para almacenar los archivos de configuración de las máquinas remotas, una subcarpeta llamada servers/:

...
#cfg_dir=/usr/local/nagios/etc/servers
#cfg_dir=/usr/local/nagios/etc/printers
#cfg_dir=/usr/local/nagios/etc/switches
#cfg_dir=/usr/local/nagios/etc/routers
...

Activamos la directiva eliminando el carácter # al inicio de línea:

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

Y guardamos y cerramos el archivo.

La carpeta servers/ en realidad no existe, así que la creamos:

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

Y dentro de la nueva carpeta creamos el archivo de configuración para la máquina remota:

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

La configuración básica constará de un bloque con los datos de la máquina remota:

define host {
        use                     linux-server
        host_name               fedora352.local.lan
        alias                   Fedora 35 remoto
        address                 fedora352.local.lan
        max_check_attempts      5
        check_period            24x7
        notification_interval   30
        notification_period     24x7
}

Podemos observar que se usa la plantilla linux-server, de detalla el nombre, alias y dirección de la máquina remota y se establecen los intentos y frecuencias de conexión.

A continuación podemos definir todos los servicios que queramos monitorizar en la máquina remota de entre los que la misma permita. En este caso usaremos el servicio de carga de CPU y el servicio check_sda1 que modificamos anteriormente:

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

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

Una vez guardados los cambios sólo queda recargar la configuración del servicio Nagios Core para que incluya la nueva máquina remota:

~$ sudo systemctl reload nagios

De regreso a la interfaz web de Nagios Core en el servidor, si echamos un vistazo a la sección «Hosts» veremos que ahora además de la máquina local también aparece la nueva máquina remota:

como configurar nagios core en fedora 35, 34 y 33

Y en la sección «Services» veremos los servicios supervisados agrupados por máquinas:

instalar y configurar nagios en fedora 35, 34 y 33

Puedes repetir el proceso para supervisar tantas máquinas remotas como necesites.

Conclusión

Ahora que sabes cómo instalar y configurar Nagios Core en Fedora 35 ya puedes monitorizar los servicios de distintas máquinas Fedora 35 a través de Nagios Core y sus plugins de forma sencilla.

Si tienes dudas, preguntas, alguna sugerencia de mejora o actualización del artículo, notificación de posibles errores, etc. puedes dejar un comentario, que responderemos lo antes posible.

¡Apoya comoinstalar.me!

¿Ya has empezado a monitorizar tu red gracias a nuestra guía de instalación y configuración de Nagios Core en Fedora 35? Si es así y quieres agradecérnoslo puedes colaborar con el mantenimiento de este sitio y creación de más artículos y tutoriales sobre temas como Fedora 35 o Nagios Core.

Puedes ayudarnos dejando 1 $ de propina con PayPal:

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

¡Gracias!

Valora esta entrada

5/5 - (2 votos)

3 comentarios en «Cómo instalar Nagios Core en Fedora 35»

  1. Hola.
    Muy bueno el tutorial, pero al recargar al final el Nagios me da error con las lineas que se descomentaron en nagios.cfg:

    cfg_dir=/usr/local/nagios/etc/servers/
    cfg_dir=/usr/local/nagios/etc/printers
    cfg_dir=/usr/local/nagios/etc/switches
    cfg_dir=/usr/local/nagios/etc/routers

    No sé si es porque estoy usando la misma PC mía para servidor y para chequear por la red o es por otra cosa…
    Por si las moscas le puse el / al final de las líneas y nada, siguió con el error, solo cuando las comenté fue que no me dio más problemas.

    Responder
    • Hola, Armando. Tu problema es que descomentas esas líneas pero luego no creas los directorios indicados. En el tutorial únicamente se descomenta la primera directiva de ese bloque y a continuación se crea el directorio. Si quieres descomentar el resto de directivas, igualmente deberías crear los directorios correspondientes.

      Responder

Deja un comentario