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

Схожі статті