Basis-Datei loki-config.yaml erstellen
In diesem Schritt erstellen Sie eine minimale Konfigurationsdatei für Loki. Diese Datei, loki-config.yaml, teilt Loki mit, wie es ausgeführt werden soll, wo Daten gespeichert werden sollen und welches Schema verwendet werden soll. Für dieses Lab konfigurieren wir Loki so, dass es das lokale Dateisystem zur Speicherung verwendet.
Wir verwenden den Texteditor nano, um die Datei zu erstellen. Führen Sie den folgenden Befehl aus, um eine neue Datei namens loki-config.yaml zu öffnen:
nano loki-config.yaml
Kopieren Sie nun den folgenden YAML-Inhalt und fügen Sie ihn in den nano-Editor ein:
auth_enabled: false
server:
http_listen_port: 3100
common:
path_prefix: /tmp/loki
storage:
filesystem:
chunks_directory: /tmp/loki/chunks
rules_directory: /tmp/loki/rules
ring:
kvstore:
store: inmemory
schema_config:
configs:
- from: 2020-10-24
store: boltdb-shipper
object_store: filesystem
schema: v11
index:
prefix: index_
period: 24h
storage_config:
boltdb_shipper:
active_index_directory: /tmp/loki/index
cache_location: /tmp/loki/cache
filesystem:
directory: /tmp/loki/chunks
ruler:
alertmanager_url: http://localhost:9093
limits_config:
allow_structured_metadata: false
Diese Konfiguration speichert alles, was Loki benötigt, unter /tmp/loki innerhalb des Containers, was Berechtigungsprobleme vermeidet und die Einrichtung leicht verständlich hält. Sie deaktiviert die Authentifizierung, aktiviert einen In-Memory-Ring für die Verwendung auf einem einzelnen Knoten und speichert Blöcke und Indizes auf dem lokalen Dateisystem.
Hier ist, was jeder Abschnitt in der Datei bewirkt:
auth_enabled: false: Schaltet die Authentifizierung aus, sodass Sie ohne zusätzliche Anmeldeinformationen mit Loki kommunizieren können. Dies vereinfacht lokale Tests; in einer Produktionsumgebung würden Sie die Authentifizierung aktivieren.
server.http_listen_port: 3100: Weist Loki an, HTTP-Anfragen auf Port 3100 entgegenzunehmen. Wenn Sie curl localhost:3100 verwenden, treffen Sie auf diesen Port.
common.path_prefix: Legt den Basisordner fest, in dem Loki temporäre Daten innerhalb des Containers speichert. Jeder andere Pfad in dieser Datei wird von /tmp/loki abgeleitet, sodass alles an einem Ort bleibt.
common.storage.filesystem: Verweist Loki auf zwei Ordner zur Speicherung von Log-Daten-Chunks und Regeldateien. Da wir nichts Spezielles in den Container einbinden, vermeidet die Verwendung von /tmp/loki Probleme mit Berechtigungen.
common.ring.kvstore.store: inmemory: Speichert Mitgliedsinformationen im Speicher. Für ein Einzelknoten-Lab ist dies perfekt; ein echter Cluster würde einen gemeinsam genutzten Speicher wie Consul oder etcd verwenden.
schema_config: Definiert, wie Loki den Index für Log-Daten anlegen soll. Wir legen ein Startdatum fest, wählen den boltdb-shipper-Speicher und behalten den Index auf dem Dateisystem. Das prefix und period steuern, wie Dateien benannt werden und wie oft eine neue Indexdatei erstellt wird (alle 24 Stunden).
storage_config: Gibt die genauen Ordner für den boltdb-shipper-Index (active_index_directory und cache_location) und für die Speicherung der Roh-Chunks an. Alle Pfade befinden sich wieder unter /tmp/loki, um Ordnung zu halten.
ruler.alertmanager_url: Bereitet die Ruler-Komponente von Loki darauf vor, Alerts an einen Alertmanager unter http://localhost:9093 zu senden. Es wird nichts fehlschlagen, wenn Alertmanager nicht läuft; Loki protokolliert lediglich eine Warnung, wenn es versucht, einen Alert zu senden.
limits_config.allow_structured_metadata: false: Deaktiviert eine erweiterte Funktion, sodass Loki sich an die einfacheren, reinen Text-Log-Metadaten hält, die Anfänger erwarten.
Drücken Sie Ctrl+X, um zu beenden, dann Y, um das Speichern zu bestätigen, und schließlich Enter, um die Datei unter dem Namen loki-config.yaml zu speichern.