Sobes.tech
Middle

Wie richtet man Clients ein, um Metriken an Prometheus zu übertragen?

sobes.tech KI

Antwort von AI

Um Daten an Prometheus zu übertragen, müssen Exporter verwendet werden. Exporter sind kleine Dienste, die einen HTTP-Endpunkt öffnen, der Metriken in einem für Prometheus verständlichen Format enthält.

Hauptmethoden:

  1. Verwendung offizieller und Drittanbieter-Exporter:

    • Es gibt fertige Exporter für viele beliebte Dienste und Systeme: node_exporter (Betriebssystemmetriken), mysqld_exporter (MySQL-Metriken), kube-state-metrics (Kubernetes-Metriken) usw.
    • Die Konfiguration besteht darin, den Exporter auf dem Zielserver zu installieren und seine Adresse in der Prometheus-Konfiguration anzugeben.
  2. Instrumentierung von Anwendungen:

    • Entwickler können Code in ihre Anwendungen einfügen, um Metriken direkt bereitzustellen.
    • Prometheus bietet Client-Bibliotheken für verschiedene Programmiersprachen (Go, Java, Python, Ruby usw.).
    • Diese Bibliotheken ermöglichen die Erstellung von Zählern, Messgeräten, Histogrammen und Zusammenfassungen, und öffnen dann einen HTTP-Endpunkt für die Sammlung durch Prometheus.
  3. Textfile Collector (für node_exporter):

    • node_exporter hat einen Collector textfile, der Metriken aus Dateien in einem bestimmten Format lesen kann.
    • Dies ist nützlich für periodische Skripte oder Aufgaben, die Metriken generieren.
  4. Pushgateway:

    • Pushgateway wird für kurzlebige oder Batch-Aufgaben verwendet, die nicht direkt von Prometheus gesammelt werden können (da sie möglicherweise zum Zeitpunkt der Sammlung nicht existieren).
    • Die Anwendung sendet ihre Metriken an Pushgateway, und Prometheus sammelt die Daten von Pushgateway.
# Beispiel für eine Prometheus-Konfiguration (prometheus.yml)
scrape_configs:
  - job_name: 'node_exporter_servers' # Name des Sammeljobs
    static_configs:
      - targets: ['server1:9100', 'server2:9100'] # Liste der Hosts/Ports, auf denen `node_exporter` läuft

  - job_name: 'application_metrics' # Job zum Sammeln von Anwendungsmetriken
    metrics_path: /metrics # Pfad, unter dem die Anwendung Metriken bereitstellt
    static_configs:
      - targets: ['application-host:8080'] # Adresse der Anwendung

  - job_name: 'pushgateway' # Job zum Sammeln von Metriken aus Pushgateway
    honor_labels: true # Wichtig für die korrekte Verarbeitung der Labels von Pushgateway
    static_configs:
      - targets: ['pushgateway-host:9091'] # Adresse des Pushgateway

Nach der Konfiguration der Exporter oder der Instrumentierung der Anwendungen wird Prometheus die angegebenen Endpunkte regelmäßig abfragen (scraping), um Metriken zu sammeln.