当前位置: 首页 > news >正文

Prometheus监控实战系列十七:探针监控

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

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

1、Blackbox exporter

Blackbox exporter使用go语言开发,它支持通过HTTP、HTTPS、DNS、TCP和ICMP的方式来探测目标端点。它的使用方式与其他exporter不太一样,在Blackbox exporter的内部需要定义好检查的模块,如HTTP检测模块。Prometheus将目标和模块名做为URL的参数传递给Blackbox exporter,再由exporter 生成对应的探测请求到目标端点,根据返回的请求状态生成对应的时间序列指标,并传递给Prometheus。
在这里插入图片描述
探针检测非常有用,比如我们可以在多个分散的地点部署探针检测,来了解公司提供对外服务的站点在该地区的访问是否正常。目前有不少商业机构有提供专业的探针检测服务,如听云、博睿、监控宝等。当然 ,你也可以通过Blackbox exporter来搭建自己的探针监控。

2、安装配置

Blackbox exporter提供了支持不同平台的安装文件 ,包括Linux、Windows、Max OS等,本文我们使用Linux版本的安装文件来演示。

2.1 安装exporter

下载二进制文件

wget https://github.com/prometheus/blackbox_exporter/releases/download/v0.19.0/blackbox_exporter-0.19.0.linux-amd64.tar.gz

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

tar zxvf blackbox_exporter-0.19.0.linux-amd64.tar.gz -C /usr/local/
mv blackbox_exporter-0.19.0.linux-amd64/ blackbox_exporter
cp blackbox_exporter/blackbox_exporter /usr/local/bin/

查看版本

在这里插入图片描述

2.2 配置exporte

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

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

[root@server blackbox_exporter]# cat blackbox.yml 
modules:http_2xx:prober: httptimeout: 5shttp:valid_status_codes: [200]valid_http_versions: ['HTTP/1.1','HTTP/2']method: GET

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

2.3 启动exporter

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

blackbox_exporter --config.file=blackbox.yml &

3、配置Prometheus

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

- job_name: 'blackbox_http'metrics_path: /probeparams:module: [http_2xx]static_configs:- targets:- http://www.badiu.com- http://www.163.comrelabel_configs:- source_labels: [__address__]target_label: __param_target- source_labels: [__param_target]target_label: instance- target_label: __address__#blackbox exporter 所在节点replacement: 192.168.75.160:9115

配置完成后,等Prometheus加载新配置后,可看到相关的Targets已生成。
在这里插入图片描述
在任务生效后,可以看到与该任务相关的探测指标。
在这里插入图片描述

4、Grafana展示

4.1 选择"Create"-“Import”

在这里插入图片描述

4.2 填写Dashboard模板ID号,点击Load

在这里插入图片描述

4.3 选择对应的Prometheus 数据源,点击import

在这里插入图片描述

4.4 导入完成后,即可在新的Dashboard查看数据指标。

在这里插入图片描述

上一篇:Prometheus监控实战系列十六:Docker容器监控
下一篇:Prometheus监控实战系列十八:基于Consul的服务发现

http://www.lryc.cn/news/42953.html

相关文章:

  • 题目:JPA的懒加载失效是什么情况?
  • 十六、消息推送
  • PMP项目管理-【第一章】引论
  • 前端布局小案例,分享3个漂亮的卡片组件
  • 博客重载记录
  • open-cv绘制简单形状line() circle() rectangle() polylines() putText() cvtColor()
  • 基于 PyTorch + LSTM 进行时间序列预测(附完整源码)
  • GEE页面介绍
  • python自动发送邮件,qq邮箱、网易邮箱自动发送和回复
  • hastcat
  • 242. 一个简单的整数问题
  • docker安装Redis高可用(一主二从三哨兵)
  • 安全防御之入侵检测篇
  • 学习系统编程No.10【文件描述符】
  • 网络基础认识
  • 【蓝桥杯_练习】
  • 【C语言蓝桥杯每日一题】——跑步锻炼
  • Qt之实现类似软件安装时的新功能介绍界面
  • echarts地图不同地区设置不同的颜色
  • 网易云音乐API部署Vercel获取接口过程
  • Java基础:字符串(String)及常用操作
  • FL Studio 21中文版支持主题随心换,FL Studio 21Mac版新增对苹果M2/1家族芯片原生支持。
  • 【蓝桥杯集训·周赛】AcWing 第96场周赛
  • 【数据结构】顺序表的深度刨剖析
  • Unity 之 使用原生UGUI实现随手移动摇杆功能经典实例
  • Linux内核源代码概述
  • Nginx 教程-动静分离
  • 自己设计的网站,如何实现分页功能?(详细代码+注释)
  • STM32F407控制微型推拉式电磁铁(通过继电器)
  • VS Code工作区用法