Ein Monitoring-Stack bestehend aus Grafana, Prometheus und Loki ermöglicht die Erfassung von Metriken, Logs und Visualisierung in Echtzeit. Mit Docker Compose lässt sich ein solcher Stack einfach auf Linux aufsetzen, inklusive persistenter Volumes, Netzwerke und konfigurierbarer Ports. Dieses Tutorial zeigt praxisnah, wie ein stabiler, updatefähiger Monitoring-Stack erstellt wird.
Grundkomponenten eines Monitoring-Stacks
Ein typischer Monitoring-Stack besteht aus:
- Prometheus: Sammlung von Metriken von Hosts und Containern
- Grafana: Visualisierung von Metriken, Dashboards und Alerts
- Loki: Log-Aggregation, Sammlung und Abfrage von Logs
- Volumes: Persistente Speicherung von Konfigurationen und Daten
- Netzwerke: Interne Kommunikation zwischen den Services
Volumes für Persistenz
Volumes sichern Konfigurationen, Dashboards und Log-Daten, damit diese auch nach Neustarts erhalten bleiben.
volumes:
prometheus_data:
grafana_data:
loki_data:
prometheus_datafür Prometheus-Daten und Konfigurationengrafana_datafür Dashboards, User-Einstellungen und Datenloki_datafür Logs und Indexdaten
Netzwerke für interne Kommunikation
Ein separates Netzwerk ermöglicht sichere Kommunikation zwischen Grafana, Prometheus und Loki.
networks:
monitoring_net:
- Alle Services kommunizieren über
monitoring_net - Erleichtert Port-Mapping für externe Zugriffe auf Grafana und Prometheus
Beispiel: docker-compose.yml für Monitoring
version: '3.8'
services:
prometheus:
image: prom/prometheus:latest
container_name: prometheus
volumes:
- prometheus_data:/prometheus
- ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro
ports:
- "9090:9090"
networks:
- monitoring_net
grafana:
image: grafana/grafana:latest
container_name: grafana
environment:
- GF_SECURITY_ADMIN_USER=admin
- GF_SECURITY_ADMIN_PASSWORD=secret
volumes:
- grafana_data:/var/lib/grafana
ports:
- "3000:3000"
networks:
- monitoring_net
depends_on:
- prometheus
- loki
loki:
image: grafana/loki:2.9.1
container_name: loki
command: -config.file=/etc/loki/local-config.yaml
volumes:
- loki_data:/loki
- ./loki/local-config.yaml:/etc/loki/local-config.yaml:ro
ports:
- "3100:3100"
networks:
- monitoring_net
Erklärungen zur Compose-Datei
- Prometheus: Container für Metriken-Sammlung, Konfiguration über Volume
prometheus_data - Grafana: Visualisierung, persistente Speicherung von Dashboards im Volume
grafana_data, Admin-Zugang über Environment-Variablen - Loki: Log-Aggregation, Konfiguration über Volume, Ports für Abfrage
- Volumes: Persistenz für Daten und Konfigurationen
- Netzwerke:
monitoring_netverbindet alle Services intern - depends_on: Sicherstellung der Startreihenfolge für Grafana
Start und Verwaltung des Monitoring-Stacks
Starten Sie den Stack mit:
docker-compose up -d
Zum Stoppen und Entfernen aller Container, Netzwerke und Volumes:
docker-compose down -v
Best Practices
- Volumes für persistente Daten nutzen
- Netzwerke für interne Kommunikation definieren
- Versionierte Images verwenden, um Rollbacks zu erleichtern
- Monitoring und Alerts in Grafana einrichten
- Backups für Prometheus-Daten, Grafana-Dashboards und Loki-Logs erstellen
- Ports nur nach Bedarf öffnen und optional Reverse Proxy einsetzen
- Regelmäßige Updates der Images durchführen
Praxisbeispiele
Monitoring-Stack starten
docker-compose up -d
Logs überwachen
docker-compose logs -f prometheus
docker-compose logs -f grafana
docker-compose logs -f loki
Rollback auf vorherige Version
docker service update --image prom/prometheus:2.49.0 prometheus_service
docker service update --image grafana/grafana:10.0.0 grafana_service
docker service update --image grafana/loki:2.8.2 loki_service
Updatefähigkeit
Durch versionierte Docker Images können Prometheus, Grafana und Loki unkompliziert aktualisiert werden. Persistente Volumes und Konfigurationen bleiben erhalten, sodass Dashboards, Metriken und Logs nicht verloren gehen.
docker-compose pull
docker-compose up -d
Zusammenfassung
Mit Docker Compose lässt sich ein Monitoring-Stack aus Grafana, Prometheus und Loki schnell, sicher und updatefähig auf Linux betreiben. Persistente Volumes, interne Netzwerke und Best Practices wie Backups, Monitoring und Alerts sorgen für einen stabilen und wartbaren Betrieb. Versionierte Images erleichtern Updates und Rollbacks und stellen langfristige Zuverlässigkeit des Monitoring-Systems sicher.
Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3
Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.
Meine Leistungen umfassen:
-
Professionelle Konfiguration von Routern und Switches
-
Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen
-
Erstellung von Topologien und Simulationen in Cisco Packet Tracer
-
Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG
-
Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible
-
Erstellung von Skripten für wiederkehrende Netzwerkaufgaben
-
Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege
-
Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting
Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.











