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

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

一.Blackbox exporter

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

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

二. 安装配置

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

1. 安装exporter

下载二进制文件

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

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

$ tar -xvf blackbox_exporter-0.19.0.linux-amd64.tar.gz
$ sudo cp blackbox_exporter-0.19.0.linux-amd64/blackbox_exporter /usr/local/bin/

查看版本

$  blackbox_exporter --version
blackbox_exporter, version 0.19.0 (branch: HEAD, revision: 5d575b88eb12c65720862e8ad2c5890ba33d1ed0)build user:       root@2b0258d5a55abuild date:       20210510-12:56:44go version:       go1.16.4platform:         linux/amd64

2. 配置exporter

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

创建 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。

3. 启动exporter

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

$ sudo blackbox_exporter --config.file=blackbox.yml &

三. 配置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.214.108:9115

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

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

四. Grafana展示

1. 选择"Create"-"Import"

2. 填写Dashboard模板ID号,点击Load

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

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

  专注于Devops运维技术分享,关注公众号,获取更多精彩内容!

Prometheus监控实战系列十七:探针监控相关推荐

  1. Prometheus监控实战系列九:主机监控

    前面我们介绍了Prometheus的基础概念,包括数据格式 .PromQL语法等,本节我们将讲解如何通过Prometheus实现主机的监控 . Prometheus使用各种Exporter来监控资源. ...

  2. openstack运维实战系列(十七)之glance与ceph结合

    1. 需求说明 glance作为openstack中p_w_picpath服务,支持多种适配器,支持将p_w_picpath存放到本地文件系统,http服务器,ceph分布式文件系统,glusterf ...

  3. MP实战系列(十七)之乐观锁插件

    声明,目前只是仅仅针对3.0以下版本,2.0以上版本. 意图: 当要更新一条记录的时候,希望这条记录没有被别人更新 乐观锁实现方式: 取出记录时,获取当前version 更新时,带上这个version ...

  4. linux右上角不显示网络连接_Linux系列 之 进程监控

    预计阅读时间:15分钟 Linux下对进程的监控有多种方法,如busbox自带的top工具.atop工具等,还有其他监控程序.软件.本文主要总结和讲解一些用于进程相关的Linux命令. 01 - 查看 ...

  5. 极简Prometheus监控实战

    一.前言与目录 监控是当前云原生时代下可观测性中关键性的一环,较之前相比,云原生时代已经发生了诸多变化,诸如微服务,容器化等技术层出不穷,且云原生时代的演进速度,更新速度极快,相对应监控所产生的数据量 ...

  6. 普罗米修斯监控系统_一步步教你用Prometheus搭建实时监控系统系列(二)——详细分析拉取和推送两种不同模式...

    前言 本系列着重介绍Prometheus以及如何用它和其周边的生态来搭建一套属于自己的实时监控告警平台. 本系列受众对象为初次接触Prometheus的用户,大神勿喷,偏重于操作和实战,但是重要的概念 ...

  7. 视频教程-Prometheus+Grafana企业级监控实战(运维篇)2020年视频教程-Linux

    Prometheus+Grafana企业级监控实战(运维篇)2020年视频教程 资深DevOps工程师,曾经在华为,乐逗游戏工作,目前就职于知名物流公司工作 希望结合工作实践 给大家带来很多干货 周龙 ...

  8. Zabbix监控系统系列之十七:MYSQL数据库监控

    ======= 系列目录 ======= Zabbix监控系统系列之一 : Server部署 Zabbix监控系统系列之二 : 初始化配置 Zabbix监控系统系列之三 :版本升级 Zabbix监控系 ...

  9. 百度网络监控实战:NetRadar横空出世(上)

    原文:https://mp.weixin.qq.com/s/VBShicsqReDtureKAdEgDA 转自订阅号「AIOps智能运维」,已授权运维帮转发 作者简介:运小贝,百度高级研发工程师 负责 ...

最新文章

  1. 了解EOS看这一篇就够了一、团队二、技术三、项目进度四、争议和风险五、展望
  2. eeglab中文教程系列(14)-Working with ICA Components
  3. 适配器模式理解和使用
  4. 2021高考成绩微信查询方法6,2021年高考成绩查询时间、入口及方法
  5. git diff命令详解
  6. 公众号知道我浏览他吗_公众号可以看到访客吗,公众号怎么看到访客
  7. PHP.ini 中的session 相关设置
  8. 百度关键词分析工具_【青峰课堂】5分钟了解百度搜索推广的拓词工具—关键词规划师...
  9. SkyEye图形化界面使用技巧篇(一)
  10. 是男人就下100层【第二层】——帮美女更衣(2)
  11. 软件项目管理 第七章 进度计划
  12. 怎么把cad做的图分享给别人_CAD命令大全分享,作图快人两步
  13. 简单个人静态HTML网页设计作品 DIV布局个人介绍网页模板代码 DW个人网站制作成品 web网页制作与实现
  14. Drive-by Compromise 术语名词概念
  15. python三引号的作用有哪些_Python中3种引号的作用与区别
  16. Crazy Mother
  17. 打开我的计算机我的文档不见,我电脑桌面上的我的文档不见了,是什么原因造成我的文档不见了呢?是? 爱问知识人...
  18. 我的FLASH情结2010——浅谈FLASH WEB GAME与创业(2)
  19. 如何制作GIF表情包,动态GIF怎么做
  20. Eclypse-Z7 + Zmod ADC 1410 基础环境搭建(SDK部分)

热门文章

  1. 前端逼死强迫症之css续集
  2. ccf2016年4月10日认证考试 俄罗斯方块问题思路
  3. python股票量化分析_python实战之股票交易量化分析
  4. 魔法师鬼剑士地下城java_DNF新职业加入鬼剑士全家桶 魔法师又多一个萌宝
  5. windows7内存诊断工具有用吗_Win7内存诊断工具开启与使用技巧
  6. Linux九阴真经之大伏魔拳(zabbix 监控)
  7. 内涵段子维修服务器,登陆内涵段子的时候出现这个是什么504 Gateway T
  8. vue的sync修饰符
  9. 智融SW6206、SW3516、SW3522、SW2303等快充市场方案应用
  10. word 标尺快捷键