GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo monitorear hosts con la herramienta de monitoreo Linux Icinga

El monitoreo es uno de los aspectos más críticos de la infraestructura, y la herramienta de monitoreo Icinga tiene una variedad de opciones para elegir. Icinga le permite monitorear de manera flexible toda su infraestructura en función de las configuraciones.

En este artículo, aprenderá cómo monitorear sus servidores con la pila de monitoreo Icinga2; instalará la pila y configurará el monitoreo distribuido.

¿Listo? ¡Salta directamente!

Requisitos

Este tutorial será una demostración práctica. Para seguir, asegúrese de tener lo siguiente:

  • Dos máquinas Linux:este tutorial utiliza el servidor Ubuntu 20.04 en ambas máquinas maestras (maestra ) y cliente (cliente01 ) servidores.
  • Un usuario con privilegios de raíz en ambos dispositivos.
  • MariaDB instalado y ejecutándose en el servidor maestro.

Configuración de FQDN en todos los servidores

Icinga2 es una solución de monitoreo lista para empresas que le permite monitorear infraestructuras de servidores y aplicaciones en muchas ubicaciones.

Configurará nombres de dominio completos (FQDN) para todos sus servidores, lo que facilita la administración de servidores en entornos grandes. El dominio en este tutorial se llama example.lan, pero puede usar un dominio local existente.

Tenga en cuenta que debe ejecutar los siguientes comandos en ambos servidores. Cambie los valores en consecuencia.

1. Abre tu terminal y conéctate al servidor.

2. Luego, ejecute cada comando a continuación para configurar el FQDN en las máquinas maestra y cliente. FQDN para los servidores son master.example.lan (maestro ) y client01.example.lan (cliente01 ).

# Set FQDN on master server
sudo hostnamectl set-hostname master.example.lan

# Set FQDN on client01 server
sudo hostnamectl set-hostname client01.example.lan

3. Edite el /etc/hosts archivo con su editor de texto preferido y complete la entrada a continuación. Reemplace las direcciones IP con las direcciones reales del servidor.

# /etc/hosts for master
172.16.1.10   master.example.lan   master

# /etc/hosts for client01
172.16.1.30   client01.example.lan   client01

4. Finalmente, ejecute el siguiente comando para verificar el FQDN.

hostname --fqdn

Instalación de Icinga2 y complementos de monitoreo

Con el FQDN configurado, es hora de instalar Icinga2. Instalará los paquetes apt tanto para icinga2 como para los complementos de monitoreo. Estos paquetes son el componente principal de Icinga2 y el complemento que proporciona scripts para monitorear el sistema.

La instalación de Icinga2 y los complementos de monitoreo debe realizarse en los servidores master y client01.

1. Ejecute el siguiente apt install comando para instalar dependencias de paquetes de forma segura a través de HTTPS (apt-transport-https ) y verifique la clave GPG.

sudo apt install -y apt-transport-https wget gnupg

2. A continuación, ejecute el wget comando para descargar la clave GPG de Icinga2. El canal apt-key El comando agrega la clave GPG para verificar la integridad de los paquetes Icinga2.

wget -O - https://packages.icinga.com/icinga.key | apt-key add -

3. Ejecute cada comando a continuación para agregar el repositorio apt Icinga2 en su máquina.

# Adding repository for icinga2
. /etc/os-release; if [ ! -z ${UBUNTU_CODENAME+x} ]; then DIST="${UBUNTU_CODENAME}"; else DIST="$(lsb_release -c| awk '{print $2}')"; fi; \
echo "deb https://packages.icinga.com/ubuntu icinga-${DIST} main" > \
/etc/apt/sources.list.d/${DIST}-icinga.list
echo "deb-src https://packages.icinga.com/ubuntu icinga-${DIST} main" >> \
/etc/apt/sources.list.d/${DIST}-icinga.list

# Verify the Icinga2 apt repository is added
cat /etc/apt/sources.list.d/focal-icinga.list

4. Por último, ejecuta el apt comandos a continuación para actualizar el índice del paquete e instalar los paquetes.

# Refresh package index
sudo apt update

# Installing package
sudo apt install icinga2 monitoring-plugins -y

Instalación del controlador IDO MySQL en el servidor maestro

Icinga2 está instalado y casi listo para funcionar. Pero para que Icinga2 funcione correctamente, necesita una base de datos. Entonces, instalará el controlador IDO MySQL y configurará la conexión de la base de datos en su servidor maestro.

El repositorio Icinga2 proporciona el icinga2-ido-mysql paquete. El paquete es un controlador de base de datos que funciona para servidores MySQL y MariaDB.

1. Ejecute el siguiente comando para instalar el icinga2-ido-mysql paquete.

sudo apt install -y icinga2-ido-mysql

2. Seleccione  cuando se le solicite configurar el controlador y crear una base de datos, como se muestra a continuación. La configuración establece icinga2 como el usuario de la base de datos y genera un nuevo archivo, /etc/icinga2/features-disponible/ido-mysql.conf .

3. Ahora, seleccione para habilitar ido-mysql función en Icinga2, que crea automáticamente una nueva base de datos y un nuevo usuario para Icinga2.

4. Proporcione una contraseña para el usuario de MariaDB icinga2 y seleccione Aceptar. para completar la instalación de icinga2-ido-mysql.

5. A continuación, ejecute el cat Comando a continuación para verificar el contenido de /etc/icinga2/features-disponible/ido-mysql.conf expediente.

cat /etc/icinga2/features-available/ido-mysql.conf

Verá los detalles a continuación para la base de datos MariaDB que coincide con lo que proporcionó.

6. Ejecute el icinga2 comando a continuación a enable el ido-mysql rasgo.

sudo icinga2 feature enable ido-mysql

7. Por último, ejecute los siguientes comandos para reiniciar y verificar el icinga2 servicio status .

# restart service
sudo systemctl restart icinga2

# verifying service
sudo systemctl status icinga2

De manera similar, a continuación, verá que la función ido-mysql está habilitada y el servicio icinga2 está activo (en ejecución).

Configuración de la API de Icinga2

Acaba de instalar el controlador Icinga2 IDO MySQL y configuró la conexión de la base de datos. Pero para administrar y configurar la pila de monitoreo de Icinga2 a través de solicitudes HTTP, configurará la API de Icinga2.

La pila de monitoreo Icinga2 también es un sistema de monitoreo distribuido.

1. Ejecute el siguiente comando en su servidor maestro para habilitar la API de Icinga2, generar certificados TLS para Icinga2 y actualizar las configuraciones de Icinga2.

sudo icinga2 api setup

2. Ahora, edite /etc/icinga2/conf.d/api-users.conf archivo en su editor de texto y complete la siguiente configuración. Tome nota de las credenciales de usuario de la API que está proporcionando, ya que las necesitará más adelante.

Reemplace la contraseña por una apropiadamente fuerte según sea necesario.

/** api for icingaweb2 */
object ApiUser "icingaweb2" {
  password = "passwordapiicngaweb2"
  permissions = [ "status/query", "actions/*", "objects/modify/*", "objects/query/*" ]
}

3. Por último, ejecute el siguiente comando para restart el icinga2 servicio y aplicar la nueva configuración.

sudo systemctl restart icinga2

Instalación y configuración de icingaweb2 en el servidor maestro

Necesitará un tablero para monitorear mejor sus hosts después de habilitar la API de Icinga2 y configurar el nuevo usuario de la API. ¿Cómo? Instalará y configurará Icingaweb2 en el servidor maestro.

Icingaweb2 es el front-end web para la pila de monitoreo de Icinga2, escrito en PHP, y proporciona un panel de control receptivo y extensible.

1. Ejecute el siguiente comando para instalar Icingaweb2 con los componentes necesarios para manejar la aplicación web Icingaweb2.

sudo apt install icingaweb2 libapache2-mod-php icingacli -y

2. A continuación, ejecute el icingacli Comando a continuación para generar un token para configurar Icingaweb2. La instalación de Icingaweb2 necesitará este token más adelante, así que escríbalo.

sudo icingacli setup token create

3. Ejecute el mysql Comando a continuación para iniciar sesión en el shell de MySQL y crear un nuevo usuario (root ) para Icingaweb2.

mysql -u root -p

4. Ahora, ejecute las siguientes consultas para crear una nueva base de datos y el usuario icingaweb2 con una contraseña Puede configurar el nombre de usuario y la contraseña como prefiera.

CREATE DATABASE icingaweb2;
GRANT ALL ON icingaweb2.* TO [email protected] IDENTIFIED BY 'strongpasswordicingaweb2';
FLUSH PRIVILEGES;

5. Por último, ejecuta exit para cerrar sesión en el shell de MySQL.

exit

Configuración de la instalación de Icingaweb2

Ha instalado Icingaweb2 en el servidor maestro y ha generado el token de configuración para un nuevo usuario. Pero para acceder al panel de icingaweb2, configurará su instalación de icingaweb2 a través de su navegador web.

1. Abra su navegador web y navegue hasta la dirección IP del servidor maestro, seguida de la ruta URL /icingaweb2/setup (es decir, http://172.16.1.10/icingaweb2/setup) .

2. Luego, ingrese el token de configuración de Icingaweb2 que generó en la sección "Instalación y configuración de icingaweb2 en el servidor maestro" (paso dos) y haga clic en Siguiente .

3. Acepte los valores predeterminados (Supervisión ) en los Módulos página y haga clic en Siguiente .

4. Seleccione Base de datos en el Tipo de autenticación cuadro desplegable y haga clic en Siguiente . Este tipo de autenticación protege el panel de administración de Icingaweb2.

En este punto, Icingaweb2 comienza a verificar los requisitos del sistema para la instalación.

5. Asegúrese de que todos los requisitos de estado estén en verde, excepto el de PostgreSQL, y haga clic en Siguiente. .

Ignore el mensaje de error de PostgreSQL. Está utilizando MariaDB como backend de la base de datos.

6. Ahora, proporcione los mismos valores que configuró en la sección "Instalación y configuración de icingaweb2 en el servidor maestro" (paso cuatro) al recurso de la base de datos formulario a continuación.

Haga clic en Validar configuración para asegurarse de que la configuración funcione, luego haga clic en Siguiente después de ver el mensaje La configuración se ha validado correctamente.

7. Deje el Backend de autenticación con el valor predeterminado (icingaweb2) como nombre de servidor y haga clic en Siguiente.

8. Proporcione las credenciales para la primera cuenta administrativa de Icingaweb2 y haga clic en Siguiente . Tome nota de las credenciales, ya que las necesitará para iniciar sesión en el panel de control de Icingaweb2 más adelante.

9. Deje los valores de registro predeterminados en Configuración de la aplicación para Icingaweb2 y haga clic en Siguiente .

10. A continuación, revise los ajustes de configuración y haga clic en Siguiente para confirmar la instalación de icingaweb2.

11. Ahora, haga clic en Siguiente para continuar configurando el módulo de monitoreo para Icingaweb2.

12. Proporcione el nombre de la base de datos y el usuario para Icinga2 según corresponda, como se muestra a continuación. Los detalles de la base de datos para Icinga2 están disponibles en /etc/icinga2/features-available/ido-mysql.conf archivo.

Haga clic en Validar configuración, asegúrese de que la conexión a la base de datos sea correcta y luego haga clic en Siguiente.

13. Introduzca el usuario y la contraseña de la API de Icinga2 almacenados en /etc/icinga2/conf.d/api-users.conf archivo a los campos de abajo.

Haga clic en el botón Validar configuración, asegúrese de recibir el mensaje que dice La configuración se ha validado correctamente y haga clic en Siguiente.

14. Acepte las variables personalizadas predeterminadas en Monitoring Security configuración y haga clic en Siguiente . Estas variables ayudan a proteger su entorno de monitoreo de miradas indiscretas.

15. Inspeccione la configuración del módulo de monitoreo y haga clic en Finalizar para completar la instalación.

16. Cuando se complete la instalación de icingaweb2, verá el mensaje ¡Felicitaciones! Icinga Web 2 se ha configurado correctamente mensaje, como se muestra a continuación.

Haga clic en Iniciar sesión en Icinga Web 2 y su navegador lo redirigirá a la página de inicio de sesión de icingaweb2 (paso 17).

17. Ingrese su usuario administrador y contraseña para icingaweb2 y haga clic en Iniciar sesión para acceder al panel de control de Icinga.

18. Finalmente, haga clic en Resumen —> Servicios y verás el estado de tu maestro servidor similar al siguiente.

Inicializar el servidor maestro Icinga2

Ha instalado con éxito la pila de monitoreo Icinga2 para monitorear el estado de su servidor maestro. Ahora, inicializará el servidor maestro como el nodo maestro para la pila de monitoreo de Icinga2. El nodo maestro es el controlador principal de la pila de monitoreo distribuida Icinga2.

1. Ejecute el siguiente comando en la terminal de su servidor maestro para inicializar el icinga2 maestro node .

sudo icinga2 node wizard

2. Pulsa n para configurar el agente/nodo satélite (nodo maestro Icinga2).

3. Presione ENTER en el nombre común (CN) configuración. El Icinga2 detectará automáticamente el FQDN del servidor.

4. A continuación, especifique el nombre de la zona maestra como master.example.lan y presione N para omitir la adición de zonas globales. Las zonas globales predeterminadas sincronizan todos los objetos de configuración en icinga2.

5. Deje el host y el puerto de vinculación de API como predeterminados y presione ENTER. La API se comunicará entre el nodo Icinga2 con conexiones encriptadas TLS.

6. Escriba Y para deshabilitar toda la configuración dentro de /etc/icinga2/conf.d/ ya que utilizará la configuración de zonas Icinga2 que creará más adelante.

7. Ahora, ejecuta el systemctl Comando a continuación para reiniciar el servicio icinga2 y aplicar la configuración.

sudo systemctl restart icinga2

8. Por último, ejecute el siguiente comando para generar el ticket para registrar client01 con Icinga2.

sudo icinga2 pki ticket --cn 'client01.example.lan'

Copie el ticket generado que usará para inscribir al cliente01 como agente de Icinga2 más adelante.

Inicializar el agente Icinga2 en el servidor del cliente

Una vez que haya inicializado el servidor maestro como el nodo maestro, también configurará el agente Icinga2 en cliente01 para monitorear la máquina cliente01 usando Icinga2.

1. Inicie sesión en client01 y siga los pasos que realizó en la sección "Inicializar el servidor maestro Icinga2" (pasos uno a tres) para inicializar el agente Icinga2.

2. A continuación, especifique el punto final principal como master.example.lan e ingresa Y para establecer la conexión con el nodo padre/maestro.

3. Introduzca la dirección IP del servidor maestro (172.16.1.10 ), y deje el puerto de punto final como predeterminado.

4. Ahora, escriba N cuando se le pida que agregue más puntos finales.

5. Escriba Y para confirmar la información y agregar el certificado para el servidor maestro Icinga2.

6. Ingrese el ticket que generó en el último paso de la sección "Inicializar el servidor maestro de Icinga2" para registrar el nodo del agente (client01.example.lan).

7. Presione ENTER para aceptar los valores predeterminados para el host y el puerto de vinculación de API.

8. Luego, ingrese Y dos veces para aceptar la configuración y los comandos del nodo principal/maestro.

9. Presione ENTER para aceptar el valor predeterminado para el nombre de la zona local, pero ingrese el nombre de la zona principal, que debe coincidir con el nombre de la zona (master.example.lan ) en el servidor maestro.

10. Ahora, escriba N para omitir la adición de zonas globales y escriba Y para deshabilitar configuraciones en /etc/icinga2/conf.d directorio.

11. Por último, ejecute el siguiente comando para reiniciar el servicio Icinga2 y aplicar los cambios de configuración. sudo systemctl restart icinga2

sudo systemctl restart icinga2

Creación de configuración de zonas en el servidor maestro

Con el monitoreo distribuido fuera del camino, creará un nuevo directorio de zona y definirá la configuración de monitoreo para el agente del cliente.

1. Ejecute el mkdir comando a continuación para crear un nuevo directorio como zona predeterminada (master.example.lan ) en Icinga2.

sudo mkdir -p /etc/icinga2/zones.d/master.example.lan/

2. A continuación, cree un archivo de configuración (client01.example.lan.conf ) en /etc/icinga2/zones.d/master.example.lan/ directorio. Rellene el archivo con la siguiente configuración.

El siguiente código define los puntos finales, las zonas y el objeto host para monitorear los servidores.

// Endpoints
object Endpoint "client01.example.lan" {
}
// Zones
object Zone "client01.example.lan" {
    endpoints = [ "client01.example.lan" ]
    parent = "master.example.lan"
}
// Host Objects
object Host "client01.example.lan" {
    check_command = "hostalive"
    address = "172.16.1.30"
    vars.client_endpoint = name
}

3. Cree otro archivo de configuración, copie y pegue el siguiente código en el archivo y guárdelo como /etc/icinga2/zones.d/master.example.lan/services.conf.

Esta configuración a continuación supervisa algunos servicios básicos en la máquina cliente01 .

 // Ping
 apply Service "Ping" {
 check_command = "ping4"
 assign where host.address // check executed on master
 }
 // System Load
 apply Service "System Load" {
 check_command = "load"
 command_endpoint = host.vars.client_endpoint // Check executed on client01
 assign where host.vars.client_endpoint
 }
 // SSH Service
 apply Service "SSH Service" {
 check_command = "ssh"
 command_endpoint = host.vars.client_endpoint
 assign where host.vars.client_endpoint
 }
 // Icinga 2 Service
 apply Service "Icinga2 Service" {
 check_command = "icinga"
 command_endpoint = host.vars.client_endpoint
 assign where host.vars.client_endpoint
 }

4. Ahora ejecuta el icinga2 Comando a continuación para verificar la configuración de Icinga2.

sudo icinga2 daemon -C

Si todo va bien, verá un resultado similar al siguiente.

5. Por último, ejecute el siguiente comando para reiniciar el servicio Icinga2 y aplicar los cambios de configuración.

sudo systemctl restart icinga2

Verificación en el panel de control de Icinga2

Ha configurado todos los recursos, pero aún necesita probar si todos funcionan. Verificará los resultados de su trabajo consultando el panel de control de Icinga2.

Vuelva al panel de control de Icinga2 y haga clic en Descripción general. —> Anfitriones , como se muestra a continuación, y verá que client01 está ARRIBA .

Ahora, haga clic en Servicios menú para ver todos los servicios monitoreados con la pila de monitoreo Icinga2 en client01.

Conclusión

Este tutorial tuvo como objetivo ayudarlo a través del proceso de configuración de la pila de monitoreo Icinga2 en el servidor Ubuntu. También aprendió cómo configurar el Monitoreo Distribuido usando un agente Icinga2 para monitorear una infraestructura extensa.

Ahora, ¿qué sigue? ¿Quizás aprender a configurar Icinga Director para simplificar su monitoreo?


Linux
  1. Supervise su servidor Linux con Checkmk

  2. Monitoreo de hosts Linux y Windows con Glances

  3. 3 cosas útiles que puedes hacer con la herramienta IP en Linux

  4. Cómo monitorear la seguridad del servidor Linux con Osquery

  5. Monitoreo del nivel del micrófono con una herramienta de línea de comandos en Linux

Cómo monitorear rápidamente múltiples hosts en Linux

Cómo monitorear sus servidores Linux con Checkmk

Cómo encontrar archivos con el comando fd en Linux

Cómo instalar la herramienta de monitoreo del sistema Gtop en Linux

Cómo monitorear sus servidores Linux con Checkmk

Cómo instalar la herramienta de monitoreo Icinga 2 en Rocky Linux 8