Grafana Loki ist ein quelloffenes System zur Log-Aggregation, das Grafana Labs 2018 vorgestellt hat. Sein Slogan lautet „wie Prometheus, aber für Logs": Statt jede Log-Zeile im Volltext zu indizieren, übernimmt Loki das Label-Konzept von Prometheus und indexiert nur eine kleine Menge an Metadaten pro Log-Stream. Die eigentlichen Log-Inhalte landen komprimiert im Objekt-Storage. Dadurch ist Loki deutlich günstiger im Betrieb als klassische Volltext-Indexer und eignet sich für große Log-Mengen in Kubernetes-Umgebungen.
Wie funktioniert Loki?
Loki ist horizontal skalierbar, hochverfügbar und mandantenfähig (Multi-Tenant). Die Kernkomponenten sind:
- Agent: Sammelt Logs von Containern und Systemen. Lange war Promtail der Standard-Agent; inzwischen ist Grafana Alloy der Nachfolger, eine OpenTelemetry-Collector-Distribution, die Logs, Metriken und Traces in vielen Formaten einsammelt.
- Distributor und Ingester: Empfangen und puffern Log-Streams, gruppieren sie nach Labels und schreiben sie in den Speicher.
- Querier: Beantwortet Suchanfragen. Die Abfragesprache LogQL ist eng an PromQL angelehnt: Man filtert erst grob über Labels und dann optional nach Inhalt.
- Objekt-Storage: Die eigentliche Log-Ablage, etwa S3, GCS oder MinIO.
Die Auswertung passiert bequem in Grafana, das Loki als Datenquelle direkt anbindet und Logs im Explore-Bereich darstellt. Auch der Betrieb selbst ist unkompliziert: Für Kubernetes gibt es ein offizielles Helm-Chart, und die Komponenten laufen als normale Container, etwa mit Docker.
Loki 3.0: OpenTelemetry nativ
Mit Loki 3.0 (April 2024) kam Struktur in die Metadaten: Structured Metadata erlaubt es, OpenTelemetry-Attribute und Log-Ereignismetadaten direkt zur Abfragezeit zu nutzen. Loki besitzt seitdem einen nativen OTLP-Empfangs-Endpunkt, ist also direkt mit OpenTelemetry-kompatiblen Agenten verbindbar, ohne einen separaten Exporter. Zusätzlich verbessern Bloom-Filter die Suche nach Log-Inhalten.
Abgrenzung: Metriken, Logs, Traces
In der Observability beantworten die drei Datentypen unterschiedliche Fragen: Prometheus misst Metriken (Zahlen, z.B. Fehlerrate), Loki verwaltet Logs (Ereignisnachrichten) und Tools wie Jaeger rekonstruieren Traces (Abläufe einer Anfrage durch verteilte Systeme). Gegenüber ELK/Elasticsearch, das Log-Inhalte vollständig indiziert, verzichtet Loki bewusst auf die Volltext-Indizierung — das spart Speicher und Kosten, macht aber komplexe Volltext-Analysen über alle Inhalte aufwendiger. Das passende Stichwort für den Gesamtüberblick ist Logging.