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.

Relaterede artikler