System-Logging: Grafana führt bei Loki 2.3 Prometheus-kompatibles Recording ein

Der Anbieter von Software zum Analysieren von Systemlogs tischt bei Loki Features auf: benutzerdefiniertes Aufbewahren und fünfzehnfache Abfragegeschwindigkeit.

In Pocket speichern vorlesen Druckansicht 1 Kommentar lesen

(Bild: Itzchaz/Shutterstock.com)

Lesezeit: 3 Min.
Von
  • Silke Hahn
Inhaltsverzeichnis

Grafana Labs hat Version 2.3 seines Logging-Tools Loki herausgebracht. Der Anbieter von Monitoring-, Logging- und Tracing-Software verpasst dem Tool neben zahlreichen Bugfixes eine Reihe größerer neuer Features. Mit am wichtigsten dürfte dabei die Custom Retention sein, mit der Loki-Anwenderinnen und -Anwender beispielsweise die Aufbewahrungsfenster für Daten und deren Verwahrdauer offenbar benutzerdefiniert festlegen können.

Neu ist außerdem das Entfernen von Log-Einträgen für ausgewählte Streams innerhalb im Voraus definierter Intervalle, und Loki 2.3 unterstützt Aufnahmeregeln (Recording Rules) nach Art von Prometheus, womit sich Metrik-Abfragen über Logs in regelmäßigen Intervallen automatisiert durchführen lassen sollen. Die resultierenden Metriken soll Loki an Prometheus beziehungsweise mit Prometheus kompatible Systeme wie Cortex und Thanos senden können. Das Feature befindet sich noch in einem experimentellen Stadium, Details dazu lassen sich der Dokumentation zu den Recording Rules entnehmen.

Als Beispiel führt das Loki-Team darin eine Abfrage (expr) vor, die mit einem Intervall von einer Minute (interval) auszuführen ist und deren Ergebnis das Programm unter einem zuvor festgelegten Metriknamen (record) abspeichert. Wer das Tool verwendet, kann die Metrik (hier: nginx:requests:rate1m) anschließend zur Aufbewahrung an Prometheus senden:

name: NginxRules
interval: 1m
rules:
  - record: nginx:requests:rate1m
    expr: |
      sum(
        rate({container="nginx"}[1m])
      )
    labels:
      cluster: "us-central1"

Die Retention hatte sich zuvor lediglich global für ganze Cluster und deren untergeordnete Objektspeicher einstellen lassen. Im neuen Release erlaubt Loki das differenziertere Steuern durch eine Komponente namens Compactor. Die Aufbewahrungsfrist (Retention Period) lässt sich nun pro Tenant und pro Stream festlegen. Nutzer sollen damit laut Blogeintrag des Grafana-Loki-Teams den Speicherbedarf und die damit verbundenen Kosten sowie Sicherheits- und Compliance-Anforderungen "feingranular" anpassen können. Aktivieren lässt sich die Retention mit folgendem Code:

compactor:
  working_directory: /data/retention
  shared_store: gcs
  compaction_interval: 10m
  retention_enabled: true
  retention_delete_delay: 2h
  retention_delete_worker_count: 150
schema_config:
    configs:
      - from: "2020-07-31"
        index:
            period: 24h
            prefix: loki_index_
        object_store: gcs
        schema: v11
        store: boltdb-shipper
storage_config:
    boltdb_shipper:
        active_index_directory: /data/index
        cache_location: /data/boltdb-cache
        shared_store: gcs
    gcs:
        bucket_name: loki

Der Parameter retention_enabled muss dabei als true eingestellt sein, sonst komprimiert der Compactor lediglich Tabellen. schema_config und storage_config müssen beide Zugriff auf den Speicher haben, und die Indexperiode muss 24 Stunden betragen und die Mindestzeit für eine Retention beträgt ebenfalls 24 Stunden. Wie die Konfiguration der Custom Retention im Detail vonstattengeht, führt das Loki-Team in der Dokumentation zum Speichern und Aufbewahren aus.

Weitere Änderungen betreffen den Pattern Parser, mit dem sich LogQL-Abfragen erstellen lassen, die für unstrukturierte Logs Labels extrahieren sollen. Zudem gibt es eine Neuerung namens Ingester Sharding, was bei Loki einer Technik entspricht, um das Abfrage-Frontend in mehrere Abfragen für paralleles Berechnen (Parallel Computation) aufzusplitten. Vor der aktuellen Version war das Sharding nicht für frische Daten möglich, mit dem neuen Ingester Sharding sollen sich nun alle Zeitspannen parallelisieren lassen. Die Herausgeber heben im Blogeintrag hervor, dass insbesondere das Sharding die Rechengeschwindigkeit beschleunigt und dadurch die Performance erhöht. So soll in der Testumgebung die Suchgeschwindigkeit von einem GigaByte pro Sekunde auf 15 GigaByte gestiegen sein.

Mehr Informationen zu den Neuerungen lassen sich dem Blogeintrag zur Ankündigung des Release bei Grafana entnehmen. Alle Änderungen zu diesen sowie weiteren kleineren Änderungen und den Problembehebungen sind im Changelog auf GitHub aufgeführt. Wer von einer älteren Version auf die aktuelle Loki-Ausgabe umsatteln möchte, sollte zuvor den Upgrade-Guide zu Rate ziehen.

(sih)