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