systemctl 显示 Nginx 正在运行,只能说明进程存在。域名解析、证书、重定向、PHP 和数据库任何一环出问题,访问者仍可能看到错误。所以这次给博客增加了 Blackbox Exporter,用请求结果观察网站入口。
它和 Node Exporter 的区别
Node Exporter 观察主机内部资源;Blackbox Exporter 按指定模块发起 HTTP、TCP 等探测。本站用 HTTPS 探测博客首页,关心请求是否成功、耗时以及证书有效期。
Blackbox Exporter 本身在本机 9115 端口运行。Prometheus 请求它的 /probe 接口,同时告诉它要检查的网站地址;它再请求目标并返回探测指标。/metrics 则主要提供采集器自身的信息,两者用途不同。
先看这两个指标
up{job="blackbox_http"}
probe_success{job="blackbox_http"}第一条说明 Prometheus 能否取得探测结果,第二条说明这次探测本身是否成功。采集器能正常输出“网站失败”,于是 up 为 1 而 probe_success 为 0,这种情况完全合理。
耗时可以查看:
probe_duration_seconds{job="blackbox_http"}单位是秒,不是毫秒。它反映探测这一过程的耗时,不能直接当成每位访客浏览完整页面的加载时间。
证书剩余多少天
(probe_ssl_earliest_cert_expiry{job="blackbox_http"} - time()) / 86400证书到期时间与当前时间相减得到秒,除以 86400 变成天。本站设置不足 14 天持续一段时间后告警,提前留下续签和验证余量。指标缺失时要结合探测失败排查,不能因为没有证书曲线就认定证书安全。
配置位于 /etc/blackbox_exporter/blackbox.yml。本站的 HTTP 模块启用正常证书验证、跟随重定向并要求 HTTPS。证书问题应修复证书链、域名匹配或时间问题,不能为了让面板变绿就跳过 TLS 校验。
首页 200 也有边界
首页返回成功,不代表后台登录、评论提交和所有图片都正常。页面也可能是一个错误提示页,却仍返回 200。如果要检查正文关键字,需要配置相应响应内容校验,并在改版后维护规则。
本站采集器仍部署在同一台服务器。它可以发现很多应用问题,但不能代表所有公网访问路径,更无法在整机断电后继续工作。当前先把这条本机 HTTPS 链路理解清楚,以后再增加独立位置的访问监测。
直接检查探测结果
可在服务器运行 curl -fsSG http://127.0.0.1:9115/probe --data-urlencode 'target=https://yuanty.ltd/typecho/' --data-urlencode 'module=http_2xx',模块名需以实际 blackbox.yml 为准。查询 probe_success、probe_http_status_code 与耗时;DNS 或 TLS 阶段失败可能尚无 HTTP 响应。debug 探测输出可能含内部信息,分享前检查。
内容复核与修订:2026-10-29。实验示例与本站运行记录分别说明;原始归档日期保留。
作者补充|如果页面探测失败,建议把 probe_success、probe_http_status_code 和 probe_duration_seconds 放在一起看:前者判断结果,状态码帮助区分 HTTP 错误,耗时辅助判断超时。DNS 或 TLS 阶段失败时,状态码可能是 0,不能把 0 当成网站返回的 HTTP 状态码。