Loki: log aggregation "like Prometheus, but for logs"

Loki (dicembre 2018) di Grafana Labs (Tom Wilkie, David Kaltschmidt): sistema log aggregation cloud-native, labels-based (no full-text index), storage su object storage (S3, GCS). LogQL query language. Alternativa economica a ElasticSearch.

Open Source LokiGrafana LabsLoggingLogQLObservabilityPrometheusOpen Source

Log a basso costo

Elasticsearch è potente ma costoso: indicizza ogni parola di ogni log → dischi veloci, RAM elevata, licensing complesso dal 2021 (SSPL). Molti team vogliono solo cercare per label (namespace, pod, app) e filtrare testo con grep, non ricerca full-text.

Il rilascio

Loki è rilasciato il 14 dicembre 2018 da Grafana Labs alla KubeCon Seattle 2018. Lead engineer: Tom Wilkie (ex-Weaveworks, Prometheus maintainer) e David Kaltschmidt. Scritto in Go, licenza AGPLv3 (dal 2021, prima Apache 2.0).

Filosofia

“Like Prometheus, but for logs”:

  • Index solo sulle label (non contenuto)
  • Contenuto log compresso e archiviato su object storage
  • Storage economico — S3, GCS, Azure Blob, MinIO
  • Query language LogQL simile a PromQL
{app="webapp", env="prod"} |= "error" | json | status_code >= 500

Architettura

  • Distributor — riceve log, distribuisce ai writers
  • Ingester — batch in memoria, flush a storage
  • Querier — esegue LogQL, aggrega da ingester + storage
  • Compactor — compattazione indici
  • Storage — object storage (S3-compatible) + boltdb-shipper/TSDB indice
  • Query frontend — parallelizzazione query

Deploy pattern: Single binary (monolith), Simple Scalable, Microservices (1000+ pod).

Promtail e Alloy

Log collector companion:

  • Promtail — agent Grafana per raccogliere log (path, journald, K8s)
  • Grafana Alloy (2024, successore di Agent) — unified logs+metrics+traces collector
  • Fluent Bit, Fluentd, Vector — tutti supportano output Loki

Integrazione

  • Grafana — UI built-in, Explore tab per LogQL
  • Alerting — Grafana alert basate su log counts/patterns
  • Recording rules — metriche derivate da log
  • Tempo + Loki — correlazione trace ↔ log

Versioni

  • 1.0 (novembre 2019) — GA
  • 2.0 (ottobre 2020) — TSDB index, LogQL v2
  • 2.4 (2022) — simpler single-binary
  • 3.0 (aprile 2024) — storage-agnostic compactor, Bloom filters

Concorrenti

  • Elasticsearch (via Filebeat/Logstash) — full-text index potente ma costoso
  • OpenSearch — fork AWS open
  • Splunk — commerciale, enterprise
  • Datadog Logs, New Relic Logs — SaaS
  • VictoriaLogs (2023) — simile filosofia, più leggero
  • SigNoz — full stack OSS
  • ClickHouse — alternativa storage a log analitici

Nel contesto italiano

Loki è molto diffuso per log aggregation a costo contenuto:

  • MSP e hosting provider italiani
  • Banche per log infrastrutturali (non transazionali full-text)
  • PA digitale — progetti PSN, cluster multi-tenant
  • SaaS B2B italiani
  • Development team per log applicativi
  • Home-lab e dev environment locali

Stack tipico: Grafana + Prometheus + Loki + Tempo (LGTM) per osservabilità unificata a costi accessibili rispetto a Datadog/Splunk.


Riferimenti: Loki (14 dicembre 2018, KubeCon Seattle). Grafana Labs. Tom Wilkie, David Kaltschmidt. Licenza AGPLv3 (dal 2021). Scritto in Go. LogQL query language. Storage S3/GCS/Azure Blob + object-storage indice.

Vuoi supporto? Sei sotto attacco? Stato dei servizi
Vuoi supporto? Sei sotto attacco? Stato dei servizi