Gerenciamento de Logs de Próxima Geração: Migrando de ELK para Grafana LGTM
Por que o ELK está perdendo terreno?
O Elastic Stack (elk) consolidou-se como padrão de fato para ingestão, armazenamento e visualização de logs nos últimos anos. Contudo, seu modelo de indexação baseada em documentos JSON, aliado ao uso intensivo de recursos de CPU e memória para análise full‑text, tem revelado limitações em ambientes de alta escala. O custo de armazenamento cresce exponencialmente devido à replicação de shards e à necessidade de manter índices de retenção prolongada. Além disso, a complexidade de gerenciamento de pipelines de ingestão – envolvendo Beats, Logstash e ingest nodes – eleva a curva de aprendizado e dificulta a automação em pipelines CI/CD. Esses fatores impulsionam a busca por soluções mais leves, orientadas a séries temporais, que ofereçam eficiência de custo e integração nativa com observabilidade moderna.
Arquitetura do Grafana LGTM: fundamentos
Grafana LGTM (Loki, Grafana, Tempo, Mimir) representa a evolução da pilha de observabilidade ao adotar o paradigma de logs como séries temporais. O núcleo, Loki, armazena logs em um formato de chunk comprimido, indexando apenas metadados (labels) ao invés de todo o conteúdo textual. Essa abordagem reduz drasticamente o overhead de indexação e permite que o armazenamento seja dimensionado de forma linear com o volume de dados. O Grafana, por sua vez, fornece a camada de visualização unificada, permitindo consultas avançadas via LogQL, correlação com métricas do Prometheus e rastreamento distribuído via Tempo. A integração nativa com Mimir garante alta disponibilidade e escalabilidade horizontal sem a necessidade de gerenciamento manual de shards.
Coleta de dados com Promtail
Promtail substitui o Filebeat e o Logstash na ingestão de logs para Loki. Configurado via arquivos YAML, ele lê arquivos de log locais, aplica pipelines de transformação (regex, relabeling) e anexa labels contextuais – como namespace, pod_name e environment. Essas labels são essenciais para a indexação eficiente, pois permitem filtragem rápida sem varrer o conteúdo completo. Promtail também suporta descoberta de serviços via Kubernetes API, facilitando a coleta automática em clusters dinâmicos.
Processamento e indexação avançada
Loki utiliza um modelo de armazenamento de duas camadas: um índice de metadados armazenado em um banco de chave‑valor (ex.: DynamoDB, Cassandra) e um armazenamento de chunks em object storage (S3, GCS, Azure Blob). Cada chunk contém um lote de linhas de log comprimidas em formato protobuf, o que reduz a latência de leitura e otimiza a compressão. O índice de metadados mantém apenas as combinações de labels e os ponteiros para os chunks correspondentes, permitindo buscas por label em milissegundos. Essa arquitetura elimina a necessidade de reindexação completa ao adicionar novos campos, ao contrário do Elasticsearch, onde cada novo campo pode gerar mapeamento e reindexação custosos.
Migrando de Elasticsearch para Loki: passos críticos
A migração requer planejamento cuidadoso para evitar perda de dados e interrupções nos pipelines de observabilidade. O processo pode ser dividido em quatro fases principais:
- Inventário de índices e mappings: catalogar todos os índices Elasticsearch, identificar campos analisados, tipos de dados e políticas de retenção.
- Mapeamento de labels: definir um esquema de labels que reflita a estrutura dos campos existentes. Por exemplo, o campo
service_namepode ser convertido em labelservice, enquantolog_levelviralevel. - Exportação de dados: utilizar o
elasticdumpou ologstashcom saídaloki(via plugin) para transformar documentos JSON em linhas de log com labels apropriadas. É recomendável fazer a exportação em batches para controlar a taxa de ingestão no Loki. - Validação e ajuste de retenção: após a carga, validar a integridade das queries LogQL comparando resultados com as queries Kibana equivalentes. Ajustar políticas de retenção no Loki (via
compactoreretention) para refletir SLAs de compliance.
Durante a fase de exportação, é crucial habilitar o pipeline_stages no Promtail para normalizar timestamps e garantir que o campo @timestamp seja preservado como label ts. Isso evita discrepâncias de fuso horário e garante a ordenação correta nas visualizações.
Integração com Grafana: visualizações dinâmicas
Com os logs já disponíveis no Loki, o Grafana permite a criação de painéis que mesclam métricas Prometheus e logs em tempo real. O recurso “Explore” oferece uma experiência interativa similar ao Kibana Discover, mas com a vantagem de poder alternar entre métricas e logs sem mudar de ferramenta. Utilizando LogQL, é possível escrever consultas como {service="checkout"} |= "ERROR" | json para filtrar linhas contendo a palavra “ERROR” e extrair campos JSON inline. Além disso, o Grafana Alerting agora suporta alertas baseados em padrões de log, disparando notificações via webhook ou PagerDuty quando um volume anômalo de eventos críticos é detectado.
Para dashboards avançados, recomenda‑se o uso de variáveis de template que populam dinamicamente listas de services, namespaces ou níveis de severidade a partir das próprias labels do Loki. Isso reduz a necessidade de manutenção manual de filtros e garante que novos micro‑serviços sejam automaticamente incluídos nas visualizações.
Gerenciamento de retenção e custo
Um dos principais benefícios do Loki é a separação entre índice e dados brutos, permitindo políticas de retenção diferenciadas. Enquanto o índice de metadados pode ser mantido por períodos curtos (ex.: 30 dias) em um banco de chave‑valor de alta performance, os chunks podem ser armazenados em object storage de baixo custo por até 365 dias. Essa estratégia reduz drasticamente o custo total de propriedade (TCO) em comparação ao Elasticsearch, onde cada réplica de shard duplica o consumo de disco.
Além disso, o Loki oferece compressão de chunks baseada em Snappy ou ZSTD, que pode alcançar taxas de compressão superiores a 80 % para logs textuais. A configuração chunk_target_size permite ajustar o tamanho ideal dos chunks para equilibrar latência de leitura e eficiência de compressão, sendo recomendável iniciar com 1 MiB e ajustar conforme a taxa de ingestão.
Casos de uso avançados e extensibilidade
Graças à arquitetura modular, o Grafana LGTM pode ser estendido para atender a requisitos específicos:
- Enriquecimento de logs com OpenTelemetry: ao instrumentar aplicações com OpenTelemetry Collector, é possível encaminhar spans e logs simultaneamente para Tempo e Loki, permitindo correlação automática via trace ID.
- Filtragem de logs sensíveis: usando o recurso de
pipeline_stagesno Promtail, pode‑se aplicar regex para mascarar informações confidenciais (ex.: números de cartão) antes da ingestão. - Integração com CI/CD: pipelines GitHub Actions ou GitLab CI podem publicar logs de build diretamente no Loki, facilitando a auditoria de falhas de deploy.
Essas extensões são configuráveis via arquivos YAML ou ConfigMaps em Kubernetes, mantendo a consistência declarativa da infraestrutura.
Checklist de validação pós‑migração
Para garantir que a migração atendeu aos requisitos de performance, segurança e compliance, recomenda‑se a execução do seguinte checklist:
- Verificar a integridade dos índices: comparar contagem de documentos entre Elasticsearch e Loki usando queries equivalentes.
- Testar latência de consulta: medir tempo médio de resposta de consultas LogQL complexas (ex.: regex + parsing JSON) e comparar com Kibana.
- Auditar políticas de retenção: confirmar que os objetos no bucket S3 obedecem às regras de lifecycle configuradas.
- Validar alertas: disparar eventos de teste que acionem alertas baseados em padrões de log e garantir entrega nas rotas configuradas.
- Revisar custos: analisar métricas de uso de storage e I/O no provedor de cloud para validar a redução de TCO.
- Documentar labels: manter um catálogo de labels padrão e suas descrições para facilitar onboarding de novas equipes.
Ao concluir esse checklist, a organização estará preparada para operar uma plataforma de logs de próxima geração, com escalabilidade horizontal, custos otimizados e integração profunda com o ecossistema de observabilidade moderno.
Sou um profissional na área de Tecnologia da informação, especializado em monitoramento de ambientes, Sysadmin e na cultura DevOps. Possuo certificações de Segurança, AWS e Zabbix.


