Este artículo detalla la implementación de una solución de monitoreo y visualización que integra herramientas de código abierto. La arquitectura propuesta utiliza Prometheus para la recolección de métricas, un exportador específico del sistema operativo para la exposición de datos y Grafana para la visualización y alertas. El objetivo final es tener un panel que muestre métricas clave, como el uso de CPU, y que pueda notificar por correo electrónico cuando se superen umbrales definidos.
Componentes del Sistema y Preparación del Entorno
La pila tecnológica se compone de tres elementos principales:
- Prometheus: El motor de base de datos de series temporales y el servidor que extrae (scrape) métricas de los objetivos configurados.
- Exportador de Datos del Nodo: Para sistemas Windows, utilizaremos
windows_exporter, un demonio que recopila métricas del host (CPU, disco, red, etc.) y las expone en un formato que Prometheus puede ingerir. - Grafana: La herramienta de visualización que se conecta a Prometheus como fuente de datos, permitiendo la creación de dashboards interactivos y la configuración de políticas de alertas.
Instalación y Configuración de Pormetheus
Prometheus actúa como el núcleo central. Se debe descargar la distribución apropiada para Windows desde su sitio oficial y descomprimirla.
El archivo de configuración principal es prometheus.yml. La sección scrape_configs define los objetivos de los cuales Promteheus extraerá métricas. A continuación se muestra un ejemplo de configuración que apunta tanto a la propia instancia de Prometheus como a un exportador de nodo que se ejecutará posteriormente:
# Archivo: prometheus.yml
global:
scrape_interval: 15s # Intervalo global de recolección.
scrape_configs:
# Tarea para recolectar métricas del propio Prometheus.
- job_name: 'prometheus_server'
static_configs:
- targets: ['localhost:9090']
# Tarea para recolectar métricas del host Windows.
- job_name: 'windows_node_metrics'
static_configs:
- targets: ['localhost:9182'] # Puerto predeterminado de windows_exporter
Para iniciar Prometheus, se ejecuta el archivo prometheus.exe desde su directorio de instalación. Su interfaz web estará disponible de forma predeterminada en http://localhost:9090.
Configuración del Exportador de Métricas para Windows
Para exponer métricas detalladas del sistema operativo Windows, se utiliza windows_exporter. Se puede obtener la última versión desde su repositorio en GitHub.
Una vez descargado el ejecutable (windows_exporter-*.exe), se puede iniciar directamente. Por defecto, expone un servidor HTTP en el puerto 9182 (http://localhost:9182), donde Prometheus, según la configuración anterior, extraerá las métricas.
Despliegue y Conexión de Grafana
Grafana proporcionará la capa de visualización. Se recomienda descargar el instalador o el archivo ZIP desde la página de descargas oficial. Tras la instalación, es crucial configurar el envío de correo electrónico para las alertas.
El archivo de configuración (generalmente conf/defaults.ini o una copia renombrada como grafana.ini) requiere una sección SMTP correcta:
# Fragmento de grafana.ini
[smtp]
enabled = true
host = smtp.servidor_correo.com:465
user = direccion_correo@ejemplo.com
password = contrasena_aplicacion_o_codigo_especial
from_address = direccion_correo@ejemplo.com
from_name = Grafana Alerts
starttls_policy = mandatory
Es fundamental recordar que la contraseña para el servicio SMTP suele ser una contraseña específica para aplicaciones, no la contraseña principal del buzón de correo.
Grafana se inicia típicamente con un comando como grafana-server web y su interfaz está disponible en http://localhost:3000 con credenciales iniciales admin/admin.
Importación de Dashboards y Configuración de Alertas
En lugar de construir paneles desde cero, es eficiente importar dashboards predefinidos. En el portal oficial de Dashboards de Grafana, se pueden buscar plantillas como Windows Exporter Full. Tras obtener su ID o JSON, se importa desde el menú lateral de Grafana usando la opción Import.
Para configurar una alerta basada en el uso de CPU:
- Navegue a Alerting -> Alert rules y cree una nueva regla.
- Defina la consulta que recupera la métrica, por ejemplo:
100 - (avg by(instance) (rate(windows_cpu_time_total{mode="idle"}[5m])) * 100). - Establezca el umbral (por ejemplo, "IS ABOVE 85") y el período de evaluación.
- Asigne un canal de contacto previamente configurado en Alerting -> Contact points (el cual apunta a la dirección de correo configurada).
De esta manera, se construye un flujo completo: windows_exporter genera métricas, Prometheus las almacena, Grafana las visualiza y dispara alertas cuando las condiciones se cumplen, notificando por correo electrónico al equipo responsable.