Instalar Nagios 4 en RHEL 8 y Centos 8

En esta entrada aprendemos a realizar la instalación del popular sistema de monitoreo Nagios, en su versión 4, en sistemas RHEL y Centos 8. De esta producto ya hemos hablado largo y tendido en la web, pero sí que es verdad que todavía no lo habíamos probado sobre las distribuciones del sombrero rojo.

Recuerda que este producto es compatible con la mayoría de sistemas, y permite controlar el estado de equipos, servicios, procesos o redes; se puede instalar sobre sistemas GNU/Linux, Microsoft Windows o equipos like-UNIX como *BSD.

Nagios se configura mediante archivos de texto y proporciona una interfaz web intuitiva para la administración y el monitoreo; aunque para hacer modificaciones o añadir nuevos monitores, debemos modificar dichos archivos de texto (Desde la consola de comandos, en el caso de sistemas GNU/Linux)  En caso de que uno de los monitores detecte un problema, enviara un mensaje de correo electrónico, SMS o incluso mensaje de Telegram. Existe una versión de pago llamada Nagios XI, que facilita la gestión del producto prácticamente al 100% desde la interfaz web.

Preparar el entorno

Yo he preparado una máquina virtual con Centos 8, y la he actualizado a la última versión del sistema y de los paquetes:

sudo dnf update

Una vez hecho esto deshabilitamos SELinux, para que todo funcione OK.

sudo sed -i 's/SELINUX=.*/SELINUX=disable/g' /etc/selinux/config

Una vez hecho esto lo recomendado es siempre reiniciar el equipo.

Además en mi caso he creado un registro «A» en mi proveedor DNS, para no tener que poner IP cada vez que quiera acceder al host o posteriormente a la web de Nagios. Le he asignado un nombre amigable, como «servnagios.bitsandlinux.com», para cambiar el nombre con systemd.

sudo hostnamectl set-hostname servnagios.bitsandlinux.com

Una vez hecho pasemos a instalar los requisitos previos.

Requisitos previos

Para instalar Nagios debemos instalar unas series de dependencias imprescindibles. Esto sería Apache y PHP, básicamente; no se puede considerar un servidor LAMP, ya que no instalamos un servidor de base de datos MYSQL o MariaDB

sudo dnf install @php
sudo dnf install @perl @httpd wget unzip glibc automake glibc-common gettext autoconf 
sudo dnf install php php-cli gcc gd gd-devel net-snmp openssl-devel unzip
sudo dnf install net-snmp postfix net-snmp-utils

Además de las herraminetas de desarrollo, conocidas en inglés como «Development Tools«, ya que son necesarios cuando necesitemos compilar.

sudo dnf groupinstall "Development Tools"

Después debemos habilitar al inicio los servicios de Apache y FPM

sudo systemctl enable --now httpd php-fpm

Descargar la versión 4 de Nagios Core

Desde la página oficial de descargas podemos ver cual es la última versión, que a fecha de hoy es la 4.4.6 y descargamos:

cd ~
export VER="4.4.6"
curl -SL \
https://github.com/NagiosEnterprises/nagioscore/releases/download/nagios-$VER/nagios-$VER.tar.gz \
| tar -xzf -

Compilar Nagios Core en RHEL 8 y Centos 8

Como he indicado antes una vez descargado el código del proyecto, mayormente escrito en C, debemos realizar la compilación. Primero de todo ejecutamos el guión de configuración:

cd nagios-4.4.6
./configure

Con un resultado, en mi caso, como el que sigue:

A continuación ya podemos compilar el programa en si las CGI

make all

Creamos los usuarios y grupos correspondienties:

sudo make install-groups-users
sudo usermod -a -G nagios apache

Realizamos la instalación de Nagios:

sudo make install

Creamos el init script:

sudo make install-daemoninit

Instalamos y configuramos los permisos en el directorio para guardar los comandos externos:

sudo make install-commandmode

Instalamos los ficheros de configuración de ejemplo, en la ruta /usr/local/nagios/etc/, así:

sudo make install-config

Ya hemos dicho que vamos a utilizar como servidor web a Apache. Por lo que ahora vamos añadir el fichero de configuración correspondiente para Nagios:

sudo make install-webconf

Con un resultado similar:

Continuamos con lainstalación:

sudo make install-exfoliation

Y por último en esta parte, que no menos importante, escogemos el tema de la interfaz web, que puede ser el llamado «Exfoliation» o el temá clásico:

sudo make install-exfoliation
#O
sudo make install-classicui

Crear el usuario web de Nagios

Para poder acceder vía web necesitamos craer un usuario web y asignarle una contraseña:

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

Una vez hecho esto reiniciamos Apache

sudo systemctl restart httpd

Instalar los Nagios Plugins

Con los plugins de Nagios podemos añadir funcionalidades adicionales a la herramienta.

Podemos consultar las últimas versiones desde la web del proyecto en GitHub

cd ~
VER="2.3.3"
curl -SL \
https://github.com/nagios-plugins/nagios-plugins/releases/download/release-$VER/nagios-plugins-$VER.tar.gz \
| tar -xzf -

Accedemos a la carpeta:

cd nagios-plugins-2.3.3

Compilamos e instalamos los plugins de Nagios:

./configure --with-nagios-user=nagios --with-nagios-group=nagios
make
sudo make install

Veriricar la instalación

Una vez realizada la instalación comprobamos que todo haya ido bien:

Nagios Core 4.4.6
Copyright (c) 2009-present Nagios Core Development Team and Community Contributors
Copyright (c) 1999-2009 Ethan Galstad
Last Modified: 2020-04-28
License: GPL
 
Website: https://www.nagios.org
Reading configuration data...
   Read main config file okay...
   Read object config files okay...
 
Running pre-flight check on configuration data...
 
Checking objects...
        Checked 8 services.
        Checked 1 hosts.
        Checked 1 host groups.
        Checked 0 service groups.
        Checked 1 contacts.
        Checked 1 contact groups.
        Checked 24 commands.
        Checked 5 time periods.
        Checked 0 host escalations.
        Checked 0 service escalations.
Checking for circular paths...
        Checked 1 hosts
        Checked 0 service dependencies
        Checked 0 host dependencies
        Checked 5 timeperiods
Checking global event handlers...
Checking obsessive compulsive processor commands...
Checking misc settings...
 
Total Warnings: 0
Total Errors:   0
 
Things look okay - No serious problems were detected during the pre-flight check

Encendemos Nagios y lo añadimos al inicio

sudo systemctl  enable --now nagios

Podemos comprobar su estado:

sudo systemctl status nagios.service

Acceder a la interfaz web de Nagios

Primero de todo, si tenemos habilitado el cortafuegos, que es lo recomendable, debemos abrir los puertos 80 y 443 en este:

sudo firewall-cmd --permanent  --add-service={http,https}
sudo firewall-cmd --reload

Y ya podemos acceder, en mi caso http://servnagios.bitsandlinux.com/nagios, con el resultado, una vez puestos el usuario y la contraseña:

Y esto es todo, quizás también te puedan interesar estas entradas:

Instalar Nagios en un servidor Debian 9 y en Raspbian

Instalar y configurar Nagios en Debian Jessie

Instalar Icinga 2 e Icinga Web 2 en Centos 7

Nos vamos leyendo, sed buenos.