@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 SGUENOS EN TWITTER O INVITANOS A UN CAFE?

El Blog de Negu

Acerca de Raul Unzue Pulido

Administrador de sistemas virtuales e infraestructuras IT, linuxero y entusiasta de la tecnología.

Compruebe también

curso-ansible-generar-ficheros-yaml-0

Curso Ansible: Generar ficheros YAML

Curso Ansible: Generar ficheros YAML Seguimos ampliando el curso de Ansible… Hoy vamos a mostraros …

Deja una respuesta

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

dieciocho − 9 =

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies
Blog Maquinas Virtuales - El Blog de Negu