Hoy veremos como instalar Icinga 2, que es un sistema de monitoreo, de código abierto y muy utilizada que puede usarse para chequear el estado de los hosts y servicios en red. Nos va a poder ver la carga de la CPU, el uso de la memoria y disco, protocolos como IMAP, POP3, SMTP, HTTP, enrutadores, conmutadores y muchas cosas más.

En este tutorial, aprenderemos cómo instalar y configurar Icinga 2 e Icinga Web 2 en Debian 10. Voy a hacer todo como root (su -), con un Debian recién instalado y actualizado.

1- Instalar Apache y PHP

Antes de comenzar, deberemos tener instalado en el servidor Apache, PHP y otros módulos PHP en el sistema.

apt install apache2 libapache2-mod-php php php-common php-curl php-gd php-curl php-dom php-mysql php-intl php-imagick php7.3-pgsql -y

OJO!!! con el módulo de php7.3-pgsql, de momento este es el que corresponde a la versión de php que estoy instalando que es 7.3, si da problemas a futuro cargar la que corresponda.

1.1 Una vez que todos los paquetes estén instalados, debemos hacer unos ajustes en el archivo php.ini

nano /etc/php/7.3/apache2/php.ini

Vamos a ajustar los siguientes parámetros, recordá que con nano, para buscar tenes que hacer Ctrl + w y escribir por ejemplo post_max_size y nos trae ese valor. Para el último valor, date.timezone debes descomentar la línea (sacarle el 😉 y poner el timezone que corresponde a tu país.

memory_limit = 256M 
file_uploads = On	
allow_url_fopen = On
allow_url_include = Off
post_max_size 64M
upload_max_filesize = 100M	
max_execution_time = 300
default_charset = "UTF-8"
date.timezone = "America/Argentina/Buenos_Aires"

Y reiniciamos el servicio para que tome el cambio.

systemctl restart apache2

2- Instalar Icinga2

Por defecto, Icinga2 está disponible en el repositorio predeterminado de Debian 10. Puede instalarlo con otras herramientas necesarias ejecutando el siguiente comando:

apt install icinga2 vim-icinga2 monitoring-plugins-basic monitoring-plugins-common icingacli -y

Iniciamos y habilitamos los servicios

systemctl start icinga2
systemctl enable icinga2

3- Instalar y configurar módulos MariaDB e IDO

3.1- Al hacer la instalación me dio unos errores, para evitarlos instale primero la base de datos MariaDB y después los componentes adicionales.

apt install mariadb-server -y

3.2- Y después instale los demás paquetes necesarios

apt install mariadb-common icinga2-ido-mysql -y

3.3- Durante el proceso de instalación, se pedirá que active la función ido-mysql de Icinga2, así que le damos Yes y enter.

3.4- Después nos pide configurar la base de datos para icinga2-ido-mysql con dbconfig-common, le damos Yes y enter.

3.5- Colocamos la contraseña de la BD y la confirmamos.

3.6- Ahora toca el momento de crear una base de datos y un usuario para Icinga web 2. Primero, inicie sesión en el shell de MariaDB con el siguiente comando:

mysql -u root -p

3.7- Y vamos  crear la base y dar los accesos de la siguiente forma:

CREATE DATABASE icingaweb2;
GRANT ALL PRIVILEGES ON icingaweb2.* TO 'icingaweb2'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
EXIT;

4- Instalar Icinga Web 2

4.1- Icinga Web 2 esta basada en PHP que nos permite utilizar para administrar Icinga2 a través del navegador web, así que veamos como instalarlo

apt install icingaweb2 -y

4.2- Una vez instalado, creamos un grupo de sistemas para Icinga web 2 y agregamos el usuario de www-data a este grupo para que Apache pueda tener acceso a los archivos:

addgroup --system icingaweb2
usermod -a -G icingaweb2 www-data

4.3- A continuación, deberemos generar un nuevo token de configuración para Icinga Web 2.

icingacli setup config directory --group icingaweb2
icingacli setup token create

Deberemos copiar el Token que se genera para usarlo más adelante.

4.4- Para evitar problemas en el medio de la instalación, vamos a habilitar 2 características de icinga2.

icinga2 feature enable ido-mysql
icinga2 feature enable command

4.5- Y reiniciamos el servicio de apache e ecinga2 para que aplique los cambios.

systemctl restart apache2 && systemctl restart icinga2

5- Configuración web de Icinga Web 2

5.1- Abrimos el navegador web y escribimos la URL http://localhost/icingaweb2/setup o podemos usar la IP desde otro. Serás redirigido a la siguiente página, y deberemos colocar el token que generamos en el punto anterior (4.3) y darle Next

5.2- Ahora seleccionamos los módulos, en este caso solo dejo Monitoring y le damos Next

5.3- Verificamos que esta todo OK, en el caso de recibir un alerta, es cuestión de instalar el módulo de php correspondiente y reiniciar apache2. Si esta todo en verde le damos Next

5.4- Seleccionamos el tipo de autenticación como Database y Next

5.5- Proporcionamos los datos de:

  • Resource Name: icingaweb2_db
  • Database Type: MySQL
  • Host: localhost
  • Port: 3306
  • Nombre de la base de datos, usuario y clave.

Le damos clic a Validate, si todo esta correcto seguimos adelante.

5.6- Asignamos un nombre de Back-end

5.7- Creamos el usuario administrador para la herramienta y la clave.

5.8- Dejamos la siguiente página como esta, que es para logs y le damos Next.

5.9- Vemos el resumen y si todo esta ok, Next.

5.10- Nos dá la bienvenida al módulo, clic en Next

5.11- Nos pide los datos de back-end y Next

5.12- Cargamos los datos de:

  • Resource Name: icinga_ido
  • Database Type: MySQL
  • Host: localhost
  • Port: 3306
  • Nombre de la base de datos, usuario y clave.

Le damos clic a Validate y si todo esta ok Next.

5.13- Ponemos:

  • Transport Name: icinga2
  • Transport Type: Local Command File

Y clic en Next

5.14- Dejamos tal y como esta la parte de seguridad y Next

5.15- Vemos el resumen y clic en Finish

5.16- Si todo salió bien, nos dará un mensaje de Congratulations! y podemos hacer clic en Login

5.17- Usamos el usuario icinga2admin y su clave que creamos anteriormente.

5.18- Listo, podemos comenzar a jugar con la herramienta, acá deje actualizaciones pendientes para que me de un mensaje de alerta y que puedan ver como es la interface.

Eso es todo, es un poco extenso pero vale la pena probar Icinga2 en Debian 10 y ver la potencia de esta herramienta.

Deja un comentario