LINUX

Cómo instalar Icinga 2 e Icinga Web 2 en Debian 9

icinga web 2 debian 9

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 informar. 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 hosts, 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 otra interrupción de la red relacionada 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. Repasemos las instrucciones paso a paso sobre cómo construir nuestro sistema de monitoreo.

Prerrequisitos

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 de 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, necesitamos reiniciar nuestro servidor Debian para aplicar las actualizaciones del kernel y los cambios de nombre de host correctamente.

Instalar la 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, un servidor web, como el servidor HTTP Apache, y una puerta de enlace de procesamiento PHP deben estar instalados y operativos en el servidor. Instalé el servidor web Apache, MySQL y todos los módulos PHP requeridos que Icinga necesita 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á en funcionamiento navegando por la IP del servidor o incluso puede confirmar probando las conexiones de red que escuchan en sus puertos correspondientes o mediante el 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

Crea una base de datos MySQL para Icinga2

En primer lugar, debemos iniciar sesión en la consola MySQL y ejecutar el siguiente comando para proteger 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. He creado la base de datos a saber icingadb y icinga_users y privilegios otorgados 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, grupos y otros datos personalizados de la interfaz web de Icinga2.

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 IDO de MySQL que se utiliza para la interfaz web de 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 indicador y presione [enter] para continuar como se ilustra en la imagen de abajo.

glaseado

En el siguiente mensaje, se le preguntará si desea configurar la base de datos para icinga2-ido-mysql con la opción dbconfig-common. Escoger No desde el mensaje y presione [enter] clave para terminar la instalación de Icinga 2.

icingasetup2

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 IDO MySQL 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 de la siguiente manera:

~# 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 de Icinga 2 y los paquetes de utilidades de línea de comandos desde el repositorio de Debian 9.3 usando 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 su navegador. Puede navegar a través de estas capturas de pantalla para obtener más claridad al respecto.

Paso 1: configurar el token

Como primer paso, te pedirá que proporciones el token generado antes para 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.

Módulos web de Icinga

Paso 3: Verificación de la configuración de PHP

Para continuar, necesitamos instalar los módulos PHP que faltan y establecer la zona horaria adecuada. He instalado el módulo PHP que falta 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 pasar a la siguiente etapa.

Configuración de Icinga Web PHP

Paso 5: métodos de autenticación

Necesitamos elegir los medios de autenticación preferidos para continuar con la instalación. Como mencioné antes, preferí elegir el tipo de base de datos para esto.

Autenticación web Icinga

Paso 6: ingrese los detalles de la base de datos

En esta etapa, agregue el nombre de la base de datos Icinga 2 Web MySQL 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 de abajo. Cuando termine, presione el botón Siguiente para pasar a la siguiente sección del instalador.

Base de datos web Icinga
Autenticación de Icinga Web DB

Paso 7: Creación de inicios de sesión de administración web de Icinga

Después de autenticar correctamente 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.

Inicios de sesión administrativos

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 las siguientes configuraciones tal como se muestra en la captura de pantalla.

  • Verificar Mostrar trazas 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 servidor backend y establecer el permiso / propiedad adecuados para asegurarnos de que los registros de Icinga Web 2 funcionan correctamente.

Aplicación web Icinga

Paso 9: revisión de todos los ajustes elegidos.

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.

Resumen de la instalación web de Icinga

Paso 10: Configurar el módulo de monitoreo

Ahora hemos completado la parte de autenticación y sigue con la configuración del módulo de monitoreo.

Monitoreo web de Icinga

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

Icinga Web IDO

Aquí debemos proporcionar la información principal de la base de datos 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 la siguiente configuración y presione el botón Siguiente para continuar.

  • Nombre de transporte = icinga2
  • Tipo de transporte = Archivo de comando local
  • Archivo de comando = /var/run/icinga2/cmd/icinga2.cmd

Medio de transporte web Icinga

No necesitamos realizar ninguna modificación en esta etapa de Seguridad. Podemos simplemente continuar con la configuración predeterminada haciendo clic en 'Next".

Seguridad web Icinga

Paso 11: revisión de las opciones de configuración del módulo de supervisión

Esta etapa le informará sobre toda la parte de configuración del módulo de monitoreo que ha seleccionado. Puede simplemente confirmar la configuración y continuar para completar la configuración.

Revisión web de Icinga

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. Golpea el Login link para redirigir a la página de inicio de sesión de Icinga2.

Etapa final de Icinga Web

Inicie sesión en Icinga Web 2 con las credenciales configuradas durante el proceso de instalación y será dirigido al Panel de Icinga Web 2,

  Iniciar sesión Icinga Web

Nuestro nodo maestro se agrega de forma predeterminada 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.

  Tablero Icinga Web

Podemos agregar cualquier número de nodos a este sistema de monitoreo.

Terminando

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 este Documentación de Icinga. Espero que este artículo te sea de utilidad. Publique sus valiosos comentarios y sugerencias al respecto.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar