Prometheus: http_headers와 proxy_url로 대상 API 키 설정하기
스크레이프 http_headers를 proxy_url과 결합하고 소스 서버의 API 헤더를 중개자로 보내는 CONNECT 헤더와 분리해 유지합니다.
HTTPS 메트릭 엔드포인트가 API 키를 요구하고 Prometheus가 포워드 프록시를 사용해야 한다면, 헤더를 스크레이프 요청 자체에 설정합니다. http_headers를 지원하는 Prometheus 버전에서는 다음과 같이 구성합니다.
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']
파일에는 의도한 대상 API 키가 들어 있으며 Prometheus 실행 환경에서 읽을 수 있어야 합니다. 컨테이너에서는 해당 컨테이너 쪽 경로에 마련하십시오.
http_headers는 metrics.example로 가는 요청에 X-API-Key를 붙입니다. 일반적인 HTTPS CONNECT 터널에서는 그 헤더가 대상의 TLS 안쪽으로 이동합니다. 중개자는 연결을 제공하며 터널을 허용해야 합니다. 공용 중개자가 허용되는 공개 메트릭 엔드포인트라면 HTTP 프록시 목록이 계정 없는 proxy_url 후보를 제공합니다. API 키는 대상 요청 쪽에 두십시오.
proxy_connect_header의 목적지는 다릅니다. 중개자는 CONNECT 시점에 그 헤더를 받습니다. 대상 API 키를 그곳에 두면 메트릭 서버로 가는 HTTPS 요청 헤더로 전달되지 않습니다.
실제 메트릭 호스트 이름과 경로는 스크레이프 구성에 유지하십시오. Prometheus는 자체적으로 설정하는 헤더도 임의 덮어쓰기로부터 보호하므로, 이 API 키에는 지원되는 사용자 지정 헤더 필드를 사용하십시오.