
Docker Compose auf dem VPS: Webserver, Datenbank & Reverse Proxy richtig betreiben
Praxisnaher Guide für Docker Compose auf dem VPS: Webserver, Datenbank, Reverse Proxy, TLS, Backups, Updates und Sicherheit richtig planen und betreiben.
In der modernen IT-Infrastruktur ist professionelles Monitoring kein Luxus mehr, sondern eine absolute Notwendigkeit. Prometheus und Grafana haben sich als das führende Open-Source-Stack für Metriken-Sammlung, -Speicherung und -Visualisierung etabliert. Seit der ersten Veröffentlichung im Jahr 2016 hat sich dieses Duo kontinuierlich weiterentwickelt und ist 2026 aus den Rechenzentren dieser Welt nicht mehr wegzudenken.
Prometheus wurde ursprünglich bei SoundCloud entwickelt und hat sich schnell zum De-facto-Standard für Container-Monitoring entwickelt. Besonders in Kombination mit Kubernetes ist Prometheus die erste Wahl, da es die dynamische Natur von containerisierten Umgebungen nativ unterstützt. Grafana wiederum ergänzt Prometheus mit einer leistungsstarken Visualisierungsschicht, die aus rohen Metriken aussagekräftige Dashboards erstellt.
Die Kombination beider Tools bietet Unternehmen jeder Größe eine kostengünstige Alternative zu kommerziellen Lösungen wie Datadog, New Relic oder Dynatrace. Mit aktiver Community-Entwicklung, regelmäßigen Releases und einer wachsenden Zahl an Exportern und Integrationen ist der Stack zukunftssicher und flexibel erweiterbar.
Die Architektur von Prometheus folgt einem Pull-basierten Ansatz, bei dem der Prometheus-Server aktiv Metriken von konfigurierten Zielen abruft. Diese Ziele können HTTP-Endpunkte von Anwendungen sein, die Metriken im Prometheus-Exposition-Format bereitstellen. Alternativ können Push-Gateways verwendet werden, wenn das Pull-Modell nicht praktikabel ist, etwa bei Batch-Jobs.
Die gesammelten Daten werden in einer zeitreihenbasierten Datenbank (TSDB) gespeichert, die speziell für die effiziente Speicherung und Abfrage zeitstempelbasierter Daten optimiert ist. Jede Zeitreihe wird durch einen Metrik-Namen und ein Set von Labels identifiziert, was eine flexible Aggregation und Filterung ermöglicht. Die Daten werden lokal auf dem Prometheus-Server gespeichert, können aber auch an Remote-Storage-Backends wie Thanos, Cortex oder Mimir übertragen werden.
Die Komponenten im Überblick:
| Komponente | Funktion | Empfehlung 2026 |
|---|---|---|
| Prometheus Server | Metriken-Sammlung und -Speicherung | Version 2.55+ mit TSDB v2 |
| Alertmanager | Verarbeitung und Versand von Alerts | Mit Slack/PagerDuty-Integration |
| Pushgateway | Empfang von Metriken aus kurzlebigen Jobs | Nur für Batch-Jobs verwenden |
| Exporters | Bereitstellung von Metriken aus Drittsystemen | node_exporter, blackbox_exporter |
| Grafana | Visualisierung und Dashboarding | Version 11+ mit Loki-Integration |
Die Installation von Prometheus gestaltet sich auf modernen Linux-Distributionen unkompliziert. Wir empfehlen die Verwendung der offiziellen Binärpakete oder der Distribution-spezifischen Paketmanager. Für produktive Umgebungen ist der Betrieb als systemd-Dienst empfehlenswert, da dieser automatische Neustarts und ein zentrales Logging ermöglicht.
Zunächst erstellen wir einen dedizierten Benutzer für den Prometheus-Dienst, um Sicherheitsaspekte zu berücksichtigen. Anschließend laden wir die aktuelle Version von der offiziellen Website herunter und entpacken diese in das Verzeichnis /opt/prometheus. Die Konfigurationsdatei prometheus.yml bildet das Herzstück der gesamten Konfiguration.
Eine minimale Konfiguration könnte wie folgt aussehen:
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'node_exporter'
static_configs:
- targets: ['localhost:9100']
Grafana lässt sich auf verschiedenen Wegen installieren. Die einfachste Methode ist die Verwendung des offiziellen APT-Repositorys unter Debian/Ubuntu oder des YUM-Repositorys unter RHEL/CentOS. Alternativ stehen offizielle Docker-Images zur Verfügung, die eine isolierte und reproduzierbare Bereitstellung ermöglichen. Für Produktionsumgebungen empfehlen wir die Verwendung von Docker oder die manuelle Installation als systemd-Dienst.
Nach der Installation erreichen Sie die Grafana-Weboberfläche standardmäßig unter http://localhost:3000. Die Standard-Anmeldedaten lauten admin/admin, wobei Sie bei der ersten Anmeldung aufgefordert werden, ein neues sicheres Passwort zu verlegen. Aus Sicherheitsgründen sollten Sie diese Anmeldedaten umgehend ändern und die Authentifizierung über LDAP, OAuth oder SAML konfigurieren.
Die Anbindung an Prometheus erfolgt in wenigen Schritten:
Die vier goldenen Signale sind das Fundament jedes professionellen Monitorings: Latenz, Traffic, Fehler und Sättigung. Diese Metriken geben Ihnen einen umfassenden Überblick über den Zustand Ihrer Anwendungen und Infrastruktur. Ergänzend dazu hat Google die USE-Methode (Utilization, Saturation, Errors) für Infrastrukturkomponenten und die RED-Methode (Rate, Errors, Duration) für Services populär gemacht.
Bei der Definition von Metriken sollten Sie stets auf aussagekräftige Namen und ein konsistentes Label-Schema achten. Vermeiden Sie hochkardinale Labels wie User-IDs oder IP-Adressen, da diese die Performance der TSDB beeinträchtigen können. Stattdessen empfiehlt sich die Verwendung von vorab aggregierten Dimensionen wie Region, Service-Version oder Umgebung.
Empfohlene Standard-Exporter für 2026:
| Exporter | Einsatzgebiet | Port |
|---|---|---|
| node_exporter | Hardware- und OS-Metriken | 9100 |
| cadvisor | Container-Metriken | 8080 |
| blackbox_exporter | Probes für Endpunkte | 9115 |
| mysqld_exporter | MySQL/MariaDB-Datenbanken | 9104 |
| redis_exporter | Redis-Datenbanken | 9121 |
| nginx_exporter | Nginx-Webserver | 9113 |
Grafana bietet eine intuitive Drag-and-Drop-Oberfläche für die Erstellung von Dashboards, aber auch JSON-basierte Konfigurationen für die versionierte Verwaltung. Für professionelle Setups empfehlen wir die Verwendung von Grafana-Provisioning, bei dem Dashboards, Data Sources und Alerting-Regeln als Code definiert werden. Dies ermöglicht eine reproduzierbare Bereitstellung und nahtlose Integration in CI/CD-Pipelines.
Bei der Dashboard-Gestaltung sollten Sie einige Design-Prinzipien beachten: Verwenden Sie konsistente Farbschemata, gruppieren Sie verwandte Panels logisch und nutzen Sie Variablen, um dynamische und wiederverwendbare Dashboards zu erstellen. Die Template-Variablen in Grafana ermöglichen es, Dashboards zur Laufzeit anzupassen, etwa nach Umgebung, Region oder Service.
Beliebte Community-Dashboards für Prometheus finden Sie auf grafana.com. Diese können als Grundlage für eigene Anpassungen dienen und sparen wertvolle Zeit bei der initialen Einrichtung. Für gängige Technologien wie Linux-Server, Kubernetes-Cluster oder Datenbanken existieren bereits Hunderte vorgefertigter Dashboards.
Der Alertmanager ist eine eigenständige Komponente, die für die Verarbeitung, Gruppierung und Weiterleitung von Alerts verantwortlich ist. Prometheus selbst generiert lediglich Alert-Zustände basierend auf definierten Regeln; die eigentliche Benachrichtigung übernimmt der Alertmanager. Diese Trennung ermöglicht eine flexible und zuverlässige Alerting-Pipeline.
Eine typische Alerting-Regel in Prometheus könnte wie folgt aussehen:
groups:
- name: example
rules:
- alert: HighCpuUsage
expr: 100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 80
for: 5m
labels:
severity: warning
annotations:
summary: "Hohe CPU-Auslastung auf {{ $labels.instance }}"
description: "CPU ist seit 5 Minuten über 80%"
Im Alertmanager konfigurieren Sie anschließend die Empfänger und Routing-Regeln. Häufig verwendete Integrationen sind Slack, Microsoft Teams, PagerDuty, E-Mail und Webhooks. Die Inhibition- und Silencing-Features helfen dabei, Alert-Stürme zu vermeiden und geplante Wartungsfenster abzubilden.
In wachsenden Umgebungen stößt eine einzelne Prometheus-Instanz schnell an ihre Grenzen. Für hochverfügbare Setups empfehlen wir den Betrieb von mindestens zwei Prometheus-Servern, die identische Daten sammeln. Sogenannte HA-Pairs stellen sicher, dass bei Ausfall einer Instanz die andere nahtlos weiterarbeitet und keine Lücken in der Zeitreihe entstehen.
Für die langfristige Speicherung und globale Abfragen über mehrere Cluster hinweg haben sich Tools wie Thanos, Cortex und Grafana Mimir etabliert. Diese bieten Object-Storage-Backends (S3, GCS, Azure Blob), horizontale Skalierung und global abfragbare Views. Thanos ist dabei besonders beliebt in Open-Source-Setups, während Mimir als kommerzielles Produkt von Grafana Labs zusätzliche Features bietet.
Eine moderne HA-Architektur könnte folgende Komponenten umfassen:
In Kubernetes-Umgebungen hat sich der kube-prometheus-stack als De-facto-Standard etabliert. Dieser Helm-Chart bündelt Prometheus, Alertmanager, Grafana und eine umfangreiche Sammlung an vorkonfigurierten Recording Rules, Alerts und Dashboards. Die Installation erfolgt mit einem einzigen Helm-Kommando und ist in wenigen Minuten produktionsbereit.
Die Service-Discovery in Kubernetes funktioniert automatisch: Prometheus erkennt neue Pods, Services und Endpoints, sofern diese entsprechende Annotations tragen. Der kubernetes_sd_config-Mechanismus ermöglicht es, dynamische Ziele basierend auf Cluster-State zu scrapen, ohne manuelle Konfigurationsänderungen vorzunehmen.
Mit dem ServiceMonitor-Custom-Resource-Definition (CRD) der Prometheus Operator-Architektur wird die Konfiguration deklarativ im Cluster verwaltet. Dies ermöglicht eine saubere Trennung der Verantwortlichkeiten und eine einfache Integration in GitOps-Workflows mit Argo CD oder Flux.
Die Absicherung von Prometheus und Grafana sollte von Anfang an mitgedacht werden. Standardmäßig laufen beide Dienste unverschlüsselt und ohne Authentifizierung, was in Produktionsumgebungen ein erhebliches Sicherheitsrisiko darstellt. Aktivieren Sie unbedingt TLS für die HTTP-Endpunkte und beschränken Sie den Netzwerkzugriff über Firewalls oder Network Policies.
Für die Authentifizierung in Grafana stehen verschiedene Methoden zur Verfügung: Built-in-Authentifizierung mit lokalen Benutzern, LDAP/Active Directory-Integration, OAuth-Provider wie Google oder GitHub, SAML für Enterprise-Umgebungen und Proxy-Authentifizierung. Wählen Sie die Methode, die zu Ihrer bestehenden Infrastruktur passt.
Empfohlene Sicherheitsmaßnahmen im Überblick:
Bei wachsenden Datenmengen ist Performance-Tuning unerlässlich. Die TSDB von Prometheus ist auf Effizienz optimiert, kann aber bei falscher Konfiguration an Grenzen stoßen. Wichtige Stellschrauben sind das Scrape-Interval, die Retention-Time und die Komprimierungseinstellungen. Für hochfrequente Metriken empfiehlt sich ein kürzeres Retention mit Downsampling auf 5-Minuten-Granularität.
Die Abfrageperformance lässt sich durch Recording Rules erheblich verbessern. Diese vorberechneten Aggregationen werden im Hintergrund ausgeführt und reduzieren die Last bei Dashboard-Abfragen drastisch. Komplexe PromQL-Expressions, die in mehreren Dashboards verwendet werden, sind ideale Kandidaten für Recording Rules.
Speicheroptimierung durch Komprimierung und Downsampling:
storage.tsdb:
retention.time: 30d
retention.size: 50GB
# In Thanos
objstore.config: |
type: S3
config:
bucket: thanos
endpoint: s3.amazonaws.com
Das Prometheus-Grafana-Stack hat sich über die Jahre als robust, flexibel und zukunftssicher erwiesen. Die aktive Community, die breite Unterstützung durch die Industrie und die kontinuierliche Weiterentwicklung machen es zur ersten Wahl für modernes Monitoring. Egal ob kleine Homelab-Umgebung oder großes Enterprise-Cluster - die Architektur skaliert mit Ihren Anforderungen.
Im Vergleich zu kommerziellen Lösungen bietet der Stack erhebliche Kostenvorteile bei gleichzeitig voller Kontrolle über die eigenen Daten. Die Investition in den Aufbau von Know-how zahlt sich langfristig aus, da die erlernten Fähigkeiten auf viele verwandte Tools übertragbar sind. Mit den richtigen Best Practices und einer soliden Architektur schaffen Sie ein Monitoring-Fundament, das Sie über Jahre begleiten wird.
Bei hostazar.com unterstützen wir Sie gerne bei der Planung, Implementierung und dem Betrieb Ihrer Monitoring-Infrastruktur. Unsere Experten helfen Ihnen, die optimale Architektur für Ihre Anforderungen zu entwerfen und begleiten Sie auf dem Weg zu einem zuverlässigen und aussagekräftigen Monitoring.

Praxisnaher Guide für Docker Compose auf dem VPS: Webserver, Datenbank, Reverse Proxy, TLS, Backups, Updates und Sicherheit richtig planen und betreiben.