Für jede Produktionsumgebung ist ein geeignetes Protokollierungs- und Überwachungssystem unerlässlich. Denn Ausfallzeiten können in einer solchen Umgebung zu unerwünschten Engpässen und sogar zu Reputations- und Umsatzverlusten führen. Daher benötigen die meisten Organisationen, die DevOps-Prinzipien und -Tools nutzen, ein Protokollierungssystem, um die Mängel von Prometheus auszugleichen, das zwar ein effizientes Tool zur Überwachung von Produktionssystemen ist, aber keine Protokollierungsfunktionen bietet.
Grafana Loki ist eines der Tools, die Unternehmen dabei helfen, ein zentrales Protokollierungssystem aufrechtzuerhalten. Die Bedeutung eines zentralen Protokollierungssystems in einer Produktionsumgebung besteht darin, dass Sie damit Probleme wie Ausfallzeiten beheben und potenzielle Probleme identifizieren können, die gelöst werden müssen. Loki startete 2018 bei Grafana Labs und wurde im Dezember 2018 auf der KubeCon in Seattle angekündigt . Im Juni 2019 wurde die erste Betaversion 0.1.0 veröffentlicht.
Was ist Grafana Loki?
Loki ist ein von Prometheus inspiriertes Multi-Tenant-Logaggregationssystem. Es ist sehr kosteneffizient und einfach zu bedienen. Logdaten werden komprimiert und in Blöcken in Objektspeichern wie AWS S3 und GCS gespeichert oder können sogar lokal auf einem Dateisystem gespeichert werden.
Ist Grafana Loki kostenlos?
Loki ist ein Open-Source-Projekt, das DevOps-Experten dabei helfen soll, Grafana ohne großen Aufwand zu installieren und auszuführen. Während Grafana einen Preisplan für das Hosten/Speichern Ihrer Protokolldaten hat, ist Loki von diesem Preisplan nicht betroffen. Daher bleibt es ein kostenloses Tool.
Vorteile der Verwendung von Grafana Loki:
Einige wichtige Vorteile der Verwendung von Grafana Loki gegenüber Wettbewerbern wie Graylog und Datadog, um nur einige zu nennen, sind:
- Leichtgewichtig : Durch die Speicherung komprimierter, unstrukturierter Protokolle und die ausschließliche Indizierung von Metadaten ist Loki einfacher zu bedienen und kostengünstiger im Betrieb.
- Objektspeicher : Loki kann mit Amazon S3 oder GCS eingerichtet werden, was tendenziell günstiger ist als Blockspeicher. Der folgende Link zeigt Ihnen die verschiedenen Möglichkeiten zum Speichern des Index und der Chunks: https://grafana.com/docs/loki/latest/operations/storage/
- Unterstützung für mehrere Dies wird durch eine Mandanten-ID unterstützt, sodass die Daten des Mandanten separat gespeichert werden. https://grafana.com/docs/loki/latest/overview/#multi-tenancy
- Native Grafana-Unterstützung: Ab Grafana 6.0 können Sie Metriken und Protokolle an einem Ort überprüfen.
So installieren Sie Grafana Loki Stack
In diesem Artikel konzentrieren wir uns auf Loki Stack, das aus drei Hauptkomponenten besteht:
- Grafana zum Abfragen und Anzeigen der Protokolle.
- Loki ist der Hauptserver, der für die Speicherung der Protokolle und die Verarbeitung von Abfragen verantwortlich ist.
- Promtail ist der Agent, der für das Sammeln und Übertragen von Protokollen an Loki verantwortlich ist.
Wir werden Minikube und Flux Version 2 verwenden , um Loki Stack mit einem Helm-Chart bereitzustellen. Standardmäßig speichert Loki die Chunks auf dem Dateisystem, das die Lebensdauer des Pods teilt. Wir werden das ändern und einen AWS S3 Bucket verwenden, um diese Art von Daten zu speichern.
Sie können Fluentbit anstelle von Promtail verwenden , wenn Sie möchten, aber wir haben festgestellt, dass Promtail sofort einsatzbereit ist und alle Labels in Ihrem Kubernetes-Cluster erkennen kann.
Zugriff auf das für diesen Beitrag verwendete Repo erhalten Sie über den folgenden Link:
Starten von Grafana Loki Stack
Mit einem Helm-Diagramm bereitstellen.
Weitere Informationen zum verwendeten Helm-Chart finden Sie unter folgendem Link:
Unten ist die Helm-Datei values.yaml, die wir verwenden werden:
values:
loki:
env:
– name: AWS_ACCESS_KEY_ID
valueFrom:
secretKeyRef:
name: iam-loki-s3
key: AWS_ACCESS_KEY_ID
– name: AWS_SECRET_ACCESS_KEY
valueFrom:
secretKeyRef:
name: iam-loki-s3
key: AWS_SECRET_ACCESS_KEY
config:
schema_config:
configs:
– from: 2021-05-12
store: boltdb-shipper
object_store: s3
schema: v11
index:
prefix: loki_index_
period: 24h
storage_config:
aws:
s3: s3://us-west-2/bluelightco-loki
s3forcepathstyle: true
bucketnames: bluelightco-loki
region: us-west-2
insecure: false
sse_encryption: false
boltdb_shipper:
shared_store: s3
cache_ttl: 24h
grafana:
enabled: true
sidecar:
datasources:
enabled: true
image:
tag: latest
grafana.ini:
users:
default_theme: light
Da wir einen AWS S3 Bucket verwenden, um unsere komprimierten Protokolldaten in Blöcken zu speichern, haben wir einen IAM-Benutzer mit Schreib- und Leseberechtigung für unseren S3 Bucket erstellt. Es muss ein Geheimnis erstellt werden, damit Loki die in den oben genannten Helm-Werten genannten Anmeldeinformationen verwenden kann.
Führen Sie den folgenden Befehl mit Ihren eigenen IAM-Anmeldeinformationen aus:
kubectl create secret generic iam-loki-s3 –from-literal=AWS_ACCESS_KEY_ID=’ABC123456′ –from-literal=AWS_SECRET_ACCESS_KEY=’ABC123456′ -n default
So greifen Sie auf die Grafana-Web-Benutzeroberfläche zu
Um auf die Grafana-Web-Benutzeroberfläche zuzugreifen, müssen Sie den folgenden Befehl ausführen:
kubectl port-forward svc/loki-grafana -n default 8080:80
Durchsuchen Sie die folgende URL: http://localhost:8080/
Melden Sie sich mit dem Benutzernamen admin an
Um das Passwort abzurufen, führen Sie Folgendes aus:
kubectl get secret –namespace default loki-grafana -o jsonpath=”{.data.admin-password}” | base64 –decode ; echo
Abfragen mit Grafana Loki verarbeiten
Nachdem Sie nun bei Grafana angemeldet sind, wurde Loki dank des Helm-Charts Loki-Stack automatisch als Datenquelle hinzugefügt , sodass Sie Loki sofort problemlos verwenden können.
Wählen Sie in der Grafana-Web-Benutzeroberfläche in der Seitenleiste „Erkunden“ aus.
Sie werden mit dem folgenden Protokollbrowser begrüßt. Anstatt Ihre eigene Abfrage manuell zu schreiben, können Sie dieses Menü zum Erstellen verwenden.
Werfen wir einen Blick auf die Protokolle für den Redis-Master-0-Pod. Klicken Sie auf „ Pod“ und wählen Sie „Redis-Master-0“ aus:
Wenn Sie einige erweiterte Abfragen ausführen möchten, empfehlen wir Ihnen dringend, einen Blick auf die von Grafana hier bereitgestellte Dokumentation zur Log Query Language (LogQL) zu werfen .
Mehr lesen: Docker Compose vs. Kubernetes: Die 4 wichtigsten Unterschiede
Fazit
Die meisten Unternehmen wünschen sich eine einfache und kostengünstige Lösung. Loki bietet all dies in einer Lösung, die Protokolldateien von Apps und Diensten sammelt, speichert und analysiert. Es bietet Ihnen einen neuen Ansatz für die zentrale Protokollverwaltung. Die einfache Einrichtung und Integration mit Grafana ermöglicht es Ihnen, Metriken und Protokolle an einem Ort zu überwachen, was es zu einer soliden Wahl macht.
Bluelight Consulting ist ein Nearshore-DevOps- und Software-Outsourcing-Unternehmen, das Startups, SaaS und Unternehmen mit innovativen Lösungen unterstützt.
Mit Nearshore Boost, unserem Nearshore-Softwareentwicklungsdienst, können Sie kostengünstiger als die Einstellung von Mitarbeitern im eigenen Unternehmen sicherstellen, dass Ihr Unternehmen mit einem erweiterten Team und einer größeren globalen Präsenz wettbewerbsfähig bleibt und flexibel auf die Bedürfnisse Ihrer Kunden reagieren kann.
Erfahren Sie mehr über unsere Dienstleistungen, indem Sie noch heute eine kostenlose Beratung bei uns buchen!