SENTINEL Tecnologia
Observabilidade19 de março de 20268 min

Loki + Grafana: logs centralizados sem o custo do ELK

Arquitetura Loki para logs centralizados, LogQL, políticas de retenção e comparativo de custo com ELK Stack tradicional.

LokiGrafanaLogsObservabilidade

Se você já operou um cluster Elasticsearch para logs, conhece a dor: nodes quebrando, shards vermelhos, consumo absurdo de memória e custos de storage que só crescem. Loki, criado pela Grafana Labs, oferece uma alternativa radicalmente mais simples e barata.

Por que Loki existe

O Elasticsearch indexa o conteúdo completo de cada log line. Isso custa caro. O Loki indexa apenas labels (metadados), e armazena logs comprimidos em object storage barato (S3, GCS, MinIO).

Analogia: Prometheus é para métricas o que Loki é para logs.

Arquitetura do Loki

  • Promtail: agente que coleta logs de arquivos, journald, Docker ou Kubernetes
  • Loki: recebe, indexa labels e armazena chunks comprimidos
  • Grafana: visualização e exploração com LogQL
  • Instalação com Helm

    ```bash

    helm repo add grafana https://grafana.github.io/helm-charts

    helm install loki grafana/loki-stack \

    --namespace monitoring \

    --create-namespace \

    --set promtail.enabled=true \

    --set grafana.enabled=true \

    --set loki.persistence.enabled=true \

    --set loki.persistence.size=50Gi

    ```

    Para produção, use o modo microservices com storage em S3:

    ```yaml

    loki:

    storage:

    type: s3

    s3:

    endpoint: s3.us-east-1.amazonaws.com

    bucketnames: empresa-loki-logs

    region: us-east-1

    schemaConfig:

    configs:

  • from: 2026-01-01
  • store: tsdb

    object_store: s3

    schema: v13

    index:

    prefix: loki_index_

    period: 24h

    ```

    LogQL: a linguagem de consulta

    ```logql

    # Logs de erro do namespace producao

    {namespace="producao"} |= "error"

    # Parsing de JSON e filtro por status code

    {app="api"} | json | status >= 500

    # Taxa de erros por serviço nos últimos 5 minutos

    sum(rate({namespace="producao"} |= "error" [5m])) by (app)

    # Top 10 endpoints mais lentos

    topk(10,

    avg_over_time(

    {app="api"} | json | unwrap duration [5m]

    ) by (endpoint)

    )

    ```

    Políticas de retenção

    ```yaml

    limits_config:

    retention_period: 30d

    max_streams_per_user: 10000

    max_entries_limit_per_query: 5000

    compactor:

    retention_enabled: true

    delete_request_store: s3

    ```

    Dica: retenção diferenciada por namespace — debug com 7 dias, auditoria com 365 dias.

    Comparativo de custos: Loki vs ELK

    Para 100GB/dia de ingestão:

    AspectoELK StackLoki

    |---------|-----------|------|

    Storage (30 dias)~9TB (indexado)~1TB (comprimido)
    Memória cluster64-128GB RAM8-16GB RAM
    CPU16-32 vCPUs4-8 vCPUs
    Custo mensal$2.000-5.000$300-800
    Complexidade opsAltaBaixa

    A diferença de custo é 3-6x a favor do Loki.

    Limitações do Loki

  • Busca full-text é mais lenta (sem índice invertido)
  • Não substitui SIEM para security analytics
  • Labels de alta cardinalidade degradam performance
  • Conclusão

    Loki + Grafana é a escolha pragmática para logs centralizados em 90% dos casos. Para full-text search avançado, considere OpenSearch como alternativa.

    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.