Prometheus: ustawianie klucza API celu za pomocą http_headers i proxy_url
Połącz http_headers scrapowania z proxy_url i trzymaj nagłówki API serwera źródłowego osobno od nagłówków CONNECT wysyłanych do pośrednika.
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.