简介

Prometheus 的探针监控可以在应用程序的外部对应用程序进行探测,比如:探测机器的 http 服务是否工作正常等。 这里就看看怎样使用 Prometheus 的 Blackbox Exporter 来实现这个功能。

Prometheus 的 Blackbox Exporter 允许通过 HTTP/HTTPS,TCP 和 ICMP 等来探测端点。

安装

首先从 https://prometheus.io/download/#blackbox_exporter 地址下载 blackbox_exporter 安装包,我这里使用的是 Linux 安装包 blackbox_exporter-0.16.0.linux-amd64.tar.gz。

$ wget -c https://github.com/prometheus/blackbox_exporter/releases/download/v0.16.0/blackbox_exporter-0.16.0.linux-amd64.tar.gz
$ tar zxvf blackbox_exporter-0.16.0.linux-amd64.tar.gz
$ cd blackbox_exporter-*
$ ./blackbox_exporter --version
blackbox_exporter, version 0.16.0 (branch: HEAD, revision: 991f89846ae10db22a3933356a7d196642fcb9a9)build user:       root@64f600555645build date:       20191111-16:27:24go version:       go1.13.4

运行blackbox_exporter

修改安装目录下的 blackbox.yml 文件,如下:

modules:http_2xx:prober: httptimeout: 5shttp:valid_status_codes: [200]method: GETicmp:prober: icmptimeout: 5s

其中:

  • http_2xx 配置检查 http 服务是否运行,并返回 2xx 状态码。
  • icmp 配置检查 ICMP ping 是否正常。

现在运行使用此配置文件运行 blackbox_exporter

$ sudo ./blackbox_exporter --config.file=blackbox.yml
level=info ts=2020-02-16T09:09:46.523Z caller=main.go:212 msg="Starting blackbox_exporter" version="(version=0.16.0, branch=HEAD, revision=991f89846ae10db22a3933356a7d196642fcb9a9)"
level=info ts=2020-02-16T09:09:46.523Z caller=main.go:213 msg="Build context" (gogo1.13.4,userroot@64f600555645,date20191111-16:27:24)=(MISSING)
level=info ts=2020-02-16T09:09:46.523Z caller=main.go:225 msg="Loaded config file"
level=info ts=2020-02-16T09:09:46.524Z caller=main.go:369 msg="Listening on address" address=:9115

服务启动后,可以通过浏览器访问 http://localhost:9115/ 来查看状态。

服务启动后,我们可以做一下简单测试,分别访问项目两个链接地址
http://localhost:9115/probe?target=localhost&module=http_2xx
http://localhost:9115/probe?target=localhost&module=icmp

然后在 http://localhost:9115/ 页面查看结果,可以看到类似如下的内容。

Module   Target  Result  Debug
http_2xx    localhost   Success Logs
icmp    localhost   Success Logs

启动Prometheus

现在 blackbox_exporter 服务已经运行了,下面就需要添加两个作业 blackbox_http 和 blackbox_icmp 来收集这些指标了,下面是完整的 prometheus.yml 文件内容:

global:scrape_interval:     15sevaluation_interval: 15salerting:alertmanagers:- static_configs:- targets:# - alertmanager:9093rule_files:# - "first_rules.yml"# - "second_rules.yml"scrape_configs:- job_name: 'prometheus'static_configs:- targets: ['localhost:9090']- job_name: 'node'static_configs:- targets: ['localhost:9100']- job_name: 'blackbox_http'metrics_path: /probestatic_configs:- targets:- http://localhost - https://localhostrelabel_configs:- source_labels: [__address__]target_label: __param_target- source_labels: [__param_target]target_label: instance- target_label: __address__replacement: localhost:9115- job_name: 'blackbox_icmp'metrics_path: /probestatic_configs:- targets:- localhost relabel_configs:- source_labels: [__address__]target_label: __param_target- source_labels: [__param_target]target_label: instance- target_label: __address__replacement: localhost:9115

启动 prometheus 服务

$ sudo ./prometheus --config.file=prometheus.yml

服务启动后,通过 prometheus 监控页面查询 {job=‘blackbox_http’} 和 {job=‘blackbox_icmp’} 指标即可看到指标结果。

Prometheus学习之Blackbox相关推荐

  1. Prometheus 学习之——本地存储 TSDB

    Prometheus 学习之--本地存储 TSDB 文章目录 Prometheus 学习之--本地存储 TSDB 前言 一.TSDB 核心概念 二.详细介绍 1.block 1)chunks 2)in ...

  2. prometheus学习3:告警Alertmanager

    告警介绍 如下所示,通过在Prometheus中定义AlertRule(告警规则),Prometheus会周期性的对告警规则进行计算,如果满足告警触发条件就会向Alertmanager发送告警信息,以 ...

  3. Prometheus学习记录(一)

    目录 1. 前言 2. 初识Prometheus 2.1 Prometheus单词 2.2 什么是Prometheus? 2.3 Prometheus架构 2.3.1 架构图 2.3.2 Promet ...

  4. Prometheus学习

    简介 Prometheus 最初是 SoundCloud 构建的开源系统监控和报警工具,是一个独立的开源项目,于2016年加入了 CNCF 基金会,作为继 Kubernetes 之后的第二个托管项目. ...

  5. Prometheus学习系列(四十)之报警模板参考

    Prometheus创建并向Alertmanager发送警报,然后Alertmanager根据标签向不同的接收者发送通知. 接收器可以是众多集成中的一种,包括:Slack,PagerDuty,电子邮件 ...

  6. 【云原生学习】史上最全Prometheus学习笔记

    文章目录 Prometheus使用 一.Prometheus基本概念 1.1 特点 1.2 相关组件 1.3 架构 1.4 四种指标 1.5 Promethues的数据模型 1.5.1 作业和实例 二 ...

  7. Prometheus学习系列(十五)之预警规则

    警报规则允许您基于Prometheus表达式语言表达式定义警报条件,并将有关触发警报的通知发送到外部服务. 每当警报表达式在给定时间点生成一个或多个向量元素时,警报将计为这些元素的标签集的活动状态. ...

  8. Prometheus学习笔记(三)Alertmanager报警模块集成钉钉/企业微信机器人

    文章目录 一.简介 二.安装Alertmanager 三.报警规则 四.通知规则 4.1 钉钉告警 4.2 企业微信告警 一.简介 Alertmanager是Prometheus的一个报警通知组件,需 ...

  9. docker和prometheus学习

    一些概念 : 虚拟化:使用模拟器模拟系统或者环境,比如vmware,linux里的kvm,xen等开源的虚拟化软件:oracle开源的virtual box的虚拟化软件 云原生:就是与k8s,prom ...

最新文章

  1. 吐血整理:论文写作中注意这些细节,能显著提升成稿质量
  2. Unity 2D游戏开发教程之摄像头追踪功能
  3. layer.js载入失效问题
  4. python学习笔记(六)循环、迭代
  5. 真得好好细讲文件上传,否则漏洞百出
  6. 如何开始使用centos_如何开始使用CentOS
  7. android 蓝牙连接obd,Android蓝牙连接汽车OBD设备
  8. 基于深度学习的人脸识别系统系列(Caffe+OpenCV+Dlib)——【六】设计人脸识别的识别类...
  9. 【Windows socket+IP+UDP+TCP】网络基础
  10. sha256 oracle,node如何使用sha256算法?
  11. PlatformIO中arduino框架下stm32编程实现原理
  12. 目前主流的几款文件上传控件,以及优缺点
  13. 混沌多项式展开(Polynomial Chaos Expansions,PCE)- 待更
  14. 好看的colormap颜色
  15. 如何修复iPhone、iPad 或 Mac 上的 AirDrop 连接问题?
  16. 连载《阿里巴巴·马云》4 : 他就像一个鬼鬼祟祟的坏人
  17. 关于Python、R、VBA、SAS的生成批量变量名与动态变量引用的问题
  18. 车间调度标准测试集汇总-FJSP、PFSP、JSP、HFSP和分布式车间调度测试集
  19. Golang — RESTful框架 go-restful
  20. 轻量级rpc框架Hessian

热门文章

  1. redirect-重定向
  2. 数据结构之图(二)——邻接矩阵
  3. OCR识别系列之一-----文档字符识别
  4. MATLAB代码实现三次样条插值
  5. 【超级震撼】图示从极限大到极限小的世界(10亿光年到0.1飞米)
  6. oracle数据字典损坏恢复,PRM-DUL成功案例:恢复了700GB损坏严重的Oracle数据库
  7. markdown插入本地图片小技巧
  8. 杂记文件cs.txt
  9. 自适应滤波(LMS,RLS)
  10. 论文阅读_广义加性模型_GAMs