Prometheus: установка ключа API цели с помощью http_headers и proxy_url
Объедините http_headers сканирования с proxy_url и держите заголовки API исходного сервера отдельно от заголовков CONNECT, отправляемых посреднику.
Если конечная точка метрик по HTTPS требует ключ API, а Prometheus должен использовать прямой прокси, задайте заголовок в самом запросе сканирования. Для версии Prometheus, поддерживающей 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']
Файл содержит нужный ключ API цели и должен быть доступен для чтения в среде выполнения Prometheus. В контейнере разместите его по этому пути на стороне контейнера.
http_headers добавляет X-API-Key в запрос к metrics.example. Через обычный туннель HTTPS CONNECT этот заголовок передаётся внутри TLS конечного узла. Посредник обеспечивает соединение и должен разрешать туннель. Для общедоступной конечной точки метрик, где разрешены публичные посредники, список HTTP-прокси предлагает кандидатов для proxy_url без учётной записи; храните ключ API в запросе к цели.
У proxy_connect_header другое назначение: посредник получает эти заголовки при CONNECT. Если поместить туда ключ API цели, он не будет передан серверу метрик как заголовок запроса HTTPS.
Сохраняйте фактические имя хоста и путь метрик в конфигурации сканирования. Prometheus также защищает собственные заголовки от произвольного переопределения, поэтому для этого ключа API используйте поддерживаемые поля пользовательских заголовков.