Búsqueda de sitios web

Cómo instalar Icinga2 en RHEL, Rocky y AlmaLinux


Icinga2 es una aplicación de alerta y monitoreo de red de código abierto rica en funciones que es una bifurcación de la herramienta de monitoreo Nagios.

Fue creado para abordar las deficiencias de Nagios e introducir nuevas funciones, como una interfaz de usuario moderna y mejorada, una API REST para integrar nuevas extensiones sin la necesidad de realizar cambios en el núcleo de Icinga y conectores de bases de datos adicionales.

Icinga2 monitorea la disponibilidad de hosts y servicios. Algunos de estos servicios incluyen SNMP, HTTP, HTTPS y SSH. También monitorea dispositivos de red como enrutadores y conmutadores.

Icinga también recopila métricas y genera registros para brindarle una imagen completa de su infraestructura de red. Luego, los registros y las métricas se visualizan en paneles para poner todo en un mejor contexto.

En este artículo, mostramos cómo instalar la aplicación de monitoreo Icinga2 en RHEL, Rocky Linux y AlmaLinux.

Requisitos previos

Como requisito para instalar Icinga2, es necesario tener instalada la pila LAMP. Un poco de precaución: Icinga2 requiere PHP 7.3 y versiones posteriores para su instalación.

Ya tenemos un tutorial sobre cómo instalar LAMP en RHEL 8. Utilice este artículo para instalar el servidor web Apache y el servidor de base de datos MariaDB únicamente, ya que las instrucciones se centran en la instalación de PHP 7.2 que no es compatible con Icinga2.

En el primer paso de esta guía, lo guiaremos a través del proceso de instalación de PHP 7.4 y los módulos necesarios.

Paso 1: Instale PHP y módulos PHP

Con Apache y MariaDB instalados, sigamos adelante e instalemos PHP 7.4. Si tiene instalado PHP 7.2 y versiones posteriores, elimínelo ejecutando:

sudo dnf remove php

A continuación, restablezca el módulo PHP actual en el sistema.

sudo dnf module reset php

Después de eso, enumere las versiones de PHP disponibles como se muestra.

sudo dnf module list php

Luego habilite PHP 7.4.

sudo dnf module enable php:7.4

Una vez que se haya habilitado el módulo PHP 7.4, instale PHP y las extensiones PHP requeridas.

sudo dnf install php-gd php-mbstring php-mysqlnd php-curl php-devel php-pear php-xml php-cli php-soap php-intl php-json php-ldap php-xmlrpc php-zip php-json php-common php-opcache php-gmp php-pgsql make -y

Icinga2 también requiere la extensión php-imagick. Sin embargo, esto no se puede instalar de forma convencional como lo hicimos con los otros módulos PHP.

Para instalar la extensión, ejecute los siguientes comandos:

dnf install -y ImageMagick ImageMagick-devel
sudo pecl install imagick

Luego cambie al usuario root y agregue las extensiones al archivo PHP.INI.

su -
echo "extension=imagick.so" > /etc/php.d/20-imagick.ini

Para aplicar los cambios, reinicie el servidor web Apache.

sudo systemctl restart httpd

Paso 2: instale Icinga2 en RHEL 8

Para instalar Icinga2, necesitamos agregar el repositorio Icinga ya que Icinga2 no está alojado en los repositorios AppStream.

Para hacerlo, primero, habilite el repositorio EPEL.

sudo dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

A continuación, habilite la clave de firma GPG.

sudo rpm --import https://packages.icinga.com/icinga.key

A continuación, cree un archivo de repositorio en el directorio /etc/yum.repos.d.

sudo vim  /etc/yum.repos.d/icinga2.repo

Pega el siguiente bloque de código

 
[icinga2]
name=Icinga 2 Repository for EPEL 8
baseurl=https://packages.icinga.com/epel/8/release
enabled=1

Guarde y salga del archivo del repositorio. Luego actualice los paquetes de caché,

sudo dnf makecache

Con el repositorio agregado, instale el paquete Icinga2 y otros paquetes Icinga2 asociados.

sudo dnf install icinga2 icinga2-ido-mysql icinga2-selinux  vim-icinga2 -y

A continuación, instale los complementos de Nagios que se utilizarán para monitorear hosts físicos y virtuales.

sudo dnf install nagios-plugins-all -y

A continuación, habilite el módulo Icinga2 ido-mysql y otras funciones.

sudo icinga2 feature enable ido-mysql syslog command

Luego reinicie Icinga para que se apliquen los cambios.

sudo systemctl restart icinga2

Paso 3: crear una base de datos para el módulo MySQL Icinga-IDO

La función mysql icinga2-IDO (Icinga Data Output) es una función de backend que recopila y exporta toda la información de configuración y estado a una base de datos. Por este motivo, necesitamos crear una base de datos para la función Icinga2-ido-mysql.

Entonces, inicie sesión en el servidor de base de datos MySQL:

sudo mysql -u root -p

Cree una base de datos y un usuario de base de datos para Icinga2. Luego otorgue todos los privilegios del usuario de la base de datos a la base de datos Icinga2.

> CREATE DATABASE icinga2;
> GRANT ALL PRIVILEGES ON icinga2.* TO 'icinga2_user'@'localhost' IDENTIFIED BY 'P@ssword321';

Aplique los cambios y salga del servidor de base de datos.

> FLUSH PRIVILEGES;
> EXIT;

A continuación, importe el esquema de la base de datos de la siguiente manera. Se le solicitará una contraseña y luego deberá proporcionar la contraseña de la base de datos.

sudo mysql -u root -p icinga2 < /usr/share/icinga2-ido-mysql/schema/mysql.sql

Continuando, edite el archivo de configuración ido-mysql.

sudo vim /etc/icinga2/features-available/ido-mysql.conf

Descomente el bloque de la base de datos y especifique los detalles de la base de datos.

Guardar y Salir.

A continuación, inicie y habilite Icinga2.

sudo systemctl start icinga2
sudo systemctl enable icinga2

Luego verifique el estado de Icinga2 como se muestra.

sudo systemctl status icinga2

Del resultado a continuación, queda claro que Icinga está funcionando como se esperaba.

Paso 4: Instale IcingaWeb2 en RHEL 8

IcingaWeb2 es una herramienta de monitoreo basada en web de código abierto que también incorpora una interfaz de línea de comandos. Es compatible con todas las funciones backend de Icinga, como Icinga-ido-mysql, Icinga core, Icinga2 y otros módulos.

Para instalar IcingaWeb2, instale PowerTools usando el siguiente comando.

sudo dnf install 'dnf-command(config-manager)'
sudo dnf config-manager --set-enabled powertools

Una vez completada la instalación, instale IcingaWeb2 y la CLI como se muestra.

sudo dnf install icingaweb2 icingacli

Paso 5: cree una base de datos para IcingaWeb2

Así como creamos un esquema de base de datos para la función Icinga2-IDO-mysql, también necesitamos crear un segundo esquema para Icinga Web2.

Entonces, una vez más, inicie sesión en el servidor de la base de datos.

sudo mysql -u root -p

Cree una base de datos y un usuario de base de datos para IcingaWeb2 y luego otorgue todos los permisos al usuario de la base de datos en la base de datos Icinga Web2.

> CREATE DATABASE icingaweb2;
> GRANT ALL ON icingaweb2.* TO icingaweb2@localhost IDENTIFIED BY 'P@ssword321';

Guarde los cambios y salga.

> FLUSH PRIVILEGES;
> QUIT

Cuando se instaló Icinga2, se creó un nuevo archivo de configuración para Icinga2. Puedes verlo como se muestra.

cat /etc/httpd/conf.d/icingaweb2.conf

Debe reiniciar el servidor web Apache para que los cambios se apliquen.

sudo systemctl restart httpd

Además, también debe configurar el modo SELinux en "permisivo" de la siguiente manera.

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

Paso 6: Complete la configuración de Icinga2 desde el navegador

El paso en la instalación de Icinga2 es la creación de un token de configuración, que es un código único que se utilizará para la autenticación en el primer paso al configurar Icinga2 en un navegador.

Para generar un token secreto, ejecute el comando:

sudo icingacli setup token create

Copie y mantenga seguro el token de configuración. Si pierde el token, puede recuperarlo ejecutando el comando:

sudo icingacli setup token show

En este punto de esta guía, todas las configuraciones están bajo control. Lo que queda es completar la instalación desde un navegador web. Para hacer esto, navegue por la URL que se muestra

http://server-ip/icingaweb2/setup

En la página de bienvenida, pegue el token de configuración que generó anteriormente.

Una vez que haya pegado el token, haga clic en "Siguiente" para continuar. Esto le llevará a la página "Módulos". Esto proporciona una descripción general de todos los módulos que puede habilitar. De forma predeterminada, el módulo 'monitoreo' está habilitado.

Habilite sus módulos preferidos, desplácese hacia abajo y haga clic en "Siguiente" para continuar.

En esta sección, asegúrese de que se hayan cumplido todos los requisitos previos de PHP, lo que incluye módulos, bibliotecas y directorios de PHP. Si todo se ve bien, desplácese hacia abajo y haga clic en "Siguiente".

En la página "Autenticación", deje todo como está y haga clic en "Siguiente".

En la sección "Recurso de base de datos", complete los detalles de la base de datos para IcingaWeb2 como se especifica en el Paso 5.

Para confirmar que los detalles de la base de datos son correctos, desplácese hacia abajo y haga clic en "Validar configuración".

Si todo va bien, debería recibir una notificación de que la configuración se validó correctamente.

Para pasar al siguiente paso, desplácese hacia abajo y haga clic en "Siguiente". Para "Backend de autenticación", simplemente haga clic en "Siguiente" para aceptar los valores predeterminados.

En el siguiente paso, cree un usuario Admin que se utilizará para acceder e iniciar sesión en la interfaz web de Icinga2.

Para la sección "Supervisión de aplicaciones", acepte los valores predeterminados y haga clic en "Siguiente".

Revise todos los cambios que ha realizado hasta el momento. Si todo se ve bien, haga clic en "Siguiente" y si desea realizar algún cambio, haga clic en "atrás" y realice los cambios necesarios.

La siguiente sección es la configuración del módulo de monitoreo para IcingaWeb2. Este es el módulo principal de Icinga Web 2 que ofrece vistas de estado e informes con sólidas capacidades de filtrado para rastrear eventos cruciales.

Haga clic en "Siguiente" para continuar.

En el siguiente paso, complete el formulario con los detalles de la base de datos para la función Icinga2-ido-mysql como se especifica en el Paso 3.

Para validar la configuración, desplácese hacia abajo y haga clic en "Validar configuración".

Recibirá la notificación de que la configuración se validó correctamente.

Para continuar con el siguiente paso, desplácese hacia abajo y haga clic en "Siguiente". Para "Transporte de comando", utilice "Archivo de comando local" como tipo de transporte y haga clic en "Siguiente".

En la sección "Monitoreo de seguridad", haga clic en "Siguiente".

Una vez más, revise todas las configuraciones del módulo de monitoreo Icinga2. Si todo se ve bien, haga clic en "Finalizar"; de lo contrario, regrese y realice los cambios necesarios.

Si todo salió bien con la configuración de Icinga Web 2, debería recibir una notificación de que Icinga Web 2 se ha configurado correctamente. Para iniciar sesión en la interfaz web, haga clic en el enlace "Iniciar sesión en Icinga Web 2".

Esto abre la interfaz Icinga Web 2. Proporcione los detalles de la cuenta de administrador y haga clic en "iniciar sesión".

Esto lo llevará al panel de monitoreo de Icinga2 como se muestra.

Y eso es. Desde allí puede monitorear varios hosts y servicios dentro de su infraestructura de red. En esta guía, le hemos guiado a través de la instalación de Icinga Web 2 en RHEL 8, Rocky Linux y AlmaLinux. fuerte>.