Cómo instalar Nagios Core en Fedora 31

En este artículo veremos cómo instalar Nagios Core en Fedora 31 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 31

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

  • Una máquina Fedora 31 actualizada que actuará como servidor Nagios Core.
  • Servicio web con PHP.
  • Los paquetes tar y wget.
  • Acceso a consola con un usuario con permisos de sudo, o el mismo root.
  • Conexión a Internet.

Opcionalmente sería interesante disponer de otras máquinas Fedora 31 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 31 que actuará como servidor Nagios Core, accesible con el nombre DNS fedora31.local.lan.
  • Una máquina remota Fedora 31 que será supervisada, cuyo nombre DNS es fedora312.local.lan.

Cómo instalar los plugins de Nagios en Fedora 31

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

Esta sección es común para todas las máquinas Fedora 31, 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 31

Vamos a descargar los plugins de Nagios para Fedora 31 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 31

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.3.3/nagios-plugins-2.3.3.tar.gz

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

Vamos a instalar los requerimientos y dependencias para poder compilar los plugins de Nagios desde los repositorios de Fedora 31, por lo que actualizaremos las listas de paquetes:

~$ sudo yum update

Instalamos los 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.3.3.tar.gz

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

~$ cd nagios-plugins-2.3.3

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

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 31

Ahora vamos a ver cómo instalar el servidor Nagios Core en Fedora 31, 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 31 que actuará como servidor Nagios Core

Cómo descargar Nagios Core para Fedora 31

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

como descargar nagios core para fedora 31

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.6/nagios-4.4.6.tar.gz

Cómo instalar Nagios Core en Fedora 31

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.6.tar.gz

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

~$ cd nagios-4.4.6

Configuramos la compilación:

$ ./configure

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

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 31, 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 31

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 31 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 31 sobre la que realizamos este tutorial es accesible en el subdominio fedora31.local.lan, así que empleamos http://fedora31.local.lan/nagios como URL:

instalar nagios core en fedora 31

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 31

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

nagios core sobre fedora 31

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 31

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 31

Para configurar Nagios Core en Fedora 31 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 31

Es el momento de instalar Nagios NRPE en Fedora 31, 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 31

Vamos a descargar Nagios NRPE para Fedora 31 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 31

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 31

Vamos a instalar el servicio Nagios NRPE en las máquinas remotas Fedora 31, 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

Configuramos la compilación:

$ ./configure

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 31

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,fedora31.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 31

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

~$ sudo systemctl enable nrpe

Configurar el firewall de Fedora 31 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 31. 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 31

Es el momento de instalar el plugin NRPE en el servidor Fedora 31 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

Configuramos la compilación:

$ ./configure

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 fedora312.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/fedora312.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               fedora312.local.lan
        alias                   Fedora 31 remoto
        address                 fedora312.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               fedora312.local.lan
        service_description     Carga de CPU
        check_command           check_nrpe!check_load
}

define service {
        use                     generic-service
        host_name               fedora312.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 31

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

instalar y configurar nagios en fedora 31

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 31 ya puedes monitorizar los servicios de distintas máquinas Fedora 31 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 31? Si es así y quieres agradecérnoslo puedes ayudar al mantenimiento de este sitio y creación de más artículos y tutoriales sobre temas como Fedora 31 o Nagios Core invitándonos a un café:

 

O dejando 1 $ de propina con PayPal:

¡Gracias!

Valora esta entrada

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

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.

ACEPTAR
Aviso de cookies