Prometheus 黑盒导出器失败 https 但不是 http

Posted

技术标签:

【中文标题】Prometheus 黑盒导出器失败 https 但不是 http【英文标题】:Prometheus blackbox exporter failing https but not http 【发布时间】:2021-07-09 22:38:12 【问题描述】:

我有一个模块的以下配置。该模块唯一用于返回 403 的网站。使用 http 时它可以正常工作,使用 https 时它会失败。

  proxy_http_4xx:
    prober: http
    timeout: 5s
    http:
      valid_http_versions:
        - "HTTP/1.1"
        - "HTTP/2"
      valid_status_codes:
        - 403
      method: GET
      headers:
        User-Agent: prometheus-blackbox_exporter
        Accept-Language: en-US
      no_follow_redirects: false
      fail_if_ssl: false
      fail_if_not_ssl: false
      tls_config:
        insecure_skip_verify: true
      preferred_ip_protocol: "ip4"
      proxy_url: http://proxy.com:1111

【问题讨论】:

【参考方案1】:

答案很可能是由于config being typed incorrectly。 Http/2 曾经被称为 http/2.0,而黑盒导出器从未更新此名称,因此 http/2 将失败。

      valid_http_versions:
        - "HTTP/1.1"
        - "HTTP/2.0"

它仍然适用于 http 的原因是因为 http/2 在几乎所有浏览器中都不适用于不安全的连接。它不再是强制性的,而是most browsers choose not to support it。 这就是为什么使用 http 可以正常工作的原因,因为它已更改为 http/1.1。您可以通过在检查器模式下打开网络选项卡并查看请求来验证这一点。

【讨论】:

以上是关于Prometheus 黑盒导出器失败 https 但不是 http的主要内容,如果未能解决你的问题,请参考以下文章

Prometheus Helm Chart:如何配置黑盒导出器?

Prometheus Alertmanager:基于实例的黑盒导出器警报

黑盒导出器响应作为度量标签

查询通过 prometheus 节点导出器文本文件收集器公开的自定义指标失败

如何使用 prometheus 节点导出器提取正在运行的进程?

通过 API(Prometheus)以编程方式将目标添加到 Blackbox Exporter [关闭]