Gdy punkt końcowy metryk HTTPS wymaga klucza API, a Prometheus musi korzystać z proxy wychodzącego, ustaw nagłówek w samym żądaniu scrapowania. Dla wersji Prometheusa obsługującej http_headers:

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']

Plik zawiera zamierzony klucz API celu i musi być czytelny w środowisku wykonawczym Prometheusa. W kontenerze udostępnij go pod tą ścieżką po stronie kontenera.

http_headers umieszcza X-API-Key w żądaniu do metrics.example. Przez zwykły tunel HTTPS CONNECT ten nagłówek podróżuje wewnątrz TLS celu. Pośrednik zapewnia łączność i musi zezwalać na tunel. Dla publicznie dostępnego punktu końcowego metryk, w którym dozwolone są publiczne pośredniki, lista proxy HTTP oferuje kandydatów do proxy_url bez konta; zachowaj klucz API w żądaniu do celu.

proxy_connect_header ma inne przeznaczenie: pośrednik odbiera te nagłówki podczas CONNECT. Umieszczenie tam klucza API celu nie dostarcza go serwerowi metryk jako nagłówka żądania HTTPS.

Zachowaj rzeczywistą nazwę hosta i ścieżkę metryk w konfiguracji scrapowania. Prometheus chroni też nagłówki, które sam ustawia, przed dowolnym nadpisaniem, więc dla tego klucza API używaj obsługiwanych pól nagłówków niestandardowych.

Powiązane artykuły