解决probe_http_status_code状态码是0的问题

642次阅读
没有评论

在使用 Prometheus 和 blackbox_exporter 监控网站的过程中,发现一个网站的状态码返回值一直是 0。

经过排查发现网站是没有问题的,无论是监控机请求还是别的服务器访问都是正常的,最后经过一番 Google 搜索发现,问题出在 ipv6 上面,blackbox_exporter 探测返回的是一个 ipv6 地址,而那个网站也正好也使用了又拍云的 CDN 服务。

解决方法如下:

修改 blackbox_exporter 的配置文件

modules:
  http_2xx:
    prober: http
    http:
       preferred_ip_protocol: "ipv4"

preferred_ip_protocol 默认值是 ipv6

https://github.com/prometheus/blackbox_exporter/blob/master/CONFIGURATION.md

重启 black_exporter

systemctl restart blackbox_exporter

最后获取到的就全是 200 状态码了

解决 probe_http_status_code 状态码是 0 的问题
B

BlackBox_exporter 调试可以使用 debug,这样便于发现问题,具体方式如下:

解决 probe_http_status_code 状态码是 0 的问题
curl "http://hb2:9115/probe?module=http_2xx&target=https%3A%2F%2F 域名 xxx%2Fhealth&debug=true"

使用 curl 访问你复制的地址,后面参数加入 &debug=true

解决 probe_http_status_code 状态码是 0 的问题

可以看到问题是因为访问 ipv6 地址引起的,用这种方法调试能很好的解决遇到的问题。

正文完
 
ddn
版权声明:本站原创文章,由 ddn 2022-04-01发表,共计648字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。