天天看点

Prometheus监控运维实战十四:探针监控

目前对于应用程序的监控主要有两种方式,一种被称为白盒监控,它通过获取目标的内部信息指标,来监控目标的状态情况,我们前面介绍的主机监控、容器监控都属于此类监控。另一种则是“黑盒监控”,它指在程序外部通过探针的方法模拟访问,获取程序的响应指标来监控程序状态,如请求处理时间、状态码等。在实际生产环境中, 往往会将两种监控方式混合使用,以实现对应用的全方位监控。

本篇我们将介绍prometheus如何通过blackbox exporter的探针检测功能,来实现对应用的外部监控。

blackbox exporter使用go语言开发,它支持通过http、https、dns、tcp和icmp的方式来探测目标端点。它的使用方式与其他exporter不太一样,在blackbox exporter的内部需要定义好检查的模块,如http检测模块。prometheus将目标和模块名做为url的参数传递给blackbox exporter,再由exporter 生成对应的探测请求到目标端点,根据返回的请求状态生成对应的时间序列指标,并传递给prometheus。

Prometheus监控运维实战十四:探针监控

探针检测非常有用,比如我们可以在多个分散的地点部署探针检测,来了解公司提供对外服务的站点在该地区的访问是否正常。目前有不少商业机构有提供专业的探针检测服务,如听云、博睿、监控宝等。当然 ,你也可以通过blackbox exporter来搭建自己的探针监控。

blackbox exporter提供了支持不同平台的安装文件 ,包括linux、windows、max os等,本文我们使用linux版本的安装文件来演示。

下载二进制文件 

解压安装包,并拷贝执行命令到bin目录 

查看版本

blackbox exporter需要在配置文件中定义模块,每个模块有特定的名称和探针,如用于检查http服务的http探针、用于检查tcp连接的tcp探针等。此处我们以http模块为例,来演示配置的操作。(其他更多配置,可参见prometheus的示例文件 :https://github.com/prometheus/blackbox_exporter/blob/master/example.yml。)

创建 blackbox.yml配置文件,包含以下内容:

注释:此处我们定义了一个模块名为http_2xx,使用http探针,探针检测超过5秒会被当成超时。valid_status_codes定义返回的响应码,valid_http_versions定义探针的http版本,method则定义了请求模式,可支持get和post。

启动exporter,并加载指定配置文件 

我们在prometheus上面配置一个示例任务,以百度和163网站为例,演示对于网站的http检测 。

配置完成后,等prometheus加载新配置后,可看到相关的targets已生成。

Prometheus监控运维实战十四:探针监控

在任务生效后,可以看到与该任务相关的探测指标。

Prometheus监控运维实战十四:探针监控

1. 选择"create"-"import"

Prometheus监控运维实战十四:探针监控

2. 填写dashboard模板id号,点击load

Prometheus监控运维实战十四:探针监控

3. 选择对应的prometheus 数据源,点击import

Prometheus监控运维实战十四:探针监控

4. 导入完成后,即可在新的dashboard查看数据指标。

Prometheus监控运维实战十四:探针监控

继续阅读