Back openDesk Edu for a sovereign, open-source education â every vote counts.
Vote nowSave products you love by clicking the heart icon.
Managed Observability Services (Datadog, Grafana Cloud, New Relic) sind leistungsstark, aber teuer. Bei entsprechender Skalierung spart ein selbst gehosteter Grafana + Prometheus + Loki Stack Tausende von Euro pro Monat und gibt Ihnen die volle Kontrolle ĂŒber Retention, Alerting und Data Governance.
Der hier vorgestellte Stack lÀuft auf jeder einzelnen VM mit Docker Compose und lÀsst sich ohne ArchitekturÀnderungen horizontal auf Kubernetes skalieren.
Grafana dient als vereinheitlichte Dashboard-Schicht. Dank auto-provisionierter Datenquellen erfordert die Anbindung von Prometheus (Metrics) und Loki (Logs) nach dem ersten Deployment keine manuelle Konfiguration.
Wichtige Konfigurationsentscheidungen:
Prometheus scrapt Targets nach einem Pull-Modell. Die wichtigste Konfigurationsentscheidung ist das Scrape-Intervall im VerhÀltnis zu den Speicherkosten:
| Scrape-Intervall | TĂ€glicher Speicher (pro Host) | Retention | Use Case |
|---|---|---|---|
| 15s | ~150 MB | 30 Tage | Kritische Infra |
| 30s | ~75 MB | 14 Tage | Standard |
| 60s | ~35 MB | 7 Tage | Nicht-kritisch |
Der Stack verwendet standardmĂ€Ăig 15s fĂŒr Kern-Targets (node_exporter, cAdvisor) und 30s fĂŒr Applikations-Endpunkte. Dies bietet eine gute GranularitĂ€t, ohne den Speicher zu sprengen.
Im Gegensatz zu Elasticsearch indexiert Loki nicht den Log-Inhalt, sondern nur Metadaten-Labels. Das macht den Betrieb dramatisch gĂŒnstiger:
job, instance, container_name identifiziert.Der entscheidende Konfigurationsparameter ist retention_period. Der Stack ist standardmĂ€Ăig auf 14 Tage eingestellt, nach denen Log-Daten automatisch gelöscht werden.
Grafana Alloy ersetzt das bisherige Muster aus Agent / Promtail / Tempo durch ein einziges Binary, das Metriken, Logs und Traces verarbeitet. Die Konfiguration nutzt eine neue DSL namens Alloy syntax (.alloy Dateien):
// Discovery: find all Docker containers
discovery.docker "local" {
host = "unix:///var/run/docker.sock"
}
// Scrape metrics from discovered containers
prometheus.scrape "default" {
targets = discovery.docker.local.targets
forward_to = [prometheus.remote_write.default.receiver]
}
prometheus.remote_write "default" {
endpoint {
url = "http://prometheus:9090/api/v1/write"
}
}
Dies ersetzt das alte Muster, node_exporter + promtail + cadvisor als separate Prozesse auszufĂŒhren.
Die gröĂten Betriebskosten in einem Observability-Stack ist der Speicher. Legen Sie die Retention basierend auf Ihren tatsĂ€chlichen Anforderungen fest:
# Loki: 14 days of raw logs, archive older to S3
# Grafana: snapshot dashboards periodically, don't rely on browser cache
Das integrierte Alerting von Grafana ersetzt den eigenstĂ€ndigen Alertmanager. Alert-Regeln werden gegen Prometheus-Abfragen ausgewertet und ĂŒber Contact Points geroutet:
Dieser Stack lĂ€uft auf einer einzelnen VM mit 2 vCPU / 4 GB RAM fĂŒr Workloads bis zu ca. 50 Hosts. DarĂŒber hinaus: