Prometheus: een doel-API-sleutel instellen met http_headers en proxy_url
Combineer http_headers van de scrape met proxy_url en houd de API-headers van de bronserver gescheiden van de CONNECT-headers naar de tussenpartij.
Wanneer een HTTPS-metrics-endpoint een API-sleutel vereist en Prometheus een forward-proxy moet gebruiken, stel je de header in op het scrape-verzoek zelf. Voor een Prometheus-versie die http_headers ondersteunt:
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']
Het bestand bevat de beoogde doel-API-sleutel en moet leesbaar zijn in de uitvoeromgeving van Prometheus. In een container moet het op dat pad aan de containerzijde beschikbaar zijn.
http_headers zet X-API-Key op het verzoek naar metrics.example. Via een normale HTTPS CONNECT-tunnel reist die header binnen de TLS van de bestemming. De tussenpartij levert de verbinding en moet de tunnel toestaan. Voor een openbaar bereikbaar metrics-endpoint waar openbare tussenpartijen zijn toegestaan, biedt de HTTP-proxylijst kandidaten voor de proxy_url zonder account; houd de API-sleutel op het verzoek naar de bestemming.
proxy_connect_header heeft een andere bestemming: de tussenpartij ontvangt die headers bij CONNECT. Een doel-API-sleutel daar plaatsen levert die niet als HTTPS-verzoekheader aan de metricsserver.
Houd de werkelijke metrics-hostnaam en het pad in de scrape-configuratie. Prometheus beschermt ook de headers die het zelf instelt tegen willekeurige overschrijvingen, dus gebruik voor deze API-sleutel de ondersteunde velden voor aangepaste headers.