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

Prometheus监控案例之blackbox-exporter

blackbox-exporter简介

blackbox-exporter项目地址:https://github.com/prometheus/blackbox_exporter

blackbox-exporter是Prometheus官方提供的一个黑盒监控解决方案,可以通过HTTP、HTTPS、DNS、ICMP、TCP和gRPC方式对目标实例进行检测。可用于以下使用场景:

  • HTTP/HTTPS:URL/API可用性检测
  • ICMP:主机存活检测
  • TCP:端口存活检测
  • DNS:域名解析

黑盒监控和白盒监控:

  • 黑盒监控,关注的是实时状态,一般都是正在发生的事件,比如网站访问不了、磁盘无法写入数据等。即黑盒监控的重点是能对正在发生的故障进行告警。常见的黑盒监控包括HTTP探针、TCP探针等用于检测站点或者服务的可访问性,以及访问效率等。
  • 白盒监控,关注的是原因,也就是系统内部的一些运行指标数据,例如nginx响应时长、存储I/O负载等

监控系统要能够有效的支持百盒监控和黑盒监控,通过白盒能够了解系统内部的实际运行状态,以及对监控指标的观察能够预判出可能出现的潜在问题,从而对潜在的不确定因素进行提前处理避免问题发生;而通过黑盒监控,可以在系统或服务发生故障时快速通知相关人员进行处理。

部署blackbox-exporter

下载软件包

wget https://github.com/prometheus/blackbox_exporter/releases/download/v0.23.0/blackbox_exporter-0.23.0.linux-amd64.tar.gz
tar xf blackbox_exporter-0.23.0.linux-amd64.tar.gz -C /usr/local/
ln -sv /usr/local/blackbox_exporter-0.23.0.linux-amd64 /usr/local/blackbox_exporter/usr/local/blackbox_exporter/blackbox_exporter -h	#查看帮助信息

准备service文件

# cat /lib/systemd/system/blackbox-exporter.service
[Unit]
Description=Prometheus Blackbox Exporter
After=network.target[Service]
Type=simple
User=root
Group=root
ExecStart=/usr/local/blackbox_exporter/blackbox_exporter --config.file=/usr/local/blackbox_exporter/blackbox.yml --web.listen-address=:9115
Restart=on-failure[Install]
WantedBy=multi-user.target

blackbox-exporter的配置文件使用默认的即可(/usr/local/blackbox_exporter/blackbox.yml),文件里定义了进行目标检测时要使用的模块和模块参数。至于要检测哪些目标是定义在Prometheus 的Job配置中。
在这里插入图片描述

启动blackbox-exporter

systemctl daemon-reload
systemctl start blackbox-exporter.service
systemctl status blackbox-exporter.service
systemctl enable blackbox-exporter.service

访问blackbox-exporter web界面验证
在这里插入图片描述

blackbox-exporter实现url监控

修改Prometheus配置,添加Job,内容如下:

  - job_name: http-statusmetrics_path: /probe	#指定指标接口params:	#指定查询参数,在Prometheus向target发送Get请求获取指标数据时,会传递到url上module: [http_2xx]static_configs:- targets:- http://www.baidu.com- http://www.jd.comlabels:	#自定义标签,附加在target上group: webrelabel_configs:#将标签__address__的值赋值给__param_target标签,以__param开头的标签也会作为查询参数传递Prometheus的Get请求,作用和上面的params配置类似- source_labels: [__address__]target_label: __param_target#将标签__param_target的值赋值给instance标签- source_labels: [__param_target]target_label: instance#将标签__address__的值修改给balckbox-expoter的地址- target_label: __address__replacement: 192.168.122.22:9115#以 http://www.baidu.com为例,最后其对应target的地址就是http://192.168.122.22:9115/probe?module=http_2xx&target=http://www.baidu.com

此job配置了对http://www.baidu.com和http://www.jd.com进行状态检测,验证是否可以访问,这里使用一个blackbox-exporter检测多个目标网站。

一般情况下exporter和目标实例是一对一关系,这种一个exporter获取多个目标实例的数据的方式官方称为multi-target-exporter,具体介绍可以参考Prometheus官方文档:https://prometheus.io/docs/guides/multi-target-exporter/

配置修改完成后重启Prometheus。然后在界面查看target状态。
在这里插入图片描述

选中一个target查看,可以看到它的对应目标地址
在这里插入图片描述

访问blackbox-exporter界面查看数据
在这里插入图片描述

blackbox-exporter实现ICMP监控

修改Prometheus配置,添加Job,内容如下:

  - job_name: icmp-statusmetrics_path: /probeparams:module: [icmp]static_configs:- targets:- 192.168.122.5- 192.168.122.11labels:group: icmprelabel_configs:- source_labels: [__address__]target_label: __param_target- source_labels: [__param_target]target_label: instance- target_label: __address__replacement: 192.168.122.22:9115

配置修改完成后重启Prometheus。然后在界面查看target状态。
在这里插入图片描述

访问blackbox-exporter界面查看数据

在这里插入图片描述

blacbox-exporter实现端口监控

修改Prometheus配置,添加Job,内容如下:

  - job_name: tcp-port-statusmetrics_path: /probeparams:module: [tcp_connect]static_configs:- targets:- 192.168.122.23:3306- 192.168.122.5:6443labels:group: tcp-port-statusrelabel_configs:- source_labels: [__address__]target_label: __param_target- source_labels: [__param_target]target_label: instance- target_label: __address__replacement: 192.168.122.22:9115

配置修改完成后重启Prometheus。然后在界面查看target状态。

在这里插入图片描述
访问blackbox-exporter界面查看数据

在这里插入图片描述

Grafana查看数据

导入模板,查看数据。模板ID: 9965
在这里插入图片描述

模板ID:13659
在这里插入图片描述

相关文章:

Prometheus监控案例之blackbox-exporter

blackbox-exporter简介 blackbox-exporter项目地址:https://github.com/prometheus/blackbox_exporter blackbox-exporter是Prometheus官方提供的一个黑盒监控解决方案,可以通过HTTP、HTTPS、DNS、ICMP、TCP和gRPC方式对目标实例进行检测。可用于以下使…...

Makefile基础使用和实战详解

Makefile基础使用和实战详解一、基础1.1、简单的Makefile1.2、多文件编译1.3、伪对象.PHONY二、变量2.1、自动变量2.2、特殊变量2.3、变量的类别2.4、变量及其值的来源2.5、变量引用的高级功能2.6、override 指令三、模式四、函数4.1、addprefix 函数4.2、filter函数4.3、filte…...

Go基础-变量

文章目录1 Go中的变量2 声明一个变量3 声明变量并初始化4 变量推断5 声明多个变量5.1 多个变量相同类型5.2 多个变量不同类型6 简短声明7 Go语言变量不能把一种类型赋值给其他类型1 Go中的变量 Go中变量指定了某存储单元的名称,该存储单元会存储特定类型的值&#…...

【算法】三道算法题目单词拆分,填充每个节点的下一个右侧节点指针以及组合总和

算法第一道算法题:单词拆分java解答参考第二道算法题:填充每个节点的下一个右侧节点指针java 解答参考第三道算法题:组合总和java解答参考大家好,我是小冷。 今天还是继续学习算法技术知识吧 第一道算法题:单词拆分 …...

【算法】刷题路线(系统+全面)

本系列基于当前各大公司对大公司的考察情况,给大家规划一条可行的算法刷题路线,大概会规划 200 道自认为有用的题,并且争取让初学者,能够刷起来更加丝滑,而且每个阶段都会进行相对应的说明。 当然,无论是面…...

Fiddler的报文分析

目录 1.Statistics请求性能数据 2.检测器(Inspectors) 3.自定义响应(AutoResponder) 1.Statistics请求性能数据 报文分析: Request Count: 1 请求数,该session总共发的请求数 Bytes …...

Spring 中,有两个 id 相同的 bean,会报错吗

我们知道,spring容器里面的bean默认是单例的,所以id是唯一的。但是需要注意,同一类型的bean可以有不同的id,比如有id1->bean,也可以有id2->bean。 下面再来详细回答一下文章的问题。 首先,在同一个…...

Mysql数据库的时间(4)一查询数据库时间注意点

一.select根据时间段查询 1.原始的sql根据时间段查询 select * from stu where time between "1998-09-01" and "1999-09-01"; //查询从1998-09-01到1999-09-01时间段的数据 等同于select * from stu where time >"1998-09-01" and time &l…...

一起学 pixijs(2):修改图形属性

大家好,我是前端西瓜哥。 我们做动画、游戏、编辑器,需要根据用户的交互等操作,去实时地改变图形的属性,比如位置,颜色等信息。今天西瓜哥带大家来看看在 pixijs 怎么修改图形的属性。 因为 pixijs 的底层维护了图形…...

LeetCode 121. 买卖股票的最佳时机

原题链接 难度:easy\color{Green}{easy}easy 题目描述 给定一个数组 pricespricesprices ,它的第 iii 个元素 prices[i]prices[i]prices[i] 表示一支给定股票第 iii 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同…...

shell脚本内调用另外一个shell脚本的几种方法

有时会在一个shell脚本(如test_call_other_shell.sh)中调用另外一个shell脚本(如parameter_usage.sh),这里总结几种可行的方法,这些方法在linux上和windows上(通过Git Bash)均适用: 1.通过source: 运行在相同的进程,在test_…...

Linux C++ 多进程下write写日志问题思考

文章目录多个进程(父子)同时通过write像日志文件中写,是否会出现数据混乱情况?需要满足以下条件: 1、通过open打开文件,子进程都是复制父进程的文件描述符去操作这个文件,不会造成文件混乱&…...

MySQL的四种事务隔离级别

目录一、事务的基本要素(ACID)1、原子性(Atomicity):2、一致性(Consistency):3、隔离性(Isolation):4、持久性(Durability&#xff09…...

方法区和元空间有什么关系?

一.什么是方法区? 方法区属于是 JVM 运行时数据区域的一块逻辑区域,是各个线程共享的内存区域。 《Java 虚拟机规范》只是规定了有方法区这么个概念和它的作用,方法区到底要如何实现那就是虚拟机自己要考虑的事情了。也就是说,在…...

2023VNCTF的两道(暂时)

from http://v2ish1yan.top/2023/02/19/%E6%AF%94%E8%B5%9Bwp/2023vnctf/ 比赛的时候在回学校的路上,所以没有打,听说质量挺高,赛后做一下 象棋王子 一个普通的js游戏,玩过关了就给flag,所以flag肯定在前端源码里 这…...

JDK版本区别

1. 泛型 ArrayList listnew ArrayList()------>ArrayList<Integer>listnew ArrayList<Integer>(); 2 自动装箱/拆箱 nt ilist.get(0).parseInt();-------->int ilist.get(0);原始类型与对应的包装类不用显式转换 3 for-each i0;i<a.length;i------------&…...

Android 基础知识4-2.8 TableLayout(表格布局)详解

一、TableLayout的概述 表格布局是以行数和列数来确定位置进行排列。就像一间教室&#xff0c;确定好行数与列数就能让同学有序入座。 注意&#xff1a;我们需要先添加<TableRow容器&#xff0c;每添加一个就会多一行&#xff0c;然后再往<TableRow容器中添加其它组件。…...

SQL代码编码原则和规范

目录1、先了解MySQL的执行过程2、数据库常见规范3、所有表必须使用Innodb存储引擎4、每个Innodb表必须有个主键5、数据库和表的字符集统一使用UTF86、查询SQL尽量不要使用select *&#xff0c;而是具体字段7、避免在where子句中使用 or 来连接条件8、尽量使用数值替代字符串类型…...

【博客627】gobgp服务无损变更:graceful restart特性

gobgp服务无损变更&#xff1a;graceful restart特性 场景 当我们的bgp网关在对外宣告bgp路由的时候&#xff0c;如果我们网关有新的特性要发布&#xff0c;那么此时如果把网关停止再启动新版本&#xff0c;此时bgp路由会有短暂撤回再播出的过程&#xff0c;会有网络抖动 期待…...

一起学 pixijs(1):常见图形的绘制

大家好&#xff0c;我是前端西瓜哥。 pixijs 是一个强大的 Web Canvas 2D 库&#xff0c;以其强大性能而著称。其底层使用了 WebGL 实现了硬件加速&#xff0c;当然如果不支持的话&#xff0c;也能回退为 Canvas。 本文使用的 pixijs 版本为 7.1.2。 Application Applicati…...

Python数据库编程与ORM

Python数据库编程与ORM一、数据库连接基础Python通过DB-API 2.0规范&#xff08;PEP 249&#xff09;统一了数据库接口。不同数据库使用不同的驱动&#xff0c;但API一致。import sqlite3# SQLite&#xff08;内置&#xff0c;无需安装&#xff09; conn sqlite3.connect(exam…...

嵌入式Linux SBC硬件接口实战:I2C/SPI/UART配置与Adafruit Blinka集成指南

1. 项目概述与核心价值在嵌入式Linux单板计算机&#xff08;SBC&#xff09;的开发世界里&#xff0c;GPIO、I2C、SPI、UART这些接口就像是开发者的“瑞士军刀”。无论你是想读取一个温湿度传感器的数据&#xff0c;还是驱动一块显示屏&#xff0c;或者与另一个微控制器“对话”…...

UPS 蓄电池在线监控系统是什么?工业 UPS 电源有必要安装吗?

在机房、工业生产、医疗设备等依赖 UPS 不间断电源的场景中&#xff0c;蓄电池往往被视为设备的 “心脏”。很多用户配置了优质 UPS 电源&#xff0c;却忽略了对蓄电池的实时管理&#xff0c;等到突发停电才发现电池亏电、失效&#xff0c;导致 UPS 无法正常供电&#xff0c;引…...

AI智能体记忆系统构建指南:从向量检索到混合搜索的工程实践

1. 项目概述&#xff1a;构建一个能“记住”的智能体最近在折腾AI智能体&#xff08;Agent&#xff09;开发的朋友&#xff0c;估计都遇到过同一个头疼的问题&#xff1a;这玩意儿怎么跟金鱼似的&#xff0c;聊两句就忘&#xff1f;你让它帮你整理一份周报&#xff0c;它吭哧吭…...

如何3步永久保存QQ空间十年回忆:GetQzonehistory数据备份实战指南

如何3步永久保存QQ空间十年回忆&#xff1a;GetQzonehistory数据备份实战指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 在数字记忆时代&#xff0c;QQ空间承载了无数人的青春印记…...

2026程序员必看:收藏这份AI大模型学习资源包,小白也能轻松入门!

2026程序员必看&#xff1a;收藏这份AI大模型学习资源包&#xff0c;小白也能轻松入门&#xff01; 随着AI大模型技术的快速发展&#xff0c;传统编程技能已难以满足职场需求。本文分析了程序员面临的职场焦虑&#xff0c;指出掌握大模型技术是2026年程序员提升竞争力的关键。文…...

Cerebras IPO首日暴涨108%:AI芯片领域的超级玩家来了

Cerebras IPO首日暴涨108%&#xff1a;AI芯片领域的超级玩家来了2026年5月15日&#xff0c;AI芯片公司Cerebras Systems正式登陆纳斯达克&#xff0c;以55亿美元融资规模成为年度最受瞩目的科技IPO&#xff0c;首日股价翻倍。这家专注超大芯片的公司&#xff0c;正在用硬核硬件…...

AGV中上位机

在 AGV 系统里&#xff0c;“上位机”一般就是调度/监控系统&#xff0c;负责&#xff1a;全局任务分配、路径规划、交通管制、与 MES/WMS 对接、人机界面等&#xff1b;车上的 PLC / 控制器则作为下位机&#xff0c;负责实时运动控制、传感器采集和执行指令。两者通过以太网 /…...

基于LangChain与本地LLM构建私有化知识库问答系统实践

1. 项目概述&#xff1a;从零构建一个垂直领域的知识库与问答系统最近在整理个人技术资料时&#xff0c;我遇到了一个非常典型的问题&#xff1a;手头积累了大量来自不同渠道的电子书、技术文档、知乎专栏文章以及各种开源项目的README&#xff0c;内容虽然优质&#xff0c;但过…...

C#调用打印机老是失败?先别怪代码,这5个Windows驱动设置坑你踩过几个?

C#调用打印机故障排查指南&#xff1a;5个被忽视的Windows驱动陷阱 当你信心满满地写完C#打印代码&#xff0c;点击"打印"按钮后却只收获了一片寂静——打印机毫无反应&#xff0c;控制台也没有任何错误提示。这种挫败感每个C#开发者都经历过。但先别急着重写代码&am…...