Prometheus: đặt khóa API đích với http_headers và proxy_url
Kết hợp http_headers của quá trình thu thập với proxy_url và tách các tiêu đề API của máy chủ nguồn khỏi các tiêu đề CONNECT gửi tới trung gian.
Khi một điểm cuối số liệu HTTPS yêu cầu khóa API và Prometheus phải dùng proxy chuyển tiếp, hãy đặt tiêu đề ngay trên chính yêu cầu thu thập. Với phiên bản Prometheus hỗ trợ 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']
Tệp chứa khóa API đích dự định và phải đọc được trong môi trường thực thi của Prometheus. Trong vùng chứa, hãy cung cấp nó tại đường dẫn phía vùng chứa đó.
http_headers đặt X-API-Key trên yêu cầu tới metrics.example. Qua một đường hầm HTTPS CONNECT thông thường, tiêu đề đó đi bên trong TLS của đích. Trung gian cung cấp kết nối và phải cho phép đường hầm. Với điểm cuối số liệu truy cập công khai nơi các trung gian công cộng được phép, danh sách proxy HTTP cung cấp ứng viên cho proxy_url không cần tài khoản; giữ khóa API trên yêu cầu tới đích.
proxy_connect_header có đích khác: trung gian nhận các tiêu đề đó khi CONNECT. Đặt khóa API đích ở đó không chuyển nó tới máy chủ số liệu như một tiêu đề yêu cầu HTTPS.
Giữ tên máy chủ và đường dẫn số liệu thực tế trong cấu hình thu thập. Prometheus cũng bảo vệ các tiêu đề do nó tự đặt khỏi bị ghi đè tùy tiện, vì vậy với khóa API này hãy dùng các trường tiêu đề tùy chỉnh được hỗ trợ.