<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://md5.pw/index.php?action=history&amp;feed=atom&amp;title=%E7%94%A8Docker%E9%83%A8%E7%BD%B2%E6%9C%8D%E5%8A%A1%E5%99%A8TCP_%E5%BB%B6%E6%97%B6%E7%9B%91%E6%8E%A7</id>
	<title>用Docker部署服务器TCP 延时监控 - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://md5.pw/index.php?action=history&amp;feed=atom&amp;title=%E7%94%A8Docker%E9%83%A8%E7%BD%B2%E6%9C%8D%E5%8A%A1%E5%99%A8TCP_%E5%BB%B6%E6%97%B6%E7%9B%91%E6%8E%A7"/>
	<link rel="alternate" type="text/html" href="https://md5.pw/index.php?title=%E7%94%A8Docker%E9%83%A8%E7%BD%B2%E6%9C%8D%E5%8A%A1%E5%99%A8TCP_%E5%BB%B6%E6%97%B6%E7%9B%91%E6%8E%A7&amp;action=history"/>
	<updated>2026-04-20T05:14:42Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://md5.pw/index.php?title=%E7%94%A8Docker%E9%83%A8%E7%BD%B2%E6%9C%8D%E5%8A%A1%E5%99%A8TCP_%E5%BB%B6%E6%97%B6%E7%9B%91%E6%8E%A7&amp;diff=1493&amp;oldid=prev</id>
		<title>Aricch：​add category</title>
		<link rel="alternate" type="text/html" href="https://md5.pw/index.php?title=%E7%94%A8Docker%E9%83%A8%E7%BD%B2%E6%9C%8D%E5%8A%A1%E5%99%A8TCP_%E5%BB%B6%E6%97%B6%E7%9B%91%E6%8E%A7&amp;diff=1493&amp;oldid=prev"/>
		<updated>2026-03-05T03:50:33Z</updated>

		<summary type="html">&lt;p&gt;add category&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;zh&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2026年3月4日 (三) 20:50的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l301&quot;&gt;第301行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第301行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:500 常见应用指南 — Application Guides]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key my_wiki:diff:1.41:old-1492:rev-1493:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Aricch</name></author>
	</entry>
	<entry>
		<id>https://md5.pw/index.php?title=%E7%94%A8Docker%E9%83%A8%E7%BD%B2%E6%9C%8D%E5%8A%A1%E5%99%A8TCP_%E5%BB%B6%E6%97%B6%E7%9B%91%E6%8E%A7&amp;diff=1492&amp;oldid=prev</id>
		<title>Aricch：​init</title>
		<link rel="alternate" type="text/html" href="https://md5.pw/index.php?title=%E7%94%A8Docker%E9%83%A8%E7%BD%B2%E6%9C%8D%E5%8A%A1%E5%99%A8TCP_%E5%BB%B6%E6%97%B6%E7%9B%91%E6%8E%A7&amp;diff=1492&amp;oldid=prev"/>
		<updated>2026-03-05T03:49:43Z</updated>

		<summary type="html">&lt;p&gt;init&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;用 Docker / Docker Compose 部署“服务器延时（Latency）监控”**的常用方案：&amp;#039;&amp;#039;&amp;#039;Prometheus + Blackbox Exporter + Grafana&amp;#039;&amp;#039;&amp;#039;。Blackbox Exporter 负责对目标做 &amp;#039;&amp;#039;&amp;#039;HTTP / TCP / ICMP(Ping)&amp;#039;&amp;#039;&amp;#039; 探测并产出 &amp;lt;code&amp;gt;probe_*&amp;lt;/code&amp;gt; 指标，Prometheus 抓取，Grafana 展示。&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 1) 目录结构 ==&lt;br /&gt;
在一台“监控机”（能访问你要监控的服务器/端口的那台机器）上建目录：&lt;br /&gt;
 &amp;lt;code&amp;gt;monitoring/&lt;br /&gt;
   docker-compose.yml&lt;br /&gt;
   prometheus/&lt;br /&gt;
     prometheus.yml&lt;br /&gt;
     rules/&lt;br /&gt;
       blackbox-alerts.yml        # 可选：告警规则&lt;br /&gt;
   blackbox/&lt;br /&gt;
     blackbox.yml&lt;br /&gt;
   grafana/&lt;br /&gt;
     provisioning/&lt;br /&gt;
       datasources/&lt;br /&gt;
         datasource.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 2) docker-compose.yml ==&lt;br /&gt;
&amp;lt;blockquote&amp;gt;版本我这里选用：&lt;br /&gt;
&lt;br /&gt;
* Prometheus &amp;lt;code&amp;gt;prom/prometheus:v3.10.0&amp;lt;/code&amp;gt;（示例；该 tag 存在于 Docker Hub）(Docker Hub)&lt;br /&gt;
* Blackbox Exporter &amp;lt;code&amp;gt;prom/blackbox-exporter:v0.28.0&amp;lt;/code&amp;gt;(Docker Hub)&lt;br /&gt;
* Grafana &amp;lt;code&amp;gt;grafana/grafana:12.3-ubuntu&amp;lt;/code&amp;gt;（你也可换成 &amp;lt;code&amp;gt;12.3&amp;lt;/code&amp;gt; 等）(Docker Hub)&lt;br /&gt;
* Alertmanager 可选 &amp;lt;code&amp;gt;prom/alertmanager:v0.31.1&amp;lt;/code&amp;gt;(Docker Hub)&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;services:&lt;br /&gt;
   prometheus:&lt;br /&gt;
     image: prom/prometheus:v3.10.0&lt;br /&gt;
     container_name: prometheus&lt;br /&gt;
     command:&lt;br /&gt;
       - --config.file=/etc/prometheus/prometheus.yml&lt;br /&gt;
       - --storage.tsdb.path=/prometheus&lt;br /&gt;
       - --web.enable-lifecycle&lt;br /&gt;
     volumes:&lt;br /&gt;
       - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro&lt;br /&gt;
       - ./prometheus/rules:/etc/prometheus/rules:ro&lt;br /&gt;
       - prometheus_data:/prometheus&lt;br /&gt;
     ports:&lt;br /&gt;
       - &amp;quot;9090:9090&amp;quot;&lt;br /&gt;
     restart: unless-stopped&lt;br /&gt;
     networks: [monitor]&lt;br /&gt;
 &lt;br /&gt;
   blackbox-exporter:&lt;br /&gt;
     image: prom/blackbox-exporter:v0.28.0&lt;br /&gt;
     container_name: blackbox-exporter&lt;br /&gt;
     command:&lt;br /&gt;
       - --config.file=/etc/blackbox/blackbox.yml&lt;br /&gt;
     volumes:&lt;br /&gt;
       - ./blackbox/blackbox.yml:/etc/blackbox/blackbox.yml:ro&lt;br /&gt;
     # 建议：生产环境不对外暴露 9115；需要本机调试再开端口映射&lt;br /&gt;
     ports:&lt;br /&gt;
       - &amp;quot;9115:9115&amp;quot;&lt;br /&gt;
     restart: unless-stopped&lt;br /&gt;
     networks: [monitor]&lt;br /&gt;
     # ICMP(ping) 需要额外权限（二选一：cap_add 更推荐；privileged 更大）&lt;br /&gt;
     cap_add:&lt;br /&gt;
       - NET_RAW&lt;br /&gt;
     # privileged: true&lt;br /&gt;
 &lt;br /&gt;
   grafana:&lt;br /&gt;
     image: grafana/grafana:12.3-ubuntu&lt;br /&gt;
     container_name: grafana&lt;br /&gt;
     environment:&lt;br /&gt;
       - GF_SECURITY_ADMIN_USER=admin&lt;br /&gt;
       - GF_SECURITY_ADMIN_PASSWORD=admin  # 首次登录后务必修改&lt;br /&gt;
     volumes:&lt;br /&gt;
       - grafana_data:/var/lib/grafana&lt;br /&gt;
       - ./grafana/provisioning:/etc/grafana/provisioning:ro&lt;br /&gt;
     ports:&lt;br /&gt;
       - &amp;quot;3000:3000&amp;quot;&lt;br /&gt;
     restart: unless-stopped&lt;br /&gt;
     networks: [monitor]&lt;br /&gt;
 &lt;br /&gt;
   # 可选：Prometheus 规则触发后，用 Alertmanager 分发通知&lt;br /&gt;
   alertmanager:&lt;br /&gt;
     image: prom/alertmanager:v0.31.1&lt;br /&gt;
     container_name: alertmanager&lt;br /&gt;
     # 先用默认示例配置也能跑起来；要发通知再挂载你自己的 alertmanager.yml&lt;br /&gt;
     ports:&lt;br /&gt;
       - &amp;quot;9093:9093&amp;quot;&lt;br /&gt;
     restart: unless-stopped&lt;br /&gt;
     networks: [monitor]&lt;br /&gt;
 &lt;br /&gt;
 networks:&lt;br /&gt;
   monitor:&lt;br /&gt;
 &lt;br /&gt;
 volumes:&lt;br /&gt;
   prometheus_data:&lt;br /&gt;
   grafana_data:&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 3) blackbox.yml（探测模块配置） ==&lt;br /&gt;
Blackbox Exporter 支持 HTTP/HTTPS、TCP、ICMP、DNS、gRPC 等探测。(GitHub)&lt;br /&gt;
&lt;br /&gt;
先放最常用的 3 个模块：HTTP 200、TCP 端口连通、ICMP ping。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;blackbox/blackbox.yml&amp;lt;/code&amp;gt;：&lt;br /&gt;
 &amp;lt;code&amp;gt;modules:&lt;br /&gt;
   http_2xx:&lt;br /&gt;
     prober: http&lt;br /&gt;
     timeout: 5s&lt;br /&gt;
     http:&lt;br /&gt;
       preferred_ip_protocol: &amp;quot;ip4&amp;quot;&lt;br /&gt;
       valid_http_versions: [&amp;quot;HTTP/1.1&amp;quot;, &amp;quot;HTTP/2&amp;quot;]&lt;br /&gt;
       method: GET&lt;br /&gt;
       no_follow_redirects: false&lt;br /&gt;
 &lt;br /&gt;
   tcp_connect:&lt;br /&gt;
     prober: tcp&lt;br /&gt;
     timeout: 5s&lt;br /&gt;
 &lt;br /&gt;
   icmp:&lt;br /&gt;
     prober: icmp&lt;br /&gt;
     timeout: 3s&lt;br /&gt;
     icmp:&lt;br /&gt;
       preferred_ip_protocol: &amp;quot;ip4&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;#039;&amp;#039;&amp;#039;ICMP 权限提示（很关键）&amp;#039;&amp;#039;&amp;#039;：在 Linux 上，ICMP 探测需要 &amp;lt;code&amp;gt;CAP_NET_RAW&amp;lt;/code&amp;gt; 或 root 等权限；Docker 里通常用 &amp;lt;code&amp;gt;cap_add: NET_RAW&amp;lt;/code&amp;gt; 或 &amp;lt;code&amp;gt;privileged&amp;lt;/code&amp;gt; 解决。(GitHub)&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 4) prometheus.yml（抓取 blackbox 探测结果） ==&lt;br /&gt;
Prometheus 抓取 Blackbox Exporter 通常用 &amp;#039;&amp;#039;&amp;#039;multi-target exporter pattern&amp;#039;&amp;#039;&amp;#039;：Prometheus 实际请求的是 blackbox 的 &amp;lt;code&amp;gt;/probe&amp;lt;/code&amp;gt;，目标地址通过 &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; 参数传递，并通过 relabel 把目标写到 &amp;lt;code&amp;gt;instance&amp;lt;/code&amp;gt; 标签。(Prometheus)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;prometheus/prometheus.yml&amp;lt;/code&amp;gt;：&lt;br /&gt;
 &amp;lt;code&amp;gt;global:&lt;br /&gt;
   scrape_interval: 15s&lt;br /&gt;
   scrape_timeout: 10s&lt;br /&gt;
   evaluation_interval: 15s&lt;br /&gt;
 &lt;br /&gt;
 rule_files:&lt;br /&gt;
   - /etc/prometheus/rules/*.yml&lt;br /&gt;
 &lt;br /&gt;
 scrape_configs:&lt;br /&gt;
   # 1) 抓 blackbox-exporter 自身 /metrics（白盒）&lt;br /&gt;
   - job_name: blackbox_exporter&lt;br /&gt;
     static_configs:&lt;br /&gt;
       - targets: [&amp;quot;blackbox-exporter:9115&amp;quot;]&lt;br /&gt;
 &lt;br /&gt;
   # 2) HTTP 延时（从监控机到目标 HTTP 服务的响应耗时）&lt;br /&gt;
   - job_name: blackbox_http&lt;br /&gt;
     metrics_path: /probe&lt;br /&gt;
     params:&lt;br /&gt;
       module: [http_2xx]&lt;br /&gt;
     static_configs:&lt;br /&gt;
       - targets:&lt;br /&gt;
           - &amp;lt;nowiki&amp;gt;https://example.com&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
           - &amp;lt;nowiki&amp;gt;https://api.example.com/health&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
         labels:&lt;br /&gt;
           group: web&lt;br /&gt;
     relabel_configs:&lt;br /&gt;
       - source_labels: [__address__]&lt;br /&gt;
         target_label: __param_target&lt;br /&gt;
       - source_labels: [__param_target]&lt;br /&gt;
         target_label: instance&lt;br /&gt;
       - target_label: __address__&lt;br /&gt;
         replacement: blackbox-exporter:9115&lt;br /&gt;
 &lt;br /&gt;
   # 3) TCP 端口连通 + 连接延时（适合 SSH/DB/Redis 等）&lt;br /&gt;
   - job_name: blackbox_tcp&lt;br /&gt;
     metrics_path: /probe&lt;br /&gt;
     params:&lt;br /&gt;
       module: [tcp_connect]&lt;br /&gt;
     static_configs:&lt;br /&gt;
       - targets:&lt;br /&gt;
           - 10.0.0.10:22&lt;br /&gt;
           - 10.0.0.11:5432&lt;br /&gt;
         labels:&lt;br /&gt;
           group: tcp&lt;br /&gt;
     relabel_configs:&lt;br /&gt;
       - source_labels: [__address__]&lt;br /&gt;
         target_label: __param_target&lt;br /&gt;
       - source_labels: [__param_target]&lt;br /&gt;
         target_label: instance&lt;br /&gt;
       - target_label: __address__&lt;br /&gt;
         replacement: blackbox-exporter:9115&lt;br /&gt;
 &lt;br /&gt;
   # 4) ICMP ping 延时（需要 NET_RAW 权限）&lt;br /&gt;
   - job_name: blackbox_icmp&lt;br /&gt;
     metrics_path: /probe&lt;br /&gt;
     params:&lt;br /&gt;
       module: [icmp]&lt;br /&gt;
     static_configs:&lt;br /&gt;
       - targets:&lt;br /&gt;
           - 10.0.0.10&lt;br /&gt;
           - 10.0.0.11&lt;br /&gt;
         labels:&lt;br /&gt;
           group: icmp&lt;br /&gt;
     relabel_configs:&lt;br /&gt;
       - source_labels: [__address__]&lt;br /&gt;
         target_label: __param_target&lt;br /&gt;
       - source_labels: [__param_target]&lt;br /&gt;
         target_label: instance&lt;br /&gt;
       - target_label: __address__&lt;br /&gt;
         replacement: blackbox-exporter:9115&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;想把“不同模块、不同 targets”合并到一个 job 里也可以（用 &amp;lt;code&amp;gt;labels: module: xxx&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;__param_module&amp;lt;/code&amp;gt; 注入），Prometheus 官方指南里有示例。(Prometheus)&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 5) Grafana：自动配置 Prometheus 数据源 ==&lt;br /&gt;
Grafana 支持通过 provisioning 文件自动创建数据源。(Grafana Labs)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;grafana/provisioning/datasources/datasource.yml&amp;lt;/code&amp;gt;：&lt;br /&gt;
 &amp;lt;code&amp;gt;apiVersion: 1&lt;br /&gt;
 &lt;br /&gt;
 datasources:&lt;br /&gt;
   - name: Prometheus&lt;br /&gt;
     type: prometheus&lt;br /&gt;
     access: proxy&lt;br /&gt;
     url: &amp;lt;nowiki&amp;gt;http://prometheus:9090&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     isDefault: true&lt;br /&gt;
     editable: false&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 6) 启动 ==&lt;br /&gt;
在 &amp;lt;code&amp;gt;monitoring/&amp;lt;/code&amp;gt; 目录执行：&lt;br /&gt;
 &amp;lt;code&amp;gt;docker compose up -d&amp;lt;/code&amp;gt;&lt;br /&gt;
打开：&lt;br /&gt;
&lt;br /&gt;
* Prometheus：&amp;lt;code&amp;gt;http://&amp;lt;监控机IP&amp;gt;:9090&amp;lt;/code&amp;gt;&lt;br /&gt;
* Grafana：&amp;lt;code&amp;gt;http://&amp;lt;监控机IP&amp;gt;:3000&amp;lt;/code&amp;gt;（账号密码你在 compose 里设的 admin/admin）&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 7) 快速验证（建议你先做这一步排错） ==&lt;br /&gt;
&lt;br /&gt;
=== 7.1 直接访问 blackbox /probe 看输出 ===&lt;br /&gt;
Blackbox Exporter 支持直接访问 &amp;lt;code&amp;gt;/probe?target=...&amp;amp;module=...&amp;lt;/code&amp;gt; 获取指标输出，&amp;lt;code&amp;gt;probe_success&amp;lt;/code&amp;gt; 会告诉你探测是否成功。(GitHub)&lt;br /&gt;
&lt;br /&gt;
例如（在监控机上）：&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://localhost:9115/probe?target=prometheus.io&amp;amp;module=http_2xx&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://localhost:9115/probe?target=10.0.0.10&amp;amp;module=icmp&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 7.2 Prometheus Targets 页面 ===&lt;br /&gt;
Prometheus UI → &amp;#039;&amp;#039;&amp;#039;Status → Targets&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
看 &amp;lt;code&amp;gt;blackbox_http / blackbox_tcp / blackbox_icmp&amp;lt;/code&amp;gt; 是否 &amp;lt;code&amp;gt;UP&amp;lt;/code&amp;gt;。&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 8) 在 Grafana 里看“延时”看哪些指标 ==&lt;br /&gt;
最常用的两个：&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;是否可达&amp;#039;&amp;#039;&amp;#039;：&amp;lt;code&amp;gt;probe_success&amp;lt;/code&amp;gt;（1=成功，0=失败）(Prometheus)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;探测总耗时&amp;#039;&amp;#039;&amp;#039;：&amp;lt;code&amp;gt;probe_duration_seconds&amp;lt;/code&amp;gt;（你要的“延时/Latency”核心指标）(Prometheus)&lt;br /&gt;
&lt;br /&gt;
PromQL 示例（Grafana 面板里直接用）：&lt;br /&gt;
&lt;br /&gt;
* 某组目标最近 5 分钟平均延时：&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;avg_over_time(probe_duration_seconds{job=&amp;quot;blackbox_icmp&amp;quot;}[5m])&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 最近 5 分钟最大延时（看尖刺）：&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;max_over_time(probe_duration_seconds{job=&amp;quot;blackbox_http&amp;quot;}[5m])&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 可用率（过去 10 分钟内成功率）：&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;avg_over_time(probe_success{job=&amp;quot;blackbox_http&amp;quot;}[10m]) * 100&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 想拆解 HTTP 延时（DNS/连接/TLS/传输） ===&lt;br /&gt;
Blackbox Exporter 还会给出 &amp;lt;code&amp;gt;probe_http_duration_seconds{phase=&amp;quot;resolve|connect|tls|processing|transfer&amp;quot;}&amp;lt;/code&amp;gt; 这种分阶段指标；这些 phase 含义在社区里有明确解释：resolve=DNS、connect=TCP 建连、tls=TLS 握手、processing=等待首字节、transfer=传输响应。(Google Groups)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 9) 直接套用的 Grafana Dashboard ==&lt;br /&gt;
Grafana 官方仪表盘库里有现成的 &amp;#039;&amp;#039;&amp;#039;Prometheus Blackbox Exporter&amp;#039;&amp;#039;&amp;#039; dashboard（例如 ID：&amp;#039;&amp;#039;&amp;#039;7587&amp;#039;&amp;#039;&amp;#039;）。你在 Grafana → &amp;#039;&amp;#039;&amp;#039;Dashboards → Import&amp;#039;&amp;#039;&amp;#039;，输入 7587，然后选择 Prometheus 数据源即可。(Grafana Labs)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 10) 可选：Prometheus 告警规则（延时过高 / 探测失败） ==&lt;br /&gt;
&amp;lt;code&amp;gt;prometheus/rules/blackbox-alerts.yml&amp;lt;/code&amp;gt;：&lt;br /&gt;
 &amp;lt;code&amp;gt;groups:&lt;br /&gt;
 - name: blackbox&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt; rules:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt; - alert: BlackboxProbeFailed&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;   expr: probe_success == 0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;   for: 2m&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;   labels:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;     severity: critical&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;   annotations:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;     summary: &amp;quot;探测失败: &amp;lt;nowiki&amp;gt;{{ $labels.instance }}&amp;lt;/nowiki&amp;gt;&amp;quot;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;     description: &amp;quot;job=&amp;lt;nowiki&amp;gt;{{ $labels.job }}&amp;lt;/nowiki&amp;gt; 连续 2 分钟探测失败&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt; - alert: BlackboxHighLatency&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;   expr: probe_duration_seconds &amp;gt; 0.5&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;   for: 5m&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;   labels:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;     severity: warning&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;   annotations:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;     summary: &amp;quot;延时过高: &amp;lt;nowiki&amp;gt;{{ $labels.instance }}&amp;lt;/nowiki&amp;gt;&amp;quot;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;     description: &amp;quot;job=&amp;lt;nowiki&amp;gt;{{ $labels.job }}&amp;lt;/nowiki&amp;gt; 延时 &amp;gt; 0.5s 持续 5 分钟&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Alertmanager 的作用是对 Prometheus 产生的告警做去重/分组/路由到邮件、PagerDuty、Webhook 等。(Prometheus)&lt;br /&gt;
&lt;br /&gt;
如果你想我给你一份“发到企业微信/钉钉/飞书/Telegram/Webhook”的 alertmanager.yml，我也可以直接给模板。&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 11) 常见坑（你大概率会遇到） ==&lt;br /&gt;
&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;ICMP 全部失败&amp;#039;&amp;#039;&amp;#039;  大概率是权限问题：Linux 下 ICMP 需要 &amp;lt;code&amp;gt;CAP_NET_RAW&amp;lt;/code&amp;gt; / root / 或配置 &amp;lt;code&amp;gt;ping_group_range&amp;lt;/code&amp;gt;；Docker 里通常加 &amp;lt;code&amp;gt;cap_add: NET_RAW&amp;lt;/code&amp;gt;。(GitHub)&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;HTTP 探测失败但浏览器能打开&amp;#039;&amp;#039;&amp;#039;  常见是：目标需要特定 Host/SNI、重定向、证书问题、内网 DNS 不通。可以先用 &amp;lt;code&amp;gt;/probe?...&amp;amp;debug=true&amp;lt;/code&amp;gt; 看详细原因（blackbox 支持 debug 参数）。(GitHub)&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Grafana 连不上 Prometheus&amp;#039;&amp;#039;&amp;#039;  确认 datasource URL 用的是 Docker 网络内的 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://prometheus:9090&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;（而不是 &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt;）。&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;不建议把 9115 暴露到公网&amp;#039;&amp;#039;&amp;#039;  Blackbox 会帮你去探测任意目标；暴露公网相当于给别人一个“探测器”。生产建议去掉 &amp;lt;code&amp;gt;ports: &amp;quot;9115:9115&amp;quot;&amp;lt;/code&amp;gt; 或加防火墙/反代鉴权。&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Aricch</name></author>
	</entry>
</feed>