Wenn ein HTTPS-Metrics-Endpunkt einen API-Schlüssel verlangt und Prometheus einen Forward-Proxy nutzen muss, wird der Header direkt an der Scrape-Anfrage konfiguriert. Für eine Prometheus-Version, die http_headers unterstützt:

scrape_configs:
  - job_name: secured_metrics
    scheme: https
    metrics_path: /metrics
    proxy_url: http://proxy.example:8080
    http_headers:
      X-API-Key:
        files:
          - /etc/prometheus/secrets/metrics-api-key
    static_configs:
      - targets: ['metrics.example:443']

Die Datei enthält den vorgesehenen Ziel-API-Schlüssel und muss in der Ausführungsumgebung von Prometheus lesbar sein. In einem Container ist sie unter genau diesem Pfad im Container bereitzustellen.

http_headers legt X-API-Key auf die Anfrage an metrics.example. Durch einen normalen HTTPS-CONNECT-Tunnel wandert dieser Header innerhalb der TLS-Verbindung zum Ziel. Der Vermittler stellt die Konnektivität bereit und muss den Tunnel zulassen. Für einen öffentlich erreichbaren Metrics-Endpunkt, bei dem öffentliche Vermittler erlaubt sind, liefert die HTTP-Proxy-Liste Kandidaten für die proxy_url ohne Konto; der API-Schlüssel bleibt an der Anfrage an das Ziel.

proxy_connect_header hat ein anderes Ziel: Der Vermittler erhält diese Header beim CONNECT. Ein Ziel-API-Schlüssel wird dort nicht als HTTPS-Anfrageheader an den Metrics-Server übermittelt.

Der tatsächliche Metrics-Hostname und der Pfad gehören in die Scrape-Konfiguration. Prometheus schützt außerdem die Header, die es selbst setzt, vor beliebigen Überschreibungen; für diesen API-Schlüssel sind daher die unterstützten Felder für eigene Header zu verwenden.

Ähnliche Artikel