本篇是《Prometheus 从入门到生产实践》第 5 / 24 篇。配置以文中版本与环境前提为准,实验和故障均为教学场景。完整程序、配置及校验范围见配套实验包。
业务指标回答请求是否正常,主机和协议探测则帮助定位运行环境及用户路径。本篇区分 node_exporter、blackbox_exporter 与批处理场景,避免“装了一个 exporter 就以为监控完整”。

1. exporter 暴露的是哪一个视角
node_exporter 面向主机操作系统指标;blackbox_exporter 从探测位置访问 HTTP、TCP 等目标;应用 SDK 暴露业务内部状态。进程、数据库和队列也常有专用 exporter。
同一个网站可以同时出现应用 up=1、主机正常,但外部 HTTP 探测失败。这并不矛盾,它们观察的路径和成功条件不同。
获取 exporter 时使用 官方 node_exporter 与 blackbox_exporter,按目标平台和权限选用。node_exporter 面向 Unix-like 系统,Windows 主机应选择适合平台的采集器,不要假定指标名完全相同。
2. 主机采集如何接入
在已安装 node_exporter 的 Linux 测试主机上启动实例,再把下列 job 合并到现有 scrape_configs,而不是覆盖整份配置:
scrape_configs:
- job_name: node
static_configs:
- targets: ['192.0.2.20:9100']
labels:
environment: lab
地址是文档示例,替换为抓取端可达地址。检查 exporter 监听、访问规则与认证,然后确认 up{job="node"}。监听在哪个地址和是否允许远程访问,需要按实际拓扑决定。
接着查看 CPU、内存和文件系统指标。CPU 利用率可从 idle counter 的变化计算,内存可用量不要只看 free,磁盘容量和 inode 是不同资源。过滤文件系统时先查看标签和实际挂载,不能盲目剔除所有不认识的设备。
3. 容器内采主机指标有什么区别
容器自己的 proc、sys、根文件系统和命名空间可能与宿主机不同。官方容器部署示例需要对应挂载与参数,不能只启动一个默认容器,就声称它采到了完整宿主机。
对 collectors 也要有选择:某些收集器需要额外权限、访问慢设备或增加时间。先观察抓取时长和失败,再决定是否启用;容器级资源和 Kubernetes 对象状态又由其他来源提供。
4. 黑盒探测为什么采用多目标模式
blackbox_exporter 本身接收“要探测谁”和“使用哪个 module”。Prometheus 的目标地址先作为参数传入,再把真正抓取地址改成 prober。
假设本机 prober 已配置在 19115,模块名为 http_2xx:
scrape_configs:
- job_name: blackbox
metrics_path: /probe
params:
module: [http_2xx]
static_configs:
- targets: ['http://127.0.0.1:19100/api']
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: '127.0.0.1:19115'
它是 scrape_configs 片段,prober 本身需另外安装并配置,不能直接复制后期待 19115 自动出现。运行在不同容器或主机时,同样要更换回环地址。
5. up 和 probe_success 要一起看
up 判断 Prometheus 是否成功拿到 prober 的指标响应,probe_success 判断本次被探测目标是否符合 module 的成功条件。可能 up=1,而 probe_success=0。
诊断时查看探测的阶段、HTTP 状态、DNS、TLS 和超时。HTTPS 需要核对实际域名、SNI 与信任链,不要把跳过证书验证设为长期方案。开放 prober 参数还可能成为访问内网地址的入口,应限制调用方和可探测目标。
多目标 exporter 机制见 官方模式说明。
6. 批处理任务怎样监控
固定主机上的短任务可以输出最后成功时间和处理结果,由 node_exporter textfile collector 等方式抓取;服务级短任务也可能适合 Pushgateway,但需要明确分组键和清理生命周期。
不要把 Pushgateway 当作所有机器指标的通用中转,遗留指标可能长期存在。检查“任务最近成功过”通常比只看进程此刻是否存在更接近业务含义。
练习:为同一个服务分别写出主机、应用、黑盒三个成功条件,再设计一个只让某一层失败的实验,确认告警描述不会把三种含义混在一起。
上一篇:业务埋点实战:请求次数、延迟与并发如何观测 · 系列目录 · 下一篇:服务发现与Relabeling:先弄清数据在哪一阶段改变