SENTINEL Tecnologia
Observabilidade21 de março de 202612 min

Grafana + Prometheus: setup completo para produção em 2026

Tutorial completo para implementar Grafana e Prometheus em produção. Docker Compose, alertas, dashboards, Loki para logs e Tempo para traces.

GrafanaPrometheusLokiTempoObservabilidadeMonitoramento

Grafana e Prometheus são o par mais popular de observabilidade open-source no mercado. Juntos, oferecem métricas, alertas e dashboards de nível enterprise — sem custo de licenciamento.

Este guia entrega um setup production-ready que você pode implementar hoje.

Arquitetura do stack completo

```

┌──────────────┐ ┌──────────────┐ ┌──────────────┐

│ Aplicações │────▶│ Prometheus │────▶│ Grafana │

│ + Exporters │ │ (Métricas) │ │ (Dashboards) │

└──────────────┘ └──────────────┘ └──────────────┘

│ ▲

│ ┌──────────────┐ │

└─────────────▶│ Loki │────────────┘

│ │ (Logs) │

│ └──────────────┘

│ ┌──────────────┐

└─────────────▶│ Tempo │────────────┘

│ (Traces) │

└──────────────┘

```

Setup com Docker Compose

```yaml

# docker-compose.yml

version: "3.9"

services:

prometheus:

image: prom/prometheus:v2.50.0

container_name: prometheus

restart: unless-stopped

ports:

  • "9090:9090"
  • volumes:

  • ./config/prometheus.yml:/etc/prometheus/prometheus.yml
  • ./config/alerts.yml:/etc/prometheus/alerts.yml
  • prometheus-data:/prometheus
  • command:

  • '--config.file=/etc/prometheus/prometheus.yml'
  • '--storage.tsdb.retention.time=30d'
  • '--web.enable-lifecycle'
  • grafana:

    image: grafana/grafana:10.4.0

    container_name: grafana

    restart: unless-stopped

    ports:

  • "3000:3000"
  • environment:

    GF_SECURITY_ADMIN_PASSWORD: "change-me-in-production"

    GF_INSTALL_PLUGINS: grafana-clock-panel,grafana-piechart-panel

    volumes:

  • grafana-data:/var/lib/grafana
  • ./config/grafana/provisioning:/etc/grafana/provisioning
  • loki:

    image: grafana/loki:2.9.0

    container_name: loki

    restart: unless-stopped

    ports:

  • "3100:3100"
  • volumes:

  • ./config/loki.yml:/etc/loki/local-config.yaml
  • loki-data:/loki
  • alertmanager:

    image: prom/alertmanager:v0.27.0

    container_name: alertmanager

    restart: unless-stopped

    ports:

  • "9093:9093"
  • volumes:

  • ./config/alertmanager.yml:/etc/alertmanager/alertmanager.yml
  • node-exporter:

    image: prom/node-exporter:v1.7.0

    container_name: node-exporter

    restart: unless-stopped

    ports:

  • "9100:9100"
  • command:

  • '--path.rootfs=/host'
  • volumes:

  • '/:/host:ro,rslave'
  • volumes:

    prometheus-data:

    grafana-data:

    loki-data:

    ```

    Configuração do Prometheus

    ```yaml

    # config/prometheus.yml

    global:

    scrape_interval: 15s

    evaluation_interval: 15s

    rule_files:

  • "alerts.yml"
  • alerting:

    alertmanagers:

  • static_configs:
  • targets: ["alertmanager:9093"]
  • scrape_configs:

  • job_name: "prometheus"
  • static_configs:

  • targets: ["localhost:9090"]
  • job_name: "node-exporter"
  • static_configs:

  • targets: ["node-exporter:9100"]
  • job_name: "application"
  • metrics_path: "/metrics"

    static_configs:

  • targets: ["app:8080"]
  • ```

    Alertas essenciais

    ```yaml

    # config/alerts.yml

    groups:

  • name: infrastructure
  • rules:

  • alert: HighCPUUsage
  • expr: 100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 85

    for: 5m

    labels:

    severity: warning

    annotations:

    summary: "CPU acima de 85% por 5 minutos"

  • alert: DiskSpaceLow
  • expr: (node_filesystem_avail_bytes / node_filesystem_size_bytes) * 100 < 15

    for: 10m

    labels:

    severity: critical

    annotations:

    summary: "Disco com menos de 15% livre"

  • alert: HighMemoryUsage
  • expr: (1 - node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes) * 100 > 90

    for: 5m

    labels:

    severity: critical

    annotations:

    summary: "Memória acima de 90%"

    ```

    Dashboards recomendados

    Importe estes dashboards do Grafana.com:

  • Node Exporter Full (ID: 1860) — métricas de servidor
  • Docker Container (ID: 893) — métricas de containers
  • Kubernetes Cluster (ID: 6417) — se usar K8s
  • Loki Logs (ID: 13639) — visualização de logs
  • Boas práticas para produção

    1. Retenção: 30 dias no Prometheus, long-term no Mimir ou Thanos

    2. Alta disponibilidade: 2 instâncias Prometheus com dedup no Grafana

    3. Segurança: Grafana atrás de reverse proxy com TLS + autenticação OIDC

    4. Backup: snapshots do volume Prometheus e Grafana database

    5. Recording rules: pré-calcular queries pesadas para dashboards mais rápidos

    Próximos passos

    Agende uma call gratuita e nossa equipe implementa o stack de observabilidade completo no seu ambiente. [Fale com um especialista →](/contato)

    Observabilidade open-source com Grafana e Prometheus entrega o mesmo nível de visibilidade que soluções pagas — com controle total sobre seus dados.

    Precisa de ajuda com Observabilidade?

    Consultoria especializada com resultados mensuraveis. Fale com um especialista sem compromisso.

    Artigos relacionados

    Receba insights de TI no seu email

    Artigos praticos sobre Cloud, FinOps, IA e estrategia de TI. Sem spam.

    Ganhe o guia "Checklist de Otimizacao Cloud" ao se inscrever

    Cancele a qualquer momento.