【监控】Blackbox Exporter 黑盒监控
Blackbox Exporter 是 Prometheus 生态系统中的一个重要组件,用于执行 黑盒监控(Blackbox Monitoring)。与传统监控直接访问系统内部指标不同,黑盒监控通过向目标服务发送请求并分析响应,来评估服务的可用性、性能和功能状态。
核心功能与用途
1. 网络服务探测
- HTTP/HTTPS:检查网站是否可访问、响应时间、状态码(如 200/404/500)、SSL 证书有效期等。
- TCP:测试端口连通性(如数据库端口 3306、SSH 端口 22)。
- DNS:验证域名解析是否正常、解析时间和结果是否符合预期。
- ICMP/Ping:检测主机是否在线、网络延迟。
2. 服务可用性监控
- 通过定期发送请求,判断服务是否正常运行(如 API 是否返回预期数据)。
- 对关键业务链路进行端到端测试(如用户登录流程、支付链路)。
3. 性能指标收集
- 测量请求响应时间(Latency)、吞吐量(Throughput)。
- 跟踪 SSL 握手时间、DNS 解析耗时等细分指标。
4. 告警触发
- 结合 Prometheus 和 Alertmanager,当探测失败或响应超时(如 HTTP 500 错误、SSL 证书即将过期)时发送告警。
工作原理
- 探针(Probes):
Blackbox Exporter 支持多种探针类型(HTTP、TCP、DNS 等),每种探针定义了如何向目标发送请求并解析响应。 - 暴露指标:
探针执行后,Blackbox Exporter 将结果转换为 Prometheus 可识别的指标(如<font style="color:#DF2A3F;">probe_success</font>
、<font style="color:#DF2A3F;">probe_duration_seconds</font>
)。 - Prometheus 集成:
Prometheus 定期从 Blackbox Exporter 拉取这些指标,并存储为时间序列数据。 - 可视化与告警:
- 使用 Grafana 可视化探测结果(如响应时间趋势图)。
- 通过 Alertmanager 配置告警规则(如连续 3 次探测失败触发告警)。
典型应用场景
- 网站监控:
- 监控官网、API 网关的可用性和响应时间。
- 检查 SSL 证书有效期,提前预警即将过期的证书。
- 网络基础设施监控:
- 监控路由器、负载均衡器等网络设备的连通性。
- 检测 DNS 解析是否正常(如 A/AAAA 记录是否正确)。
- 服务依赖检查:
- 验证微服务之间的调用链路是否畅通(如服务 A → 服务 B → 数据库)。
- 监控第三方 API(如支付接口、短信服务)的可用性。
- 分布式系统监控:
- 从多个地理位置(如不同机房、CDN 节点)探测服务,识别区域性故障。
配置与使用示例
1. 配置文件(blackbox.yml)
modules:http_2xx: # 定义 HTTP 探针prober: httptimeout: 5shttp:valid_status_codes: [200] # 仅 200 状态码视为成功method: GETno_follow_redirects: falsetls_config:insecure_skip_verify: false # 验证 SSL 证书tcp_connect: # 定义 TCP 探针prober: tcptimeout: 5s
2. Prometheus 配置
scrape_configs:- job_name: 'blackbox'metrics_path: /probeparams:module: [http_2xx] # 使用上面定义的 HTTP 探针static_configs:- targets:- https://example.com # 要监控的目标 URLrelabel_configs:- source_labels: [__address__]target_label: __param_target- source_labels: [__param_target]target_label: instance- target_label: __address__replacement: 127.0.0.1:9115 # Blackbox Exporter 的地址
3. 常用指标
probe_success
:探测是否成功(1=成功,0=失败)。probe_duration_seconds
:探测总耗时。probe_http_status_code
:HTTP 响应状态码。probe_http_content_length
:响应内容长度。probe_tls_verify_result
:SSL 证书验证结果。
优缺点
优点
- 非侵入性:无需在目标系统中安装代理,适合监控第三方服务。
- 灵活的探针类型:支持多种协议,覆盖大多数网络服务。
- 与 Prometheus 无缝集成:利用 Prometheus 的强大查询和告警能力。
缺点
- 无法获取内部指标:只能观察服务的外部表现,无法深入分析系统内部状态(如 CPU/内存使用率)。
- 依赖网络环境:探测结果可能受网络波动影响,需结合白盒监控(如 Node Exporter)综合判断。
对比其他监控工具
- 与 Zabbix/Nagios 对比:
Blackbox Exporter 更专注于网络探测,且与 Prometheus 生态深度集成,适合云原生环境。 - 与 New Relic/Datadog 对比:
后者为商业化 APM 工具,功能更全面,但 Blackbox Exporter 开源免费,适合轻量级场景。
总结
Blackbox Exporter 是 Prometheus 生态中不可或缺的组件,通过外部探测为服务提供可用性和性能监控。它特别适合监控:
- 面向用户的服务(如网站、API)。
- 关键依赖(如数据库、消息队列)的连通性。
- 跨区域、跨网络的分布式系统。
结合其他 Exporter(如 Node Exporter、Process Exporter),可构建完整的监控体系,覆盖从基础设施到应用的全链路监控。
相关文章:
【监控】Blackbox Exporter 黑盒监控
Blackbox Exporter 是 Prometheus 生态系统中的一个重要组件,用于执行 黑盒监控(Blackbox Monitoring)。与传统监控直接访问系统内部指标不同,黑盒监控通过向目标服务发送请求并分析响应,来评估服务的可用性、性能和功…...

历年福州大学保研上机真题
2025福州大学保研上机真题 2024福州大学保研上机真题 2023福州大学保研上机真题 在线测评链接:https://pgcode.cn/problem?classification1 螺旋矩阵 题目描述 给定一个整数 n n n,要求打印出一个 n n n \times n nn 的螺旋矩阵。 例如ÿ…...
【RAG】ragflow源码亮点:文档embedding向量化加权融合
引言: 最近在看ragflow源码,其中有一个较为巧妙地设计:分别将 文字 、 标题 行向量化 之后,直接根据权重,进行加法运算,得到向量融合,增强了文本向量化的表示能力,这里开始讨论一下…...

大模型学习笔记day2 LoRA微调
LORA的核心思想基准模型不进行变化,我额外引入一部分参数来做专属内容处理,同时加上原有模型的推理能力,这部分新增加的的内容就是要训练出来的参数矩阵。 本征维度(Intrinsic Dimension):是指数据或空间中…...

Maven-概述-介绍安装
目录 1.项目对象模型 2.依赖管理模型 3.仓库:用于存储资源,管理各种jar包 4.本地仓库路径 5.Maven配置本地仓库 5.1在Maven路径下新建文件夹用于本地仓库存储 5.2 复制本地仓库路径 5.3 找到配置文件路径,使用VSCode方式打开 5.4 新…...

GitHub Page填写域名显示被占用
问题描述 在Github上使用github page搭建个人博客,在项目中的Settings->Pages页面里面填写个人的域名时,出现如下报错信息,显示域名被占用情况 The custom domain example.com is already taken. If you are the owner of this domain, c…...
js实现监听Ctrl/Cmd+C复制、Ctrl/Cmd+Z撤销 等快捷键
使用document.addEventListener监听keydown事件即可: 上代码: document.addEventListener(keydown, function(e) {// 判断是否按下 Ctrl/Cmd Zif ((e.ctrlKey || e.metaKey) && e.key z && !e.shiftKey) {e.preventDefault(); // 阻…...

java高级 -动态代理
动态代理的概念 动态代理是一种在运行时生成代理对象的机制,无需手动编写代理类。 代理就类似于中介公司,为明星置办各种前期准备。例如歌声需要开演唱会唱歌,那么此时就需要代理对象进行置办场地,设备,然后明星只需要…...

机器学习算法:线性回归
1. 基础概念 线性回归是一种用于建模连续型目标变量(如价格、销量、温度)与一个或多个特征变量(如面积、广告投入、时间)之间线性关系的统计方法。 核心思想:找到一条直线(或超平面)࿰…...
NotePad++编辑Linux服务器文档
参考资料: 参考文章 相关插件链接:链接: https://pan.baidu.com/s/1PBX9NY0pPz0sBqtfNxngXA 提取码: r3t7 概要: 通常简单的文件编辑,可以直接在Linux服务器,或客户端利用VIM命令编辑,编辑即可 但是过于复杂的文件,比如Mycat的XML编辑,就很不方便,需要利用Notepad++…...

常见小问题(Open Folder as PyCharm Project)
1.删除pycharm鼠标右键快捷键打开项目 winr键打开,输入regedit,运行注册器 找到下面的路径:计算机\HKEY_CLASSES_ROOT\Directory\Background\shell\PyCharm 删除即可...

第四十四节:目标检测与跟踪-模板匹配
一、引言 模板匹配的核心思想是通过在输入图像中搜索与预定义模板最相似的区域来定位目标。这种方法计算效率高、实现简单,特别适用于目标外观变化不大且背景相对简单的场景。本文将深入探讨模板匹配的原理、OpenCV中的实现方法、优化技巧以及实际应用案例。 二、模板匹配基础…...
Trae中使用mcp连接MariaDB
开启mariadb远程权限 -- 登录 MariaDB(如果需要密码,会提示输入) mysql -u root -p -- 切换到权限管理数据库 USE mysql; -- 创建允许从任何 IP 访问的 root 用户(推荐使用强密码) GRANT ALL PRIVILEGES ON *.* …...
第12次04 :首页展示用户名
登录后,跳转到首页,首页会展示用户名;未登录时,首页将展示登录与注册的选项。 第一步:index.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml…...
MFC: 文件加解密(单元测试模块)
背景: 对敏感配置文件(如 XML 格式的配置文件、用户信息等)进行加密,防止被人以文本形式直接查看。软件启动前加载加密的配置或资源文件,运行时再进行解密使用,提高逆向破解门槛。在传输 XML 文件…...

vue+ThreeJs 创建过渡圆圈效果
嗨,我是小路。今天主要和大家分享的主题是“vueThreeJs 创建过渡圆圈效果”。 今天在做着色器过渡效果练习,发现出现了很多新的函数,这些都超出了js之外,需要更多的掌握和学习。以下是自己的复盘和梳理。 1.获取距离 定…...

MySQL:12_视图
视图 跟事务里讲的视图没有任何关系 视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。视图的数据变化会影响到基表,基表的数据变化也会影响到视图。 一.基本使用 创建视图 create view 视图名 …...
2025 年开源 LLM 发展趋势细致解读
1. 模型性能的持续跃进与架构创新 到 2025 年,开源 LLM 在性能上不仅持续追赶,甚至在特定任务和评估基准上已经能够与顶级的闭源模型并驾齐驱或展现出独特优势。MoE (Mixture of Experts) 架构的成熟和广泛应用是这一趋势中的核心驱动力之一。 MoE (Mix…...

win11+vs2022 安装opencv 4.11.0图解教程
1. 下载opencv opencv官网下载地址:Releases - OpenCV 2. 双击运行该exe,即可进行安装,安装文件夹可自行选择 安装后目录如下: 3. 配置环境变量 使用win键搜索环境变量,选中系统变量中的Path,然后点击编辑…...

n8n 读写本地文件
1.Docker Desktop 创建容器 docker run -d --name n8n -p 5566:5678 -v D:\docker\n8n_data:/home/node/.n8n -v D:\docker\n8n_files:/home/node/Files n8nio/n8n:latest 参数说明: 1.-d :表示以 detached 模式运行容器(后台运行) 2.--name n8n :指定容器名称为n8n。 3.-p 55…...
详解3DGS
4 可微分的3D高斯 splatting 核心目标与表示选择 我们的目标是从无法线的稀疏SfM点出发,优化出一种能够实现高质量新视角合成的场景表示。为此,我们选择3D高斯作为基本图元,它兼具可微分的体表示特性和非结构化的显式表示优势,既…...
DEBUG设置为False 时,django默认的后台样式等静态文件丢失的问题
1. 处理静态文件(解决后台样式丢失) 当 DEBUG False 时,Django 不再自动处理静态文件(CSS、JS 等),需手动配置: 步骤: 配置 STATIC_ROOT 和 STATIC_URL 在 settings.py 中确保以下…...
如何提高服务器的QPS来应对618活动的并发流量
在电商行业,618大促是继双十一之后最重要的一次“流量大战”。大量用户在短时间内涌入网站下单、抢购,服务器面临前所未有的并发压力。QPS(Queries Per Second,即每秒请求数)作为衡量服务器处理能力的重要指标,直接关系到用户体验…...

LlamaFirewall:开源框架助力检测与缓解AI核心安全风险
LlamaFirewall 是一款面向大语言模型(LLM)应用的系统级安全框架,采用模块化设计支持分层自适应防御。该框架旨在缓解各类AI代理安全风险,包括越狱攻击(jailbreaking)、间接提示注入(indirect pr…...

java基础知识回顾3(可用于Java基础速通)考前,面试前均可用!
目录 一、基本算数运算符 二、自增自减运算符 三、赋值运算符 四、关系运算符 五、逻辑运算符 六、三元运算符 七、 运算符的优先级 八、小案例:在程序中接收用户通过键盘输入的数据 声明:本文章根据黑马程序员b站教学视频做的笔记,可…...
嵌入式软件架构规范之 - 分层设计
一、规范的核心思想:驱动文件的“独立性”与“复用性” 该规范的本质是通过分层隔离,实现驱动代码的高复用性、低耦合性,确保驱动模块仅关注“硬件操作逻辑”,不依赖上层业务或下层硬件接口的具体实现细节。其核心要求包括&#…...

电脑无法识别打印机usb设备怎么办 一键解决!
在当今高度数字化的工作环境中,打印机作为重要的办公设备之一,承担着文件打印、扫描等关键任务。然而,有时我们可能会遇到一个令人头疼的问题——电脑无法识别通过USB连接的打印机。这种情况不仅会影响工作效率,还可能打断正常的工…...

Elasticsearch Synthetic _source
_source 字段包含索引时传入的原始 JSON 文档体。_source 字段本身不被索引(因此不可搜索),但会被存储,以便在执行获取请求(如 get 或 search)时返回。 如果磁盘使用很重要,可以考虑以下选项&a…...

C++ -- vector
vector 1. 关于vector1.1 对比原生数组1.2 vector的核心优势 2. 扩容2.1 底层实现2.2 扩容过程 3. 构造函数4. 接口模拟实现4.1 实现迭代器4.2 扩容4.3 重载[]4.4 插入和删除4.5 构造函数和析构函数 5. 迭代器失效5.1 扩容后失效5.2 越界失效 6. 深浅拷贝 1. 关于vector 1.1 对…...
GitLab-CI简介
概述 持续集成(CI)和 持续交付(CD) 是一种流行的软件开发实践,每次提交都通过自动化的构建(测试、编译、发布)来验证,从而尽早的发现错误。 持续集成实现了DevOps, 使开发人员和运维人员从繁琐的工作中解…...