如何为单个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
相关产品推荐
相关产品推荐

