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 використовуйте підтримувані поля користувацьких заголовків.