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 клуч користете ги поддржаните полиња за приспособени заглавија.