Prometheus: ställ in en mål-API-nyckel med http_headers och proxy_url
Kombinera scrape-http_headers med proxy_url och håll källserverns API-huvuden åtskilda från CONNECT-huvudena som skickas till mellanhanden.
När en HTTPS-mätpunkt kräver en API-nyckel och Prometheus måste använda en vidarebefordrande proxy, ställs huvudet in på själva scrape-begäran. För en Prometheus-version som stöder 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']
Filen innehåller den avsedda mål-API-nyckeln och måste vara läsbar i Prometheus körningsmiljö. I en container måste den finnas på den containerinterna sökvägen.
http_headers sätter X-API-Key på begäran till metrics.example. Genom en vanlig HTTPS CONNECT-tunnel färdas huvudet inuti destinationens TLS. Mellanhanden tillhandahåller anslutningen och måste tillåta tunneln. För en offentligt nåbar mätpunkt där offentliga mellanhänder är tillåtna ger HTTP-proxylistan kandidater för proxy_url utan konto; behåll API-nyckeln på begäran till destinationen.
proxy_connect_header har en annan destination: mellanhanden tar emot dessa huvuden vid CONNECT. Att placera en mål-API-nyckel där levererar den inte som HTTPS-begäranshuvud till mätservern.
Behåll det faktiska värdnamnet och sökvägen för mätvärdena i scrape-konfigurationen. Prometheus skyddar också de huvuden som det sätter själv mot godtyckliga överskrivningar, så använd de stödda fälten för anpassade huvuden för den här API-nyckeln.