Cómo configurar Icinga2 para monitorear nodos en un centro de datos
Icinga2 es una excelente herramienta de código abierto para monitorear todos los servidores de su centro de datos. Con esta herramienta, puede capacitar a su personal de IT para manejar problemas antes de que se conviertan en algo mucho más grande. Aunque Icinga2 facilita significativamente esta tarea, el método simple de configurar un nodo en el archivo hosts.conf no es tan seguro como desearía.
Con un poco de trabajo adicional, Icinga2 puede monitorear los parámetros de salud internos de un nodo de centro de datos (como la carga de la CPU, el espacio en disco, la memoria y el número de procesos en ejecución) a través de una configuración de canal seguro maestro/cliente.
A continuación, configuraré una instalación maestra y cliente de Icinga2. Utilizaré Ubuntu Server para ambas instancias y asumiré que ya tiene Icinga2 en funcionamiento en el maestro. (Consulte: Cómo instalar la herramienta de monitoreo Icinga2 en Ubuntu Server 16.04 y Cómo agregar hosts remotos al sistema de monitoreo Icinga2).
Configurando el maestro
Lo primero que debe hacer es configurar el maestro. Mi maestro tiene la dirección IP 192.168.1.193. Es importante conocer el nombre completo del host tanto del maestro como del cliente. El nombre del host de mi maestro es ubuntu16.04 (use el comando less /etc/hosts para encontrar el suyo). El nombre del host de mi cliente de prueba es localhost.localdomain. Como esto es solo para fines de prueba, está bien usar localhost.localdomain. Sin embargo, no use esto para sus servidores.
Aunque ya tiene Icinga2 en funcionamiento, aún debe ejecutar la configuración para que sea un maestro para un agente. Afortunadamente, esto es bastante sencillo. Inicie sesión en su servidor de Icinga2 y ejecute el siguiente comando:
sudo icinga2 node wizard
Se le harán algunas preguntas sencillas (las respuestas están en mayúsculas):
Por favor, especifique si esto es una configuración de satélite ('n' instala una configuración de maestro) [Y/n]: N
Por favor, especifique el nombre común (CN) [icinga]: NOMBRE_DE_HOST_DEL_SERVIDOR
Por favor, especifique el host/puerto de enlace de la API (opcional): DEJE EN BLANCO
Enlace de host []: DEJE EN BLANCO
Puerto de enlace []: DEJE EN BLANCO
Cuando se complete lo anterior, reinicie el servicio de Icinga2 con el siguiente comando:
sudo systemctl restart icinga2
Ahora tenemos que generar un ticket de cliente para su nodo. Ejecute el siguiente comando:
icinga2 pki ticket --cn 'NOMBRE_DEL_NODO'
Donde NOMBRE_DEL_NODO es el nombre completo del host de su cliente (en mi caso, localhost.localdomain). Es importante que lo escriba correctamente, de lo contrario, el cliente de Icinga2 no podrá conectarse al maestro. Copie la cadena generada.
Configurando el cliente
Muévase al cliente al que desea conectarse al maestro. Si Icinga2 no está instalado en este servidor, hágalo con el siguiente comando:
sudo apt-get install icinga2 -y
Una vez instalado, ejecute el asistente de nodos con el siguiente comando:
sudo icinga2 node wizard
Responda las preguntas de la siguiente manera:
Los 8 pasos para solucionar problemas de red y sistemasPor favor, especifique si esto es una configuración de satélite ('n' instala una configuración de maestro) [Y/n]: Y
Por favor, especifique el nombre común (CN) [localhost.localdomain]: DEJE EN BLANCO
Nombre Común de Maestro (CN de su configuración maestra): NOMBRE_DEL_MAESTRO
¿Desea establecer una conexión con el nodo principal? Desde este nodo [Y/n]: y
Host del punto final principal (Dirección IP o FQDN de su maestro): IP_DEL_MAESTRO
Puerto del punto final principal [5665]: DEJE EN BLANCO ¿Agregar más puntos finales maestros? [y/N]: n
Por favor, especifique la conexión maestra para la firma automática de CSR (maestro por defecto): DEJE EN BLANCO
Host [10.25.32.120]: DEJE EN BLANCO
Puerto [5665]: DEJE EN BLANCO
Donde:
- NOMBRE_DEL_MAESTRO es el nombre completo del servidor maestro.
- IP_DEL_MAESTRO es la dirección IP del maestro.
- DEJE EN BLANCO significa simplemente presionar Enter en su teclado.
Luego se le preguntará si la información es correcta. Escriba "y" y presione Enter en su teclado. A continuación, se le pedirá que pegue la clave PKI de su servidor (Figura A). Haga esto y presione Enter en su teclado.
Finalmente, se le harán otra serie de preguntas breves:
Por favor, especifique el host/puerto de enlace de la API (opcional): DEJE EN BLANCO
Enlace de Host []: DEJE EN BLANCO
Puerto de enlace []: DEJE EN BLANCO
¿Aceptar la configuración del maestro? [y/N]: y
¿Aceptar comandos del maestro? [y/N]: y
Una vez que haya respondido lo anterior, reinicie el daemon de Icinga2 en el nodo con el siguiente comando:
Diferencias entre redes cliente/servidor y peer-to-peersudo systemctl restart icinga2
Crear los archivos de configuración
A continuación, debemos crear un nuevo directorio para albergar un par de archivos de configuración. Ejecute el siguiente comando:
sudo mkdir /etc/icinga2/zones.d/NOMBRE_DEL_NODO
Donde NOMBRE_DEL_NODO es el nombre de su nodo (para mi ejemplo, localhost.localdomain).
A continuación, cree los dos archivos de configuración con los siguientes comandos:
sudo touch /etc/icinga2/zones.d/NOMBRE_DEL_NODO/NOMBRE_DEL_NODO.conf
sudo touch /etc/icinga2/zones.d/NOMBRE_DEL_NODO/services.conf
Donde NOMBRE_DEL_NODO es el nombre de su nodo (para mi ejemplo, localhost.localdomain).
En el archivo NOMBRE_DEL_NODO.conf, pegue lo siguiente:
object Zone "NOMBRE_DEL_NODO" {
endpoints = [ "NOMBRE_DEL_NODO" ]
parent = "NODO_SERVIDOR"
}
object Endpoint "NOMBRE_DEL_NODO" {
host = "IP_DEL_NODO"
}
object Host "NOMBRE_DEL_NODO" {
import "generic-host"
address = "IP_DEL_NODO"
vars.http_vhosts["http"] = {
http_uri = "/"
}
vars.notification["mail"] = {
groups = [ "icingaadmins" ]
}
vars.client_endpoint = name
}
Donde NOMBRE_DEL_NODO es el nombre del nodo, NODO_SERVIDOR es el nombre del maestro de Icinga2 y IP_DEL_NODO es la dirección IP del nodo. Guarde y cierre ese archivo.
Técnicas para mejorar la seguridad en redes peer-to-peerA continuación, en el archivo services.conf, pegue lo siguiente:
apply Service "carga" {
import "generic-service"
check_command = "carga"
command_endpoint = host.vars.client_endpoint
assign where host.vars.client_endpoint
}
apply Service "procs" {
import "generic-service"
check_command = "procs"
command_endpoint = host.vars.client_endpoint
assign where host.vars.client_endpoint
}
Guarde y cierre ese archivo.
Una vez que haya terminado con eso, reinicie Icinga2 con el siguiente comando:
sudo systemctl restart icinga2
Después de un momento, el nuevo agente aparecerá y Icinga2 comenzará a monitorearlo con algo más que una prueba de ping, utilizando un método de conexión más seguro que la configuración estándar de hosts.conf.
Si el nodo no aparece, consulte nuevamente Cómo agregar hosts remotos al sistema de monitoreo Icinga2.
En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Redes, allí encontraras muchos artículos similares a Cómo configurar Icinga2 para monitorear nodos en un centro de datos , tenemos lo ultimo en tecnología 2023.
Artículos Relacionados