Prometheus: sæt en mål-API-nøgle med http_headers og proxy_url
Kombiner scrape-http_headers med proxy_url, og hold kildeserverens API-headere adskilt fra de CONNECT-headere, der sendes til mellemleddet.
Når et HTTPS-metrics-endpoint kræver en API-nøgle, og Prometheus skal bruge en videresendt proxy, sættes headeren på selve scrape-anmodningen. Til en Prometheus-version, der understøtter 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 indeholder den tilsigtede mål-API-nøgle og skal kunne læses i Prometheus' kørselsmiljø. I en container skal den være tilgængelig på den sti på containersiden.
http_headers sætter X-API-Key på anmodningen til metrics.example. Gennem en normal HTTPS CONNECT-tunnel rejser headeren inde i destinationens TLS. Mellemleddet leverer forbindelsen og skal tillade tunnelen. Til et offentligt tilgængeligt metrics-endpoint, hvor offentlige mellemled er tilladte, giver HTTP-proxy-listen kandidater til proxy_url uden konto; behold API-nøglen på anmodningen til destinationen.
proxy_connect_header har en anden destination: mellemleddet modtager de headere ved CONNECT. At sætte en mål-API-nøgle der leverer den ikke som HTTPS-anmodningsheader til metrics-serveren.
Behold det faktiske metrics-hostnavn og den faktiske sti i scrape-konfigurationen. Prometheus beskytter også de headere, det selv sætter, mod vilkårlige overskrivninger, så brug de understøttede felter til brugerdefinerede headere til denne API-nøgle.