You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为单个Prometheus作业的多目标配置不同Bearer Token?

单Prometheus作业配置多目标不同Bearer Token的可行方案

问题描述

我希望为一个Prometheus作业添加多个监控目标,但这些目标使用不同的Bearer Token,且不想配置多个作业。我尝试了以下两种配置,但均未生效:

第一种配置:

- job_name: minio-job-prod
    scrape_interval: 10s
    metrics_path: /minio/v2/metrics/cluster
    scheme: http
    static_configs:
      - targets: [minio.prod.example.com]
        labels:
          environment: prod
    relabel_configs:
      - source_labels: [environment]
        regex: prod
        action: replace
        target_label: __tmp_bearer_token_file
        replacement: /data/software/prometheus/tokens/minio/prod-minio-job.token
      - source_labels: [__tmp_bearer_token_file]
        target_label: __bearer_token_file__

第二种配置:

relabel_configs:
    - source_labels: [environment]
      regex: prod
      action: replace
      target_label: __tmp_bearer_token
      replacement: yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
    - source_labels: [__tmp_bearer_token]
      regex: (.+)
      action: replace
      target_label: __bearer_token__

请问是否有可行的实现方法?

可行解决方案

你的配置失效的核心原因是错误使用了带双下划线结尾的特殊标签——Prometheus用于Bearer Token认证的合法特殊标签是__bearer_token(直接指定令牌内容)和__bearer_token_file(指定令牌文件路径),这两个标签的后缀没有额外下划线。

方案1:通过标签映射令牌文件路径(推荐生产环境)

适合令牌存储在文件中的场景,配置示例:

- job_name: multi-target-minio
  scrape_interval: 10s
  metrics_path: /minio/v2/metrics/cluster
  scheme: http
  static_configs:
    - targets: [minio.prod.example.com]
      labels:
        environment: prod
        token_group: prod
    - targets: [minio.staging.example.com]
      labels:
        environment: staging
        token_group: staging
  relabel_configs:
    # 根据token_group标签映射对应的令牌文件路径
    - source_labels: [token_group]
      regex: prod
      replacement: /data/software/prometheus/tokens/minio/prod-minio-job.token
      target_label: __bearer_token_file
    - source_labels: [token_group]
      regex: staging
      replacement: /data/software/prometheus/tokens/minio/staging-minio-job.token
      target_label: __bearer_token_file

方案2:直接映射令牌内容(仅测试或非敏感场景使用)

如果需要直接在配置中写令牌内容,注意使用正确的标签名:

- job_name: multi-target-minio
  scrape_interval: 10s
  metrics_path: /minio/v2/metrics/cluster
  scheme: http
  static_configs:
    - targets: [minio.prod.example.com]
      labels:
        environment: prod
    - targets: [minio.staging.example.com]
      labels:
        environment: staging
  relabel_configs:
    - source_labels: [environment]
      regex: prod
      replacement: "prod_token_here"
      target_label: __bearer_token
    - source_labels: [environment]
      regex: staging
      replacement: "staging_token_here"
      target_label: __bearer_token

关键注意事项

  • 特殊标签__bearer_token和__bearer_token_file是Prometheus在抓取阶段识别的认证标签,不要添加额外下划线。
  • relabel_configs按从上到下的顺序执行,确保映射逻辑覆盖所有目标。
  • 生产环境优先使用__bearer_token_file,避免令牌明文出现在配置文件中,降低泄露风险。

内容的提问来源于stack exchange,提问作者Miacis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 05:06:20