3

我一直在努力理解为什么一些 HTTP 端点会为“probe_success”和“probe_http_status_code”返回“0”,同时完全能够通过 curl 获得“有效”响应。

例子:curl -s "localhost:9115/probe?target=http://linux.org&module=http_2xx" | grep -v '^#'

输出:

probe_dns_lookup_time_seconds 0.003712821
probe_duration_seconds 0.212811871
probe_failed_due_to_regex 0
probe_http_content_length 0
probe_http_duration_seconds{phase="connect"} 0.002263513
probe_http_duration_seconds{phase="processing"} 0.196389853
probe_http_duration_seconds{phase="resolve"} 0.006723945
probe_http_duration_seconds{phase="tls"} 0
probe_http_duration_seconds{phase="transfer"} 2.6001e-05
probe_http_redirects 1
probe_http_ssl 0
probe_http_status_code 0
probe_http_version 0
probe_ip_protocol 4
probe_success 0

这是工作定义:

  - job_name: 'blackbox'
    scrape_interval: 30s
    metrics_path: /probe
    params:
      module: [http_2xx]
    static_configs:
      - targets:
        - http://linux.org
    relabel_configs:
      - source_labels: [__address__]
        regex: '(.*)(:80)?'
        target_label: __param_target
      - source_labels: [__param_target]
        regex: '(.*)'
        target_label: instance
        replacement: '${1}'
      - source_labels: []
        regex: '.*'
        target_label: __address__
        replacement: 'blackbox:9115'

和模块定义:

modules:
  http_2xx:
    prober: http
    timeout: 15s
    http:
      valid_status_codes: []
      method: GET
4

4 回答 4

5

如果您追加&debug=true,您将获得有关错误的一些详细信息。

我的猜测是 blackbox_exporter 无法连接,因为它默认为 ipv6 连接,这不起作用。

在我的情况下(同样的问题),调试输出说

level=error msg="Resolving target address" ip_protocol=ip6
level=error msg="Resolution with IP protocol failed (fallback_ip_protocol is false): err"
level=error msg="Error resolving address" err="address apple.com: no suitable address found"
level=error msg="Probe failed" duration_seconds=0.003648031

黑盒文档

  # The IP protocol of the HTTP probe (ip4, ip6).
  [ preferred_ip_protocol: <string> | default = "ip6" ]
  [ ip_protocol_fallback: <boolean> | default = true ]

因此,如果您修改模块配置,它应该可以工作:

modules:
  http_2xx:
    prober: http
    timeout: 15s
    http:
      valid_status_codes: []
      method: GET
      preferred_ip_protocol: "ip4" # <---- !
于 2019-03-14T09:53:23.350 回答
2

我的错误是:“x509:由未知机构签署的证书”

更改 http 部分中的选项

 tls_config:
    insecure_skip_verify: true
于 2019-10-23T14:39:05.513 回答
1

就我而言,我要在该valid_http_versions部分中添加HTTP/1.0条目。我的终点是 Odoo 13。@Rafa 的&debug=true建议让我了解了这一点。

于 2020-02-20T17:13:01.820 回答
1

Blackbox_exporter定期获取端点并提供有关性能的关键矩阵。

我遇到了类似的问题。对我来说,问题是输入错误。但是,如果您遵循这些简单的调试步骤,您可以找到您的问题。正确的。

  1. curl -s "localhost:9115/probe?target=http://linux.org&module=http_2xx"&debug=true"用于获取日志数据 黑盒日志
  2. 对我来说 iptables 规则不允许
于 2021-09-29T05:40:38.560 回答