menu

Misión: Monitorización de Servidores Web con Contenedores Docker

Contexto

La empresa Terraformadores de Venus ha recibido una nueva solicitud por parte de una compañía especializada en comercio electrónico, EcomTech Solutions. Esta empresa gestiona múltiples servidores web y necesita una solución de monitorización eficiente para garantizar el rendimiento óptimo de su infraestructura. Su principal preocupación es la detección temprana de fallos y la optimización de recursos, evitando tiempos de inactividad que podrían afectar a sus clientes.

Nuestra tarea consiste en implementar una solución basada en Prometheus, Grafana y cAdvisor para recopilar métricas en tiempo real y visualizar el estado de los contenedores Docker en los que se ejecutan sus aplicaciones web.

Crearemos en la fase de desarrollo para probar el sistema una instancia en AWS sobre la que desplegaremos varios contenedores apache o nginx y desplegaremos la siguiente arquitectura.

esquema fuente: https://nontster.medium.com/line-notify-gateway-2-f117c20c6f62


Objetivos

  1. Implementar un entorno de monitorización para servidores web con múltiples contenedores Docker.
  2. Configurar Prometheus para recopilar métricas de los contenedores.
  3. Configurar cAdvisor y Node Exporter para obtener datos detallados sobre uso de CPU, memoria y almacenamiento.
  4. Integrar Grafana para visualizar la información de manera intuitiva y generar paneles de control útiles.

Requisitos Técnicos

Para llevar a cabo esta implementación, utilizaremos las siguientes tecnologías:

  • Docker: Para gestionar los servicios y contenedores web.
  • Prometheus: Para recopilar y almacenar métricas.
  • cAdvisor: Para obtener datos en tiempo real sobre los contenedores Docker.
  • Node Exporter: Para monitorear recursos del sistema host.
  • Grafana: Para visualizar las métricas en paneles interactivos.

Pasos de Implementación

  1. Crear el servidor y desplegar la web de la empresa, junto con múltiples contenedores Docker que representen los distintos servicios web ofrecidos.

  2. Configurar el archivo docker-compose.yml para desplegar los siguientes servicios:
    • Un servidor web en contenedores Docker.
    • Node Exporter: Se instala en el servidor para recolectar métricas del sistema operativo (como uso de CPU, memoria, disco, etc.).
    • cAdvisor: Se instala como un contenedor Docker y se encarga de recolectar métricas de todos los demás contenedores que están corriendo en el servidor.
    • Prometheus: Se configura para que recolecte las métricas de Node Exporter y cAdvisor, y las almacene en una base de datos.
    • Grafana: Se configura para conectarse a Prometheus y mostrar las métricas en gráficos y dashboards personalizados.
  3. Desplegar los contenedores con el siguiente comando:
    docker compose up -d
    

Ampliación. Alertas.

Configurar un bot en telegram para gestionar la alarmas producidas en el sistema. —

AYUDA https://www.webhi.com/how-to/docker-monitoring-using-prometheus-cadvisor-node-exporter-grafana/