Site icon bintorosoft.com

Metrics Pipeline: Prometheus + exporters für Container und Host

Penguin with glasses and a surprised look on his face is looking at a laptop on white background.

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:

Komponentenübersicht

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

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

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

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

7. Netzwerkkonzept

Alle Monitoring-Services laufen im Compose-Netzwerk monitoring. DNS-Namen verwenden, um Scrape-Ziele zu erreichen.

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

9. Security Best Practices

10. Betrieb und Wartung

Monitoring-Pipeline regelmäßig überprüfen:

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:

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Exit mobile version