Lorsqu'un point de terminaison de métriques HTTPS exige une clé d'API et que Prometheus doit passer par un proxy sortant, configurez l'en-tête sur la requête de scrape elle-même. Pour une version de Prometheus prenant en charge 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']

Le fichier contient la clé d'API cible prévue et doit être lisible dans l'environnement d'exécution de Prometheus. Dans un conteneur, fournissez-la à ce chemin côté conteneur.

http_headers place X-API-Key sur la requête vers metrics.example. Via un tunnel HTTPS CONNECT normal, cet en-tête circule à l'intérieur du TLS de destination. L'intermédiaire fournit la connectivité et doit autoriser le tunnel. Pour un point de terminaison de métriques accessible publiquement où les intermédiaires publics sont autorisés, la liste de proxys HTTP fournit des candidats pour proxy_url sans compte ; conservez la clé d'API sur la requête vers la destination.

proxy_connect_header a une autre destination : l'intermédiaire reçoit ces en-têtes lors du CONNECT. Y placer une clé d'API cible ne la transmet pas comme en-tête de requête HTTPS au serveur de métriques.

Conservez le nom d'hôte et le chemin réels des métriques dans la configuration de scrape. Prometheus protège aussi les en-têtes qu'il définit lui-même contre les remplacements arbitraires ; utilisez donc les champs d'en-tête personnalisés pris en charge pour cette clé d'API.

Articles similaires