STACKIT Logs – Label-basierte Log-Aggregation
Klassische Log-Systeme indizieren den gesamten Inhalt jeder Nachricht – das kostet Speicher und wird bei hohem Volumen teuer. STACKIT Logs geht einen anderen Weg: Statt Volltextindizierung setzt der Service auf label-basierte Aggregation, inspiriert von Grafana Loki. Du suchst über Labels und filterst den Inhalt erst im zweiten Schritt – schnell, effizient und kostengünstig.
Was ist STACKIT Logs?
STACKIT Logs ist ein Managed-Logging-Service, der auf dem Loki-Prinzip basiert:
- Label-basierte Speicherung – Logs werden nicht volltextindiziert, sondern über Labels (Key-Value-Paare) organisiert. Das reduziert Speicherkosten drastisch.
- LogQL-Abfragen – Eine mächtige Query-Sprache, die Label-Filter mit Regex- und Pattern-Matching kombiniert.
- Hochvolumen-optimiert – Ideal für Kubernetes-Cluster und Microservices, die Tausende Log-Zeilen pro Sekunde erzeugen.
- Grafana-Integration – Native Anbindung an Grafana-Dashboards für Visualisierung und Alerting.
- Multi-Tenancy – Strikte Trennung der Logs nach Projekt-ID.
Tutorial: STACKIT Logs einrichten und abfragen
1. Logs-Instanz erstellen
Erstelle eine STACKIT-Logs-Instanz:
stackit observability instance create \
--project-id your-project-id \
--name "prod-logs" \
--plan "logs-standard"
2. Promtail als Log-Shipper konfigurieren
Installiere Promtail auf deinem Kubernetes-Cluster:
config:
clients:
- url: "https://logs.observability.eu01.stackit.cloud/loki/api/v1/push"
tenant_id: "your-project-id"
scrape_configs:
- job_name: kubernetes
kubernetes_sd_configs:
- role: pod
relabel_configs:
- source_labels: [__meta_kubernetes_namespace]
target_label: namespace
- source_labels: [__meta_kubernetes_pod_name]
target_label: pod
3. Logs mit LogQL abfragen
Öffne Grafana und nutze LogQL, um deine Logs zu durchsuchen:
# Alle Logs aus dem Namespace "production"
{namespace="production"}
# Fehler-Logs eines bestimmten Pods
{namespace="production", pod=~"api-.*"} |= "error"
# JSON-Felder parsen und filtern
{app="checkout"} | json | status_code >= 500
# Aggregation: Fehler pro Minute
rate({app="api"} |= "error" [1m])
4. Alert auf Log-Muster erstellen
Definiere einen Alert in Grafana, der bei gehäuften Fehlern auslöst:
groups:
- name: log-alerts
rules:
- alert: HighErrorLogRate
expr: sum(rate({app="api"} |= "error" [5m])) > 10
for: 5m
annotations:
summary: "Mehr als 10 Fehler-Logs pro Sekunde in app=api"
Nächste Schritte
- Nutze strukturierte Labels konsequent (z. B.
app,env,team), um Abfragen effizient zu halten. - Kombiniere STACKIT Logs mit Metriken und Traces für vollständige Observability.
- Richte Recording Rules ein, um häufig genutzte Aggregationen vorzuberechnen.
- Vergleiche STACKIT Logs (label-basiert) mit LogMe (Volltextsuche), um den passenden Service für deinen Use Case zu wählen.