使用blackbox_exporter监控接口的返回内容

本文介绍如何使用Prometheus的blackbox_exporter监控业务接口的返回内容,包括配置参数fail_if_body_matches_regexp和fail_if_body_not_matches_regexp的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求

我们知道如果使用Zabbix的话,可以通过 web监测 实现业务接口的的状态码检测以及返回内容的检测,但如果是Prometheus监控的话,要怎么样才能实现监控业务接口的返回内容了?

当我们在使用 blackbox_exporter 的时候,默认不去改配置文件的话,监控接口只能监控接口的返回状态。没办法监控接口的返回内容。如何实现接口的返回内容了?

比如我们通过以下命令进行接口的请求

curl http://10.19.192.86:9115/probe?target=prometheus.io&module=http_2xx
curl http://10.16.10.65:9115/probe?target=prometheus.io&module=http_2xx&debug=true
curl http://10.19.192.86:9115/probe?module=http_2xx&target=baidu.com   # 检测百度

请求的结果如下 :
在这里插入图片描述

判断get请求的返回内容并告警

vim blackbox.yml

# 以上内容省略
      # 响应符合正则就失败
      fail_if_body_matches_regexp:
        - "0"
      # 响应失败如果不符合正则表达式
      fail_if_body_not_matches_regexp:
        - "am"
### 以下内容是默认配置 省略

注意: 老版本的node_explorer的正则匹配如下,新版本已经改成 fail_if_body_matches_regexpfail_if_body_not_matches_regexp。 这个要特别注意,不然无法启动成功。
当时也是找了很久,后面通过官方文档才发现这个配置参数有改动。所以在使用的时候要特别注意了。(下面的是老版本的配置)

   # 响应符合正则就失败
    fail_if_matches_regexp:
        [ - <regex>, ... ]
    # 响应失败如果不符合正则表达式
    fail_if_not_matches_regexp:
        [ - <regex>, ... ]

响应符合正则就失败响应失败如果不符合正则表达式 , 如何来理解?(补充内容用来理解的

(1)如果我们添加如下的配置文件的内容。并且我们监控的 url 如果 https://tengx.xx.com为例,正常来讲,这个url 会 返回 i am tengx。如果不正常就会返回 " i have problem"

# 省略
      # 响应失败如果不符合正则表达式
      fail_if_body_not_matches_regexp:
        - "am"

上面的意思是讲,当返回内容不符合正则表达式(也就是: body不能匹配到am) ,则响应失败,则 probe_success 为0。

(2)同样的道理,如果我们的配置文件为如下,url和上面一样。

   # 响应符合正则就失败
    fail_if_body_matches_regexp:
        - "problem"

上面的配置意思是: 如果我们的正则匹配到了problem 就表示 失败了,此时 probe_success 的值为0。


针对 Prometheus 监控的学习,以及监测业务监控的详细讲解,可以点击 左侧 的视频教程系列即可观看。
在这里插入图片描述

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叱咤少帅(少帅)

如果文章对你有帮助就打赏下吧!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值