Prometheus 使用自定义标头抓取 /metric

Posted

技术标签:

【中文标题】Prometheus 使用自定义标头抓取 /metric【英文标题】:Prometheus scrape /metric with custom header 【发布时间】:2021-05-07 23:29:08 【问题描述】:

我有一个将被 Prometheus 监控的应用程序, 但是应用程序需要自定义标题键,例如:

x-auth-token: <customrandomtoken>

我应该如何处理 prometheus.yml?

【问题讨论】:

嗨,罗纳尔多,查看这个 Prometheus 文档链接:prometheus.io/docs/prometheus/latest/configuration/… 也许'bearer_token'或http'params'参数是你需要的。 yaml # Optional HTTP URL parameters. params: [ &lt;string&gt;: [&lt;string&gt;, ...] ] # Sets the `Authorization` header on every scrape request with # the configured bearer token. It is mutually exclusive with `bearer_token_file`. [ bearer_token: &lt;secret&gt; ] 我需要自定义标头,例如``` x-api-token: ``` 然后尝试使用 'params:' 添加 HTTP 标头 params 用于“可选的 HTTP URL 参数”,它绝对不是标头。 【参考方案1】:

Prometheus 本身无法定义自定义标头以到达导出器。但是从prometheus-blackbox-exporter 标签来看,问题是如何使用 Prometheus Blackbox Exporter 定义自定义 HTTP 标头,这是一个单独的东西,它确实有设置的方法标题。

Blackbox 导出器有它自己的配置文件,它由模块 组成。模块是一组参数,定义了如何进行探测以及预期的结果。下面是一个查找 200-299 响应代码并使用 X-Auth-Token 标头的模块示例:

modules:
  http_2xx_with_header:
    prober: http
    http:
      headers:
        X-Auth-Token: skdjfh98732hjf22exampletoken

更多示例可以在here 和配置选项列表中找到 - here。

当您使黑盒导出器加载新配置时,您还需要调整 Prometheus 配置。由于模块名称是通过 URL 参数传递给导出器的,所以您需要将名称写在 params.module 键下:

scrape_configs:
  - job_name: 'blackbox'
    metrics_path: /probe
    params:
      module: [http_2xx_with_header]  # <- Here goes the name of the new module
    static_configs:
      - targets:
        - http://prometheus.io
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: 127.0.0.1:9115

【讨论】:

以上是关于Prometheus 使用自定义标头抓取 /metric的主要内容,如果未能解决你的问题,请参考以下文章

Prometheus 没有抓取 stats d exporter

发送 PHP 标头时不显示通过 Htaccess 的自定义 405 错误消息

PHP cURL 自定义标头

GKE 和 prometheus 监控

Prometheus TSDB分析

与 Redis 和 Prometheus 集成