Prometheus: Menetapkan Kunci API Target dengan http_headers dan proxy_url
Gabungkan http_headers scrape dengan proxy_url dan pisahkan header API server sumber dari header CONNECT yang dikirim ke perantara.
Ketika endpoint metrik HTTPS memerlukan kunci API dan Prometheus harus memakai proxy penerus, atur header pada permintaan scrape itu sendiri. Untuk versi Prometheus yang mendukung 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']
File tersebut berisi kunci API target yang dimaksud dan harus dapat dibaca di lingkungan eksekusi Prometheus. Di dalam kontainer, sediakan pada jalur sisi kontainer itu.
http_headers menempatkan X-API-Key pada permintaan ke metrics.example. Melalui terowongan HTTPS CONNECT biasa, header itu berjalan di dalam TLS tujuan. Perantara menyediakan konektivitas dan harus mengizinkan terowongan. Untuk endpoint metrik yang dapat dijangkau publik dan mengizinkan perantara publik, daftar proxy HTTP menyediakan kandidat proxy_url tanpa akun; pertahankan kunci API pada permintaan tujuan.
proxy_connect_header memiliki tujuan lain: perantara menerima header tersebut saat CONNECT. Menempatkan kunci API target di sana tidak mengantarkannya sebagai header permintaan HTTPS ke server metrik.
Pertahankan nama host dan jalur metrik yang sebenarnya di konfigurasi scrape. Prometheus juga melindungi header yang ditetapkannya sendiri dari penimpaan sembarangan, jadi gunakan kolom header khusus yang didukung untuk kunci API ini.