fairlane.systems

LOKI · TECH

Loki: Log-Aggregation als KMU-freundliche Elasticsearch-Alternative

Loki 3.x von Grafana Labs als Companion-Logsystem. Indexiert nur Labels, nicht Volltext. AGPL-3, Self-host oder Grafana Cloud. Mai 2026 mit Bloom-Filtern.

Recherche & Faktencheck: · Stand: 2026-05

Was ist Loki?

Loki ist die Log-Aggregations-Komponente aus dem Grafana-Ökosystem. 2018 von Grafana Labs vorgestellt, mittlerweile in Version 3.x (Mai 2026) und sehr aktiv weiterentwickelt. Die Grundidee: Logs werden in Loki gespeichert, aber nicht volltext-indexiert wie bei Elasticsearch. Stattdessen werden nur Metadaten-Labels (container_name, log_level, service, environment) indexiert. Der eigentliche Log-Inhalt liegt in Chunks auf S3, Filesystem oder MinIO und wird nur bei einer konkreten Query gelesen.

Der Effekt: Loki verbraucht typischerweise 10 bis 20 Prozent des Speichers, den ein vergleichbarer Elasticsearch-Stack braucht. Eine Treuhand-Plattform mit 30 Tagen Log-Retention belegt in Loki vielleicht 15 GB, in Elasticsearch 100+ GB. Auch der RAM-Footprint ist deutlich niedriger: Loki Single-Binary läuft mit 1 GB RAM gut, Elasticsearch braucht mindestens 8 bis 16 GB.

Lizenz: AGPL-3. Das ist strenger als Apache 2.0 (Prometheus) – wer Loki modifiziert und als Service anbietet, muss den Quellcode unter AGPL stellen. Für typische KMU-Nutzung (selbst betreiben, eigene Logs) ist AGPL kein Hindernis. Wer Loki als Teil eines kommerziellen SaaS weiterverkauft, sollte die Lizenz mit dem Anwalt prüfen – Grafana Labs bietet dann auch kommerzielle Lizenzen an.

Loki ersetzt kein Logging-Framework, sondern ist der Speicher und das Abfrage-Backend. Logs werden über Promtail, Fluent Bit, Vector, oder direkt über HTTP eingespeist. Frontend ist immer Grafana – Loki hat keine eigene UI ausser einer schlanken Debugging-Konsole.

Warum es zählt

Logs sind für KMU oft das wichtigste Forensik-Werkzeug – nicht Metriken. Wenn ein Mandanten-Login fehlschlägt, ein n8n-Workflow stillschweigend abbricht oder ein LLM-Request eine 503 zurückgibt, ist die erste Frage immer: was steht in den Logs? Ohne zentrale Log-Aggregation müssen Sie sich auf 25 verschiedene Container einloggen und docker logs durchsuchen. Mit Loki ist die Antwort in zwei Sekunden da.

CH-DSG-Fit: Loki läuft self-hosted auf Hetzner Falkenstein. Logs enthalten oft personenbezogene Daten (IP-Adressen, Benutzernamen, manchmal Inhalte von Anfragen) – diese dürfen die EU/CH nicht ohne Folgenabschätzung verlassen. Loki self-host löst das Problem an der Wurzel: keine Daten in die USA, keine Auftragsverarbeitungs-Diskussionen.

KMU-Tauglichkeit: Setup ist deutlich einfacher als Elasticsearch. Ein einzelner Docker-Container mit Filesystem-Backend läuft sofort. Promtail als Sidecar oder Docker-Logging-Driver sammelt Logs automatisch ein. Für 5 bis 25 Container ist Single-Binary-Loki absolut ausreichend – kein Cluster, kein S3, keine Replikation nötig.

Audit-Trail-Compliance: Für Treuhand-Mandanten verlangt OR 957a den Geschäftsbuch-Audit-Trail; für KI-Systeme verlangt der EU AI Act ein dokumentiertes Logging der Entscheidungen. Loki ist ein praktisches Backend dafür – Logs werden zentral gesammelt, 12 Monate aufbewahrt (Retention-Konfig), und über LogQL ad-hoc auswertbar. Read-only-Zugang für einen Auditor lässt sich über Grafana-Rechte abbilden.

Mai 2026 – Bloom-Filter: Die neueste Loki-3-Linie bringt Bloom-Filter für Volltext-Indexierung optional pro Stream. Das beschleunigt Substring-Suchen über lange Zeiträume drastisch (Faktor 5-10) und schliesst eine der letzten Performance-Lücken gegenüber Elasticsearch.

Wie es funktioniert

Loki besteht aus drei Komponenten, die in einem einzelnen Binary laufen können (single-binary mode) oder als Cluster auf mehrere Knoten verteilt (microservices mode). Für KMU ist single-binary Standard.

Datenfluss: (1) Agents wie Promtail, Vector oder Fluent Bit lesen Logs (aus Containern, Dateien oder syslog) und versehen sie mit Labels. (2) Logs werden via HTTP/gRPC an Loki gepushed. (3) Loki schreibt Chunks ins Backend (Filesystem oder S3) und indexiert nur Labels. (4) Grafana fragt via LogQL ab.

docker-compose.yml-Beispiel für ein KMU-Setup:

```yaml services: loki: image: grafana/loki:3.4.0 volumes: - ./loki-config.yml:/etc/loki/local-config.yaml - loki-data:/loki command: -config.file=/etc/loki/local-config.yaml ports: ["3100:3100"] restart: unless-stopped promtail: image: grafana/promtail:3.4.0 volumes: - /var/log:/var/log:ro - /var/lib/docker/containers:/var/lib/docker/containers:ro - ./promtail-config.yml:/etc/promtail/config.yml command: -config.file=/etc/promtail/config.yml restart: unless-stopped volumes: loki-data: ```

LogQL ist die Abfragesprache, syntaktisch an PromQL angelehnt. Beispiele: `{container="n8n"}` (alle Logs aus dem n8n-Container), `{container="n8n"} |= "error"` (mit Substring "error"), `{container="n8n"} |~ "5\d\d"` (Regex auf HTTP-Statuscodes 5xx), `{container="n8n"} | json | duration_ms > 1000` (JSON-parsen, dann filtern auf duration > 1s).

Retention: Loki kennt globale und stream-spezifische Retention. Standard-Konfig: 30 Tage globale Retention plus 12 Monate für Streams mit Label `audit=true`. Damit lassen sich Audit-Logs länger aufbewahren als Routine-Logs. Compactor-Job läuft täglich und löscht abgelaufene Chunks.

Bloom-Filter (Mai 2026): Optionales Feature in Loki 3.4+. Erzeugt einen Bloom-Filter pro Chunk, der Substring-Suchen massiv beschleunigt. Aktivierbar pro Stream – sinnvoll für high-volume-Streams mit häufigen ad-hoc-Suchen.

Setup in 5 Schritten

  1. 01docker-compose mit grafana/loki:3.4 und grafana/promtail:3.4 anlegen, Filesystem-Backend, single-binary mode.
  2. 02loki-config.yml mit Retention 30 Tage Standard plus 12 Monate für Streams mit Label audit=true; storage_config: filesystem chunks-Dir.
  3. 03promtail-config.yml mit docker_sd_configs auf /var/lib/docker/containers – automatische Label-Extraktion (container_name, log_level).
  4. 04Loki als Datasource in Grafana anbinden, Test-Query {container=~".+"} laufen lassen, JSON-Parsing in einem Explore-Test prüfen.
  5. 05Alerts via Grafana Alerting auf LogQL-Queries definieren (z.B. Anstieg von 5xx-Errors), Receiver auf Telegram oder Slack.

Wann Loki einsetzen

Loki ist die richtige Wahl, wenn (a) Logs aus mehreren Containern oder Hosts zentral gesammelt werden sollen, (b) Grafana ohnehin im Stack ist (oder geplant), (c) Elasticsearch-Komplexität vermieden werden soll und (d) das Logvolumen pro Tag im Bereich von wenigen MB bis ca. 10 GB liegt.

Konkrete Anwendungsfälle: Eine Treuhand-Plattform mit 25 Docker-Containern (n8n, PostgreSQL, Express-APIs, Cron-Worker, LiteLLM-Gateway), deren Logs zentral durchsuchbar sein sollen. Eine Anwaltskanzlei mit Audit-Trail-Pflichten – Loki sammelt alle Zugriffs-Events und macht sie über 12 Monate hinweg durchsuchbar. Ein RAG-System mit LangChain-Worker, deren Fehler im stillen auftreten – Loki liefert die Zeile in unter zwei Sekunden.

Auch sinnvoll: als Audit-Backend für LLM-Requests. Jeder Request an OpenAI/Anthropic/DeepSeek wird mit Mandanten-ID, Modell, Tokens und Antwort-Latenz an Loki gelogged – daraus lassen sich Compliance-Reports und Kosten-Analysen ableiten. Bei Fairlane läuft genau dieses Muster produktiv seit 2024.

Wann NICHT

Loki ist die falsche Wahl, wenn (a) reine Volltext-Suche über sehr grosse Log-Mengen (>100 GB pro Tag) das Haupt-Use-Case ist – Elasticsearch oder OpenSearch sind dann passender, (b) der Stack komplett auf OpenTelemetry-First setzt – dann ist SigNoz die kohaerentere Wahl, (c) das Team kein Grafana hat und auch keines aufbauen will – Loki ohne Grafana ist umständlich.

Fallen: Loki ohne Retention-Policy laufen lassen – Logs wachsen unbegrenzt, der Host füllt sich. Sehr viele unterschiedliche Labels (high cardinality) verwenden – Loki-Index explodiert genauso wie Prometheus. Alle Logs ohne Filter weiter pushen – Sentry-Stack-Traces, Health-Check-Pings, Debug-Output – kostet Storage ohne Mehrwert.

Nicht-empfohlene Muster: Loki und Elasticsearch parallel betreiben – doppelte Pflege ohne Mehrwert. Loki ohne Promtail oder Vector – direkter HTTP-Push aus jeder App ist möglich, aber mühsam und fehleranfällig. Loki Multi-Tenant ohne Plan – die Multi-Tenancy ist in Loki vorhanden, braucht aber explizite Konfiguration und ist nicht Standard-aktiviert.

Vor- und Nachteile

STÄRKEN

  • Storage-Footprint ca. 10-20% von Elasticsearch bei vergleichbarem Use Case
  • Single-Binary-Mode läuft auf 1 GB RAM produktiv
  • LogQL kompatibel zu PromQL – wer eine kennt, lernt die andere in Stunden
  • Eingebaute Retention pro Stream – Audit-Logs separat behandeln möglich

SCHWÄCHEN

  • AGPL-3 verlangt Lizenz-Prüfung bei Resale als SaaS-Komponente
  • Volltext-Suche über lange Zeiträume langsamer als Elasticsearch (ausser mit Bloom-Filtern)
  • Ohne Grafana keine sinnvolle UI – Loki-Tooling ist schmal
  • Multi-Tenant-Konfiguration ist möglich, aber nicht trivial

Häufige Fragen

Wie viel Disk für 30 Tage Logs?

Faustregel: 0.1 bis 0.3 GB pro GB Roh-Log nach Kompression (gzip). Eine KMU-Plattform mit 25 Containern und ca. 5 GB Roh-Logs pro Tag belegt in Loki 15 bis 50 GB für 30 Tage. Elasticsearch braucht für denselben Datensatz typischerweise 100 bis 200 GB plus Replikation. Auf einem CPX21 reicht der Disk-Speicher dafür locker.

Brauche ich S3 oder reicht Filesystem?

Für KMU bis ca. 50 GB Loki-Daten reicht Filesystem absolut. S3-Backend wird sinnvoll bei (a) sehr grossen Datenmengen (>500 GB), (b) Bedarf nach Cluster-Mode oder (c) Wunsch nach lebenslangem Audit-Archiv. MinIO als self-hosted S3-Alternative ist eine gute Brücke – bleibt im eigenen Rechenzentrum, sprechen S3-Protokoll, und Loki kann darüber Object-Storage nutzen ohne in die Public Cloud zu gehen.

Wie unterscheidet sich Loki von Elasticsearch?

Elasticsearch indexiert den Volltext jedes Logs – sehr mächtig für Ad-hoc-Volltextsuche, aber RAM-hungrig (mindestens 16 GB für ernsthafte Setups) und Storage-teuer. Loki indexiert nur Labels – der Volltext bleibt in komprimierten Chunks und wird nur bei einer konkreten Query gelesen. Für das KMU-Muster "ich weiss welcher Container, ich suche eine Substring" ist Loki schneller und billiger. Für das Muster "ich suche über alle Logs ohne zu wissen wo" ist Elasticsearch überlegen.

Ist AGPL-3 ein Risiko für KMU?

Praktisch nein, solange Loki intern betrieben wird. AGPL-3 verlangt nur dann Quellcode-Offenlegung, wenn modifizierte Loki-Versionen als Service angeboten werden. Wer Loki unverändert deployt und eigene Logs sammelt, hat keine Verpflichtung. Risiko entsteht erst bei (a) Eigenmodifikation plus (b) Service-Anbieten – typisch bei SaaS-Resellern. Für Treuhand, Anwalt, KMU mit eigenem Stack: vollkommen unkritisch.

Verwandte Themen

GRAFANA · TECH-STACKGrafana, Prometheus, Loki: Monitoring-Stack für Container-Apps und LLM-WorkflowsPROMETHEUS · TECHPrometheus: CNCF-Time-Series-DB für Metriken, Pull-Modell und PromQLMONITORING / TOOL-VERGLEICHMonitoring & Observability im Vergleich: Grafana, Loki, Uptime Kuma, Netdata, Zabbix, Datadog, Sentry, ELK, VictoriaMetrics, SigNozLOGGING · SICHERHEIT & BETRIEBLogging und Audit-Trail: revisionsfeste Protokollierung nach OR Art. 957a für KMUAUDIT-TRAIL · AI-KONZEPTAI-Audit-Trail-Design: Was Sie loggen müssen, damit eine KI-Antwort revisionsfähig bleibtMANAGED · SERVICEManaged Service & Monitoring: Wir betreiben es weiter, Sie nutzen es

Quellen

  1. Grafana Loki – Documentation · 2026-05
  2. Grafana Loki 3 – Release notes and bloom filters · 2026-04
  3. Grafana Labs – Loki vs Elasticsearch comparison · 2026-03
  4. Promtail – Configuration reference · 2026-04

PASSEND ZU IHREM STACK?

Wie das in Ihrem Betrieb konkret aussieht – 30 Minuten Erstgespräch.

Erstgespräch buchen