Eine konsistente Metrics-Pipeline ist entscheidend für die Überwachung von Container-Umgebungen und Host-Systemen. Prometheus in Kombination mit spezifischen Exportern ermöglicht das Erfassen, Aggregieren und Visualisieren von Metriken. In diesem Tutorial zeigen wir praxisnah, wie Container- und Host-Metriken erfasst und in Compose-Stacks integriert werden.
1. Architektur einer Metrics-Pipeline
Eine typische Metrics-Pipeline besteht aus drei zentralen Komponenten:
- Exporter: Sammeln Metriken aus Anwendungen, Containern oder Hosts
- Prometheus Server: Scraping, Storage und Alerting
- Visualisierung/Alerting: Grafana, Alertmanager
Komponentenübersicht
- Node Exporter für Host-Systemmetriken
- cAdvisor für Container-Metriken
- Prometheus Server als zentrale Datenbank
- Grafana für Dashboards und Alerting
2. Vorbereitung des Docker Compose Stacks
Setzen Sie die Compose-Datei auf Version 3.9 oder höher und definieren Sie Netzwerke und Volumes:
version: "3.9"
networks:
monitoring:
volumes:
prometheus-data:
3. Prometheus Server Service
Der Prometheus Server wird als eigener Service betrieben:
services:
prometheus:
image: prom/prometheus:latest
container_name: prometheus
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml:ro
- prometheus-data:/prometheus
ports:
- "9090:9090"
networks:
- monitoring
Wichtige Punkte
- Readonly-Mount für Konfigurationsdatei
- Persistenter Volume für Daten
- Expose Port 9090 nur intern oder via Reverse Proxy
4. Exporter Services für Container
cAdvisor liefert Container-spezifische Metriken:
cadvisor:
image: gcr.io/cadvisor/cadvisor:latest
container_name: cadvisor
volumes:
- /:/rootfs:ro
- /var/run:/var/run:ro
- /sys:/sys:ro
- /var/lib/docker/:/var/lib/docker:ro
ports:
- "8080:8080"
networks:
- monitoring
Hinweise
- Nur notwendige Host-Pfade mounten
- Readonly Mounts für Sicherheit
- Port 8080 für Prometheus-Scraping
5. Exporter Services für Hosts
Node Exporter liefert Host-Metriken wie CPU, RAM, Disk:
node-exporter:
image: prom/node-exporter:latest
container_name: node-exporter
pid: "host"
network_mode: host
volumes:
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /:/rootfs:ro
command:
- '--path.procfs=/host/proc'
- '--path.sysfs=/host/sys'
- '--collector.filesystem.ignored-mount-points="^/(sys|proc|dev|host|etc)($|/)"'
Wichtige Hinweise
- Host PID und Network Mode für vollständige Metrik-Erfassung
- Readonly-Mounts für Sicherheit
- Filesystem-Collector anpassen für unnötige Mounts ignorieren
6. Prometheus Konfiguration
Scraping-Ziele in prometheus.yml definieren:
global:
scrape_interval: 15s
scrape_configs:
-
job_name: 'cadvisor'
static_configs:
-
targets: ['cadvisor:8080']
-
job_name: 'node'
static_configs:
-
targets: ['node-exporter:9100']
Tipps
- Scrape Intervall an Workload anpassen
- Nur notwendige Services scrapen
- Labels für Filter und Queries nutzen
7. Netzwerkkonzept
Alle Monitoring-Services laufen im Compose-Netzwerk monitoring. DNS-Namen verwenden, um Scrape-Ziele zu erreichen.
- Prometheus greift auf
cadvisorundnode-exporterüber DNS zu - Externe Ports nur nach Bedarf freigeben
- Interne Kommunikation über Compose Netzwerk
8. Visualisierung und Alerting
Grafana als Dashboard- und Alerting-Lösung:
grafana:
image: grafana/grafana:latest
container_name: grafana
ports:
- "3000:3000"
networks:
- monitoring
volumes:
- grafana-data:/var/lib/grafana
- Prometheus als Data Source hinzufügen
- Alerts via Alertmanager konfigurieren
- Dashboards für Container- und Host-Metriken erstellen
9. Security Best Practices
- Readonly-Mounts für alle Exporter
- Nur notwendige Ports exponieren
- Netzwerk-Isolation durch Compose-Netzwerke
- RBAC und Auth für Grafana aktivieren
- Exporter als Non-Root-Container betreiben
10. Betrieb und Wartung
Monitoring-Pipeline regelmäßig überprüfen:
- Logs von Prometheus, cAdvisor, Node Exporter überwachen
- Scrape-Targets testen:
curl http://cadvisor:8080/metrics - Volumes für Persistenz sichern
- Versionen der Exporter regelmäßig aktualisieren
Mit dieser Compose-basierten Metrics-Pipeline lassen sich Container- und Host-Metriken konsistent erfassen und visualisieren. So können Ressourcenverbrauch, Performance-Engpässe und Ausfallrisiken frühzeitig erkannt werden, während Sicherheits- und Best-Practice-Aspekte berücksichtigt bleiben.
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.











