Log Management com OpenSearch e Grafana Loki: Centralização e Análise
O Problema dos Logs Distribuídos
Em ambientes cloud-native com dezenas de microsserviços, os logs ficam distribuídos por centenas de pods e instâncias. Diagnosticar um erro requer acessar SSH em múltiplos servidores e fazer grep manual — lento e propenso a erros. Log management centralizado coleta todos os logs em um repositório único, indexável e pesquisável, com correlação com métricas e traces, alertas automáticos e dashboards por aplicação e time. ELK Stack (Elasticsearch/Logstash/Kibana) e Grafana Loki são as duas principais abordagens open source.
📊 Log Management em Produção — 2025
OpenSearch vs Grafana Loki: Qual Usar
OpenSearch (fork do Elasticsearch) indexa o conteúdo completo dos logs, permitindo busca full-text ultra-rápida por qualquer campo. Custo: storage e CPU de indexação altos. Ideal para logs de segurança e auditoria onde qualquer campo pode ser relevante. Grafana Loki não indexa o conteúdo — apenas labels (host, app, namespace). Consultas usam grep paralelo nos logs raw. Muito mais econômico (10x menos storage). Ideal para logs de aplicação onde você consulta por labels conhecidos (app=api, level=error).
Coleta com Fluent Bit
Agente leve (DaemonSet no K8s) que coleta, filtra e encaminha logs para OpenSearch ou Loki com baixo overhead de CPU/RAM.
Parsers e Grok
Transform logs não-estruturados em JSON estruturado. Extraia IP, status code, latência de access logs para dashboards automáticos.
Alertas em Logs
Alertmanager e Grafana Alerting disparam alertas quando padrões aparecem nos logs: “error” rate, exception types, status 5xx.
Correlação com Traces
Loki + Tempo + Grafana: clique em uma linha de log e veja o trace distribuído do mesmo request — investigação em segundos.
Log-based Metrics
Extraia métricas de logs (taxa de erros, latência por endpoint) sem instrumentar a aplicação — usando promtail/vector metric extraction.
Tiering de Armazenamento
Logs quentes (7 dias) em SSD rápido; frios (30-90 dias) em object storage (S3/MinIO). Reduz custo de retenção em 80%.
⚠️ Melhores Práticas de Log Management
Logs em JSON são automaticamente parseados. Inclua sempre trace_id, user_id, duration_ms para correlação e alertas.
Passwords, tokens, CPF, cartão de crédito não devem aparecer em logs. Implemente scrubbing no pipeline de coleta.
DEBUG em produção enche storage em horas. Use INFO para operações normais, WARN para recuperáveis, ERROR para falhas.
Valide periodicamente que buscas críticas (busca por trace_id, por erro específico) funcionam dentro do SLA de investigação.
Logs são a caixa preta do seu sistema. Sem eles centralizados e pesquisáveis, você voa cego em produção.
— iSecPlus SRE Team, 2026
Implementando Log Management em Kubernetes
A stack Grafana (Loki + Promtail + Grafana) é a escolha mais econômica para K8s: Promtail como DaemonSet coleta logs de todos os pods via tail de arquivos de log do containerd. Labels são extraídos automaticamente de metadados K8s (namespace, pod, container). Para OpenSearch, o OpenSearch Operator gerencia o cluster dentro do K8s com configuração declarativa. Em ambos os casos, a chave é ter retenção configurada, alertas em erro rates e dashboards por equipe. Filebeat e Fluentd são alternativas ao Fluent Bit com mais processadores mas maior overhead.
