出海架构最常见的错觉是:
- 中心监控盘全绿
- 边缘 CDN 节点状态正常
- 源站 healthz 200
- 但工单里用户说“东京打开 4 秒、雅加达直接超时”
问题不在“没监控”,在“监控视角太中心化”:
所有指标都从业务主域采集,跨境链路、边缘解析、运营商出口、TLS 握手这些“用户真实路径上的噪声”没人采。
香港节点的新用法:
不当源站、不当转发、不当控制台,只当“全球探针的数据收口层”。
本文给一套工程向设计:探针分层、遥测字段、多区域基线、告警降噪、和“用户红但面板绿”的定责 SOP。
一、先说痛点:中心化监控看不到“最后一跳”
典型监控拓扑:
text
业务主域(华东/新加坡) ├─ Prometheus 采 ECS ├─ SLB 健康检查 └─ APM 采应用埋点
能看:
- CPU/内存/QPS/5xx
- 源站处理耗时
- 内部 RPC 链路
看不着:
- 雅加达用户到 CDN 边缘的 TCP 握手耗时
- 法兰克福递归 DNS 解析到哪个节点
- 移动网络下 TLS 会话复用率
- 跨境公网某时段丢包抖动
- 边缘节点回源时“偶发 502”的分布
这些恰恰决定“用户体感”。
中心化监控测的是“服务能不能跑”,
跨境探针测的是“用户能不能顺滑跑到”。
二、香港节点的定位:遥测收敛,不存业务主数据
合理分层:
text
全球边缘(CDN/Anycast/区域接入点) ▼ 主动探测 + 被动采样 探针 Agent(轻量,跑在香港调度网) ▼ 上报指标/链路样本 香港遥测总线(只收口、不计算业务) ▼ 聚合基线 + 异常标记 中心可观测平台(Grafana/Loki/Prometheus 远端写)
香港层只存:
- 探测结果(RTT/TTFB/丢包/TLS 耗时)
- 边缘错误率分布
- DNS 解析一致性
- 多节点基线偏离度
不存:
- 用户 PII
- 业务订单
- 源站 DB 数据
合规上干净,工程上轻。
三、探针分层:别只 ping,做“合成拨测+被动采样”
1. 合成拨测(主动)
从香港+区域边缘发:
bash
# 分段耗时 curl -s -o /dev/null -w '\ dns=%{time_namelookup} tcp=%{time_connect} tls=%{time_appconnect} ttfb=%{time_starttransfer} total=%{time_total}\n' \ https://example.com # TCPing nc -zv example.com 443 # 多递归 DNS 对照 dig @8.8.8.8 example.com +short dig @223.5.5.5 example.com +short
2. 被动采样(真实边缘流量)
边缘 Nginx/Envoy 吐访问日志字段:
text
$upstream_addr $server_region $ssl_protocol $request_time $upstream_response_time $geoip_country
香港总线消费日志流,按“国家×运营商×边缘节点”切片。
3. 链路质量探针
- mtr 定时打点(不盯中间跳
*,看终点累计丢包) - TCP RTT 采样(用
ss -i或 eBPF 轻量采) - TLS 握手失败率(按证书/边缘节点分组)
四、遥测字段:定责靠“可切片”
别只存“延迟 800ms”,要存上下文:
json
{ "ts": "2026-11-03T12:05:00Z", "probe": "hk-synth-01", "target": "https://example.com", "region": "JP-Tokyo", "isp": "docomo", "dns_rtt_ms": 120, "tcp_rtt_ms": 45, "tls_ms": 180, "ttfb_ms": 420, "total_ms": 860, "http_code": 200, "edge_node": "hnd-edge-03", "origin_hit": "sg-origin", "loss_rate": 0.02 }
能切的维度:
- 按国家:是不是仅东南亚红
- 按运营商:是不是仅移动出口抖
- 按边缘:是不是仅 hnd-edge-03 慢
- 按解析:是不是解析到错误区域
“慢”从一句抱怨,变成一张切片表。
五、多区域基线:告警看“偏离”,不看“绝对值”
跨洋本来 RTT 高,写死阈值会告警风暴。
基线做法:
- 每区域存 7 天同时间段 p50/p95
- 当前值超基线 2σ 才标异常
- 连续 3 周期异常才升级
示例:
text
东京-移动 基线 TTFB p95=380ms 当前=920ms 连续5min → 告警 当前=410ms 单点抖 → 不告警
指标集:
指标 |
用途 |
ICMP/TCPing 丢包 |
链路底噪 |
DNS RTT + 解析一致性 |
递归层定责 |
TLS 握手耗时/失败率 |
证书/边缘配置 |
TTFB p95/p99 |
回源+边缘命中 |
边缘 5xx 分布 |
脏节点隔离 |
多节点基线偏离度 |
区域劣化早发现 |
六、降噪:把“红”分成三级
text
L1 信息:单节点单周期抖动,自动收敛 L2 警告:某区域基线偏离,派 SRE 看板 L3 致命:多区域边缘同时 5xx,触发调度层降权
调度联动(前面调度中枢那篇的下游):
- 探测发现 sg-origin TTFB 掉分 → 发事件给调度层
- 调度层先把权重从 70% 降到 20%
- 不切 DNS、不重启、不人工点控制台
探针不是“看板”,是“决策输入”。
七、用户红但面板绿:定责 SOP
工单:“雅加达打不开,你们监控说正常。”
text
1. 查香港总线:雅加达边缘探针 TTFB/丢包 2. 切维度:运营商(Telkomsel/Indosat) 3. 查 DNS:解析到哪个 CDN 节点 4. 查 TCPing:443 通不通、握手耗时 5. 查边缘日志:该节点回源错误率 6. 对照中心监控:源站 healthz 是否绿
典型结论:
- 中心绿 + 雅加达探针红 → 边缘调度歪/运营商出口丢包
- 解析到美国节点 → ECS 没透传
- TLS 握手 600ms → 边缘没会话复用
- 仅 Telkomsel 红 → 运营商 QoS 限速
排障时顺手用 KKCE 的网站测速做多地域首包对照,把探针数据和真实浏览器体验放一起验证,避免“合成绿、真实红”。
八、最小落地架构(不依赖重组件)
text
香港 2C4G 轻量机 ×2(无状态) ├─ probe-agent(定时 curl/dig/nc/mtr) ├─ log-relay(消费边缘 Nginx 日志) ├─ baseline-engine(滚动基线计算) └─ event-bus(发告警/调度事件) 存储: - 时序:VictoriaMetrics / Prometheus 远端写 - 日志:Loki / SLS - 看板:Grafana 按区域×ISP 切片
原则:
- 香港不写业务库
- 探针失败不影响业务
- 配置版本化、Agent 自注册
- 控制面租约防脑裂(参考前篇)
九、什么别用探针中枢干
- 把真实用户 token 打进合成拨测 URL
- 只测首页不测核心 API/静态资源
- 单点香港探针下全局结论(至少 3 地域交叉)
- 告警只配“超时即罚”不配基线偏离
- 探针频率过高把边缘打挂
- 把 PII 写进遥测字段
十、总结
香港服务器最被浪费的,是“只当业务机”:
装 Nginx、挂源站、接数据库、背攻击。
但出海架构跑深了,缺的是一个能看见用户真实路径的观测收口点。
它该是:
全球边缘的“听诊器”,不是“心脏”。
ICMP 探链路,
curl 探分段,
dig 探解析,
边缘日志探真实错误,
基线探测知“正常长什么样”。
“用户说慢”不再是玄学,
是雅加达-Telkomsel-hnd-edge-03-TLS 480ms-解析到美西节点。
一台香港机器业务跑得再稳,
也救不了一个只有中心监控、没有跨境探针的排障体系。