@media screen and (min-width: 580px) { .flotantewhatsapp{ display:none; } }

Compartir por WhatsApp

implementar-soc-monitorizacion-completa-con-prometheus-alertmanager-grafana-y-loki-bajo-contenedores-3

Implementar SOC: Monitorización Completa con Prometheus, AlertManager, Grafana y Loki bajo Contenedores

Implementar SOC: Monitorización Completa con Prometheus, AlertManager, Grafana y Loki bajo Contenedores

Seguimos implementando nuestro SOC bajo OpenSource. Hoy le toca a la monitorización…

El stack de monitorización que voy a usar estará formado por Prometheus, AlertManager, Grafana y Loki proporciona una solución integral para observar, alertar y analizar el rendimiento y la salud de tus sistemas y aplicaciones. En esta entrada del blog, te explicaremos cómo configurar estas herramientas utilizando contenedores Docker y cómo cada componente contribuye a la gestión de tu infraestructura IT.

1. ¿Qué es Prometheus?

Prometheus es una plataforma de monitoreo y alerta diseñada originalmente por SoundCloud. Está orientada a recolectar métricas numéricas en series temporales a través de consultas en su propio lenguaje (PromQL). Prometheus se destaca por su modelo de datos flexible, su capacidad para manejar altos volúmenes de datos y su integración nativa con Kubernetes.

Funcionalidades Clave de Prometheus:

  • Recolección de métricas: Mediante scrapers que se configuran para recolectar datos de aplicaciones y servicios.
  • Almacenamiento de series temporales: Utiliza su propia base de datos de series temporales.
  • PromQL: Un potente lenguaje de consulta para análisis de métricas.
  • Alertas: Configuración de reglas para detectar condiciones específicas y activar alertas.

2. ¿Qué es AlertManager?

AlertManager es el componente de Prometheus encargado de gestionar las alertas generadas por Prometheus. Su principal función es agrupar, enrutarlas y enviar notificaciones a diferentes canales (email, Slack, PagerDuty, etc.).

Funcionalidades Clave de AlertManager:

  • Agrupación: Agrupa alertas similares para reducir el ruido.
  • Inhibición: Previene alertas redundantes.
  • Enrutamiento: Configura reglas para enviar alertas a diferentes destinatarios según su gravedad o tipo.
  • Silencios: Permite silenciar alertas durante mantenimientos planificados.

3. ¿Qué es Grafana?

Grafana es una plataforma de análisis y monitoreo que permite crear paneles visuales interactivos. Soporta múltiples fuentes de datos, incluyendo Prometheus y Loki, y ofrece una interfaz amigable para explorar métricas y logs.

Funcionalidades Clave de Grafana:

  • Dashboards personalizables: Creación de paneles visuales con gráficos y alertas.
  • Alertas integradas: Configuración de alertas directamente desde los paneles.
  • Plugins: Soporte para una amplia gama de plugins y fuentes de datos.
  • Compartir y colaborar: Posibilidad de compartir dashboards y colaborar en su creación.

4. ¿Qué es Loki?

Loki es un sistema de recolección y consulta de logs diseñado por Grafana Labs. A diferencia de otras soluciones de logging, Loki no indexa el contenido completo de los logs, sino que indexa los labels (etiquetas), haciendo que sea más ligero y eficiente.

Funcionalidades Clave de Loki:

  • Recolección de logs: Integra con Promtail, Fluentd, Logstash y otros agentes de logs.
  • Consulta de logs: Utiliza el lenguaje de consultas LogQL similar a PromQL.
  • Almacenamiento eficiente: Bajo consumo de recursos gracias a la indexación de etiquetas.

Requisitos máquina virtual para Stack de Monitorización bajo Docker

Para implementar este laboratorio, lo vamos a hacer bajo Proxmox como suele ser habitual. Crearé un container LXC con las siguientes características:

  • Debian 12
  • 4GB de RAM
  • 2 vCPU
  • 20GB de disco mínimo
  • Docker instalado. En la parte inferior tenéis la entrada como se hace. Acordaros que la máquina virtual tiene que tener parámetros adicionales a los normales para que pueda virtualizar contenedores:
implementar-soc-monitorizacion-completa-con-prometheus-alertmanager-grafana-y-loki-bajo-contenedores-1

Os dejo el consumo en cada caso:

1. Memoria RAM

  • Total: Al menos 4 GB de RAM.
    • Prometheus: ~1 GB
    • AlertManager: ~256 MB
    • Grafana: ~512 MB
    • Loki: ~1 GB
    • Sistema Operativo y Otros Servicios: ~1.5 GB

2. CPU

  • Total: Al menos 2 vCPUs.
    • Prometheus: 1 vCPU
    • AlertManager: 0.5 vCPU
    • Grafana: 0.5 vCPU
    • Loki: 1 vCPU

3. Almacenamiento

  • Total: Al menos 20 GB de disco.
    • Prometheus: ~5 GB (puede variar según la cantidad de datos recolectados)
    • AlertManager: ~1 GB
    • Grafana: ~2 GB
    • Loki: ~10 GB (puede variar según la cantidad de logs almacenados)
    • Sistema Operativo y Otros Servicios: ~2 GB

Configuración del Stack de Monitorización

Para configurar Prometheus, AlertManager, Grafana y Loki bajo contenedores Docker, sigue los pasos detallados a continuación:

Paso 1: Preparación del Entorno

Asegúrate de tener Docker y Docker Compose instalados. Puedes verificar su instalación ejecutando los siguientes comandos:

Paso 2: Estructura del Proyecto

Crea un directorio para tu proyecto y navega dentro de él:

Dentro del directorio del proyecto, crea los siguientes subdirectorios y archivos:

Comprobamos con tree:

Paso 3: Configuración de Prometheus

Edita el archivo prometheus/prometheus.yml:

Paso 4: Configuración de AlertManager

Edita el archivo alertmanager/config.yml:

Para esto suelo usar una cuenta de gmail para apps que os mostré en esta entrada. Podéis validar la configuración cuando esté montado AlertManager de la siguiente forma:

Paso 5: Configuración de Grafana

Edita el archivo grafana/provisioning/datasources/datasources.yml:

Edita el archivo grafana/provisioning/dashboards/dashboards.yml:

Paso 6: Configuración de Loki

Edita el archivo loki/loki-config.yml:

Paso 7: Configuración de Docker Compose

Edita el archivo docker-compose.yml:

Paso 8: Levantar el Stack de Monitoreo

Ejecuta el siguiente comando para levantar todos los contenedores:

Paso 9: Acceso a los Servicios

implementar-soc-monitorizacion-completa-con-prometheus-alertmanager-grafana-y-loki-bajo-contenedores-3

implementar-soc-monitorizacion-completa-con-prometheus-alertmanager-grafana-y-loki-bajo-contenedores-4

implementar-soc-monitorizacion-completa-con-prometheus-alertmanager-grafana-y-loki-bajo-contenedores-5

Paso 10: Configuración Adicional en Grafana

Inicia sesión en Grafana (usuario y contraseña por defecto: admin/admin) y verifica que las fuentes de datos (Prometheus y Loki) estén correctamente configuradas.

Si queréis parar los contenedores:

ENTRADAS RELACIONADAS CREACION SOC OPENSOURCE

¿Te ha gustado la entrada SÍGUENOS EN TWITTER O INVITANOS A UN CAFE?

El Blog de Negu

Acerca de Raul Unzue Pulido

Blogger en “Máquinas Virtuales - El Blog de Negu” | Senior Security Manager (PMP, ITIL) | ProjectManager, SysAdmin & DevOps Enthusiast | Especialista en Virtualización y Sistemas Operativos | VMware vExpert ⭐️ x12

Compruebe también

powershell-script-para-forzar-intro-continuo-en-notepad-1

Powershell: Script para forzar Intro continuo en Notepad++

Powershell: Script para forzar Intro continuo en Notepad++ El otro día vi un video bastante …

Deja una respuesta

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

seis + 11 =

Blog Maquinas Virtuales - El Blog de Negu