Icinga 2 es un sistema de monitoreo de código abierto que es altamente escalable y extensible. Puede monitorear entornos grandes y complejos en múltiples ubicaciones. Comprueba la disponibilidad de los recursos de su red, notifica a los usuarios sobre interrupciones y genera datos de rendimiento para la generación de informes. Es una aplicación de monitoreo de red que se puede configurar desde la web y su funcionalidad se basa principalmente en el lenguaje de programación del lado del servidor PHP.
Básicamente, monitorea el estado de los protocolos de red, como HTTP, FTP, SMTP, IMAP u otros servicios de red, recursos de host, sensores físicos, instalaciones de software, carga de CPU, memoria, espacio en disco y casi todos los dispositivos de red interconectados a través de ICMP. o solicitudes de ping. Además, se puede configurar fácilmente para notificar a los administradores del sistema o de la red por correo, SMS, chat u otros tipos de alertas sobre la red, los sistemas, los servicios u otras interrupciones de la red relacionadas y también puede generar gráficos sobre el tiempo de inactividad o el rendimiento de la red.
En este artículo, explicaré cómo instalar un servidor Icinga2 con interfaz Web 2 en nuestro último servidor Debian 9.3. Veamos las instrucciones paso a paso sobre cómo construir nuestro sistema de monitoreo.
Requisitos previos
Antes de continuar con la instalación, debemos asegurarnos de que nuestro sistema cumpla con todos los requisitos de software para compilar e instalar la aplicación. En el primer paso, actualice los repositorios de su sistema y los paquetes de software emitiendo el siguiente comando.
# apt update
# apt upgrade
# apt install bash-completion
A continuación, configure el nombre de host para su servidor ejecutando el siguiente comando. He añadido icinga2
a mi nombre de host.
# hostnamectl set-hostname icinga2
# hostnamectl
Static hostname: icinga2
Icon name: computer-vm
Chassis: vm
Machine ID: 7f2b1120403449a3b27d2f40de770be2
Boot ID: 321481f419e94e6cb377ae804d9bab42
Virtualization: kvm
Operating System: Debian GNU/Linux 9 (stretch)
Kernel: Linux 4.9.0-4-amd64
Architecture: x86-64
# cat /etc/hostname
icinga2
Finalmente, debemos reiniciar nuestro servidor Debian para aplicar las actualizaciones del kernel y el nombre de host cambia correctamente.
Instalar pila LAMP
Como se discutió anteriormente, Icinga 2 es una aplicación de monitoreo de red escrita en C ++ e Icinga Web 2 es un poderoso marco PHP para aplicaciones web que viene en un diseño limpio y reducido. Para ejecutar sus scripts de archivo, se debe instalar y operar en el servidor un servidor web, como un servidor HTTP Apache, y una puerta de enlace de procesamiento PHP. Instalé el servidor web Apache, MySQL y todos los módulos PHP requeridos por Icinga con el siguiente comando:
# apt install apache2 libapache2-mod-php7.0 php7.0-xml php7.0-opcache php7.0-xml php7.0-mbstring php7.0-json php7.0-curl php7.0-ldap php7.0-cli php7.0-gd php7.0-intl php7.0-readline php7.0-pgsql
# apt install mariadb-server mariadb-client php7.0-mysql
Inicie/habilite el servicio Apache/MySQL.
# systemctl enable apache2 mariadb
# systemctl start apache2 mariadb
# systemctl status apache2 mariadb
Después de que se hayan instalado Apache, MySQL y PHP, puede probar si el servidor web está funcionando navegando por la IP del servidor o incluso puede confirmar probando las conexiones de red escuchando en sus puertos correspondientes o por servicio usando el comando netstat desde la consola. con privilegios de root como se muestra a continuación:
# netstat -plan | grep :80
tcp6 0 0 :::80 :::* LISTEN 19097/apache2
tcp6 0 0 127.0.0.1:80 127.0.0.1:40780 TIME_WAIT -
# netstat -plan | grep mysql
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 14240/mysqld
unix 2 [ ACC ] STREAM LISTENING 52783 14240/mysqld /var/run/mysqld/mysqld.sock
Crear base de datos MySQL para Icinga2
En primer lugar, debemos iniciar sesión en la consola MySQL y ejecutar el siguiente comando para asegurar la base de datos MariaDB y establecer una contraseña de root:
# mysql_secure_installation
Ahora podemos crear dos bases de datos que pueden ser utilizadas por la aplicación Icinga2 y un usuario con contraseña para administrar estas bases de datos. Creé la base de datos, a saber, icingadb y icinga_users y otorgó privilegios para el usuario icinga_user con una contraseña para acceder a los siguientes:
~# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 12
Server version: 10.1.26-MariaDB-0+deb9u1 Debian 9.1
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> create database icingadb;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> grant all privileges on icingadb.* to 'icinga_user'@'localhost' identified by 'password';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> create database icinga_users;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> grant all privileges on icinga_users.* to 'icinga_user'@'localhost' identified by 'password';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.01 sec)
La base de datos icingadb
se crea para la aplicación web icinga2 y la base de datos icinga_users
se crea para almacenar usuarios de la interfaz web Icinga2, grupos y otros datos personalizados de la interfaz web.
Instalación de Icinga2
Después de completar la instalación de todos los requisitos del sistema, podemos continuar con la instalación de la aplicación Icinga2 junto con el módulo MySQL IDO. Estamos usando MySQL como base de datos externa. Por lo tanto, necesitamos instalar el módulo MySQL IDO que se usa para la interfaz web Icinga2. Se utiliza para exportar toda la información de configuración y estado a su base de datos. Icinga 2 tiene paquetes binarios precompilados ofrecidos por los repositorios de Debian 9.3. Por lo tanto, la instalación se puede realizar a través de su administrador de paquetes apt como se muestra a continuación:
# apt install icinga2 icinga2-ido-mysql
Aparecerá una serie de indicaciones en su pantalla durante la instalación. En primer lugar, se le preguntará si desea configurar y habilitar Icinga 2 para usar el módulo MySQL. Seleccione Yes
desde el aviso y presiona [enter]
para continuar como se ilustra en la imagen de abajo.
En el siguiente mensaje, se le preguntará si desea configurar la base de datos para icinga2-ido-mysql con la opción dbconfig-common. Elija No
desde el aviso y presiona [enter]
clave para finalizar la instalación de Icinga 2.
Después de habilitar este módulo y crear nuestra base de datos, debemos reiniciar nuestro servicio Icinga2.
# systemctl start icinga2.service
# systemctl status icinga2.service
Asegúrese de que el archivo de configuración de MySQL de IDO esté configurado correctamente con las credenciales de base de datos correctas.
# cat /etc/icinga2/features-enabled/ido-mysql.conf
/**
* The db_ido_mysql library implements IDO functionality
* for MySQL.
*/
library "db_ido_mysql"
object IdoMysqlConnection "ido-mysql" {
user = "icinga_user",
password = "password",
host = "localhost",
database = "icingadb"
}
Habilitación de la lista de funciones
De forma predeterminada, Icinga2 habilita las siguientes funciones. Podemos habilitar cualquier característica adicional a la lista ejecutando este comando icinga2 feature enable <feature name>
. Podemos confirmar la configuración habilitada ejecutando este comando como se muestra a continuación:
~# icinga2 feature list
Disabled features: api command compatlog debuglog gelf graphite influxdb livestatus opentsdb perfdata statusdata syslog
Enabled features: checker ido-mysql mainlog notification
The following features are enabled by default:
Checker: This feature enables the execution of checks.
Mainlog: This feature enables the logging.
Notification: This feature enables notification mechanism.
IDO-mysql: Provides IDO module for the database.
Instalación del complemento Icinga Web2
Nuestro siguiente paso es instalar la interfaz web Icinga 2 y los paquetes de utilidades de línea de comandos desde el repositorio de Debian 9.3 utilizando su administrador de paquetes.
#apt install icingaweb2 icingacli
Después de la instalación, puede reiniciar el demonio Icinga 2 para recoger todos los cambios y verificar el estado de la aplicación antes de continuar con la parte de configuración.
# systemctl restart icinga2.service
# systemctl status icinga2.service
# systemctl restart apache2
Ahora instale el esquema MySQL para la base de datos Icinga ejecutando el siguiente comando. El esquema de la base de datos MySQL se encuentra en el directorio /usr/share/icinga2-ido-mysql/schema/.
mysql -u root icingadb -p < /usr/share/icinga2-ido-mysql/schema/mysql.sql
Finalmente, podemos generar el token de instalación para completar la instalación del complemento Icinga web 2 a través de una interfaz web.
# icingacli setup token create
The newly generated setup token is: c25b22acfc9f9094
# icingacli setup token show
The current setup token is: c25b22acfc9f9094
Configuración del complemento Icinga Web 2
Después de generar el token, podemos comenzar a configurar el complemento Icinga Web 2 abriendo esta URL>> http://IP//icingaweb2/setup
en tu navegador. Puede navegar a través de estas capturas de pantalla para obtener más claridad al respecto.
Paso 1:Configuración del token
Como primer paso, te pedirá que proporciones el token generado antes de iniciar la fase de instalación. Si no ha generado un token, puede seguir las instrucciones proporcionadas en la captura de pantalla anterior para generar un token y continuar con el siguiente paso.
Paso 2:Selección de los módulos Icinga Web2
Después de proporcionar el token, pasará a la siguiente sección para seleccionar los módulos. Podemos elegir los módulos preferidos para pasar al siguiente paso.
Paso 3:Verificación de la configuración de PHP
Para continuar, necesitamos instalar los módulos PHP que faltan y configurar la zona horaria adecuada. Instalé el módulo PHP faltante usando este comando "apt install php7.0-pgsql"
y reinició Apache para hacer efectivos estos cambios. Además, puede establecer una zona horaria adecuada en el archivo de configuración de PHP /etc/php/7.0/apache2/php.ini
. Después de cumplir con la configuración requerida, puede continuar con la siguiente etapa.
Paso 5:métodos de autenticación
Necesitamos elegir el medio de autenticación preferido para continuar con la instalación. Como mencioné antes, preferí elegir el tipo de base de datos para esto.
Paso 6:Ingrese los detalles de la base de datos
En esta etapa, agregue el nombre de la base de datos MySQL web de Icinga 2 y las credenciales de acceso para esta base de datos. Esta base de datos se utilizará para almacenar usuarios y grupos de la interfaz web de Icinga 2. Utilice la información de la base de datos para la segunda base de datos creada anteriormente. Agregue icingaweb_db como nombre para este recurso y deje las variables Host, Port y Character set como predeterminadas. No marque la opción Persistente y SSL. Presione el botón Validar configuración para validar la conexión de la base de datos, como se muestra en la imagen a continuación. Cuando termine, presione el botón Siguiente para pasar a la siguiente sección del instalador.
Paso 7:Creación de inicios de sesión de administración web de Icinga
Después de autenticar con éxito los recursos de nuestra base de datos, debemos crear la cuenta administrativa para administrar la interfaz web de Icinga2. Elija una contraseña segura para esta cuenta. Cuando termine, presione el botón Siguiente para pasar a la siguiente pantalla de instalación.
Paso 8:elegir las opciones de configuración de la aplicación
A continuación, debemos configurar la aplicación Icinga y la configuración de registro con los siguientes ajustes tal como se muestra en la captura de pantalla.
- Marque Mostrar seguimientos de pila
- Tipo de almacenamiento =Base de datos
- Tipo de registro =Archivo
- Nivel de registro =Error
- Ruta del archivo =/var/log/icingaweb2/icingaweb2.log
Necesitamos crear este archivo de registro desde el backend del servidor y establecer el permiso/propiedad adecuado para asegurarnos de que los registros de Icinga Web 2 funcionen correctamente.
Paso 9:Revisar todas las configuraciones elegidas.
Esta pantalla le informará que Icinga Web2 se ha configurado correctamente y un informe detallado mostrará todas las configuraciones realizadas hasta el momento. Revise el informe y presione el botón Siguiente para continuar con la siguiente sección de instalación.
Paso 10:Configuración del módulo de monitoreo
Ahora hemos completado la parte de autenticación y sigue con la configuración del módulo de monitoreo.
Como discutimos antes, el módulo Icinga IDO exporta toda la información de estado y las partes de configuración a la base de datos principal de Icinga. Por lo tanto, debemos seleccionar este módulo y configurarlo correctamente para actualizar la base de datos con la información.
Aquí debemos proporcionar la información de la base de datos principal para continuar. Complete los detalles de la base de datos aquí. Asegúrese de establecer los privilegios adecuados para el usuario de la base de datos para cualquier modificación.
Configure Icinga Command Transport con las siguientes configuraciones y presione el botón Siguiente para continuar.
- Nombre del transporte =icinga2
- Tipo de transporte =Archivo de comando local
- Archivo de comandos =/var/run/icinga2/cmd/icinga2.cmd
No necesitamos hacer ninguna modificación en esta etapa de Seguridad. Podemos continuar con la configuración predeterminada haciendo clic en 'Next".
Paso 11:Revisión de las opciones de configuración del módulo de Supervisión
Esta etapa le informará con toda la parte de configuración del módulo de monitoreo que ha seleccionado. Simplemente puede confirmar la configuración y continuar para completar la configuración.
Paso final:inicie sesión en la interfaz web
Una vez que el proceso de instalación se haya completado con éxito, un mensaje de felicitación le informará que Icinga Web 2 se ha instalado correctamente. Presiona el Login link
para redirigir a la página de inicio de sesión de Icinga2.
Inicie sesión en Icinga Web 2 con las credenciales configuradas durante el proceso de instalación y será dirigido al Panel de control de Icinga Web 2,
Nuestro nodo maestro se agrega por defecto a este sistema. Podemos ver las notificaciones de servicio para nuestro servidor maestro Icinga aquí. O simplemente puede navegar por esta URL http://IP/icingaweb2/
para acceder a la interfaz web.
Podemos agregar cualquier número de nodos a este sistema de monitoreo.
Conclusión
Hemos instalado y configurado con éxito la aplicación de monitoreo de red Icinga 2 en el servidor Debian 9.3. Para obtener más detalles sobre la configuración personalizada, puede consultar esta documentación de Icinga. Espero que este artículo te sea útil. Publique sus valiosos comentarios y sugerencias al respecto.