terça-feira, 17 de fevereiro de 2026

Devops - Monitorização usando Prometheus e Grafana


 Monitorização usando Prometheus e Grafana

 

Guião completo para fazer a monitorização de um projecto Docker com Prometheus e Grafana 🚀**


🎯 Objetivo

Monitorizar:

  • Contentores Docker
  • Consumo de CPU e memória
  • Estado dos serviços
  • Métricas de uma aplicação

Tudo usando Docker Compose.


📦 Arquitectura Final

Docker Containers

       

   cAdvisor (métricas Docker)

       

    Prometheus (recolha)

       

      Grafana (visualização)


✅ Pré-requisitos

Instalado:

  • Docker
  • Docker Compose

Verificar:

docker --version

docker compose version


📁 1️⃣ Criar Estrutura do Projecto

mkdir monitorizacao-docker

cd monitorizacao-docker

Criar os ficheiros:

monitorizacao-docker/

 ├── docker-compose.yml

 └── prometheus.yml


⚙️ 2️⃣ Configurar o Prometheus

Criar o ficheiro prometheus.yml

global:

  scrape_interval: 5s

 

scrape_configs:

  - job_name: "prometheus"

    static_configs:

      - targets: ["prometheus:9090"]

 

  - job_name: "cadvisor"

    static_configs:

      - targets: ["cadvisor:8080"]

Aqui estamos a dizer ao Prometheus para recolher métricas do:

  • Próprio Prometheus
  • cAdvisor (monitorização Docker)

🐳 3️⃣ Criar o docker-compose.yml

version: "3.8"

 

services:

 

  prometheus:

    image: prom/prometheus

    container_name: prometheus

    volumes:

      - ./prometheus.yml:/etc/prometheus/prometheus.yml

    ports:

      - "9090:9090"

    depends_on:

      - cadvisor

 

  grafana:

    image: grafana/grafana

    container_name: grafana

    ports:

      - "3000:3000"

    environment:

      - GF_SECURITY_ADMIN_PASSWORD=admin

    depends_on:

      - prometheus

 

  cadvisor:

    image: gcr.io/cadvisor/cadvisor:latest

    container_name: cadvisor

    ports:

      - "8080:8080"

    volumes:

      - /:/rootfs:ro

      - /var/run:/var/run:ro

      - /sys:/sys:ro

      - /var/lib/docker/:/var/lib/docker:ro


▶️ 4️⃣ Iniciar o Ambiente

docker compose up -d

Verificar:

docker ps


🌐 5️⃣ Aceder aos Serviços

🔎 Prometheus

http://localhost:9090

📊 Grafana

http://localhost:3000

Login:

  • Utilizador: admin
  • Palavra-passe: admin

🐳 cAdvisor

http://localhost:8080


🔗 6️⃣ Ligar o Grafana ao Prometheus

No Grafana:

1.    ⚙️ Settings

2.    Data Sources

3.    Add Data Source

4.    Escolher Prometheus

5.    URL:

http://prometheus:9090

6.    Guardar e testar.


📊 7️⃣ Importar Dashboard de Docker

No Grafana:

1.    Clique em +

2.    Import

3.    Introduzir ID de dashboard:

193

(Um dos dashboards mais utilizados para Docker)

Selecionar a fonte de dados Prometheus e importar.


📈 Métricas Importantes

Algumas queries úteis:

Uso de CPU:

rate(container_cpu_usage_seconds_total[1m])

Uso de memória:

container_memory_usage_bytes

Contentores activos:

up


🔐 Melhorias para Produção

Para ambiente real, recomenda-se:

  • Alterar password do Grafana
  • Criar volumes persistentes
  • Activar autenticação
  • Colocar reverse proxy (Nginx)
  • Activar HTTPS

🧠 O que está a acontecer por trás?

  • O cAdvisor recolhe métricas dos contentores Docker
  • O Prometheus consulta essas métricas periodicamente
  • O Grafana transforma os dados em gráficos interactivos

🎯 Resultado Final

Fica com um sistema completo de observabilidade para:

  • Monitorizar projectos Docker
  • Identificar picos de CPU/memória
  • Detectar falhas de serviços
  • Visualizar métricas em tempo real

 


Nenhum comentário:

Postar um comentário