监测与回程
Komari Lite 的“服务器监控”和“主动探测”是两类数据:前者由 Agent 定时上报,后者由任务按独立间隔执行。
延迟监测
延迟任务可使用 IPv4 或 IPv6 目标,记录延迟、丢包和可用性。探测间隔会直接影响写入量:
- 5 秒一次约为每分钟 12 次。
- 1 秒一次约为每分钟 60 次。
- 节点数、任务数和保存天数会共同放大数据库占用。
回程线路监测
回程任务由指定服务器向探测目标执行 ICMP 路由追踪,用于持续识别实际回程线路,并监测线路切换、恢复和持续异常。任务中选择的运营商用于标记探测目标,不会限制实际识别结果;例如电信目标经过移动精品线路时,仍会按实际路径识别。
判定流程
系统按以下顺序处理每次探测结果:
- 移除私网地址、无效地址和
100.64.0.0/10共享地址。 - 跳过超时或隐藏的跳点,但保留其数量用于判断路径是否完整。
- 保持有效公网跳点的原始顺序,并结合维护网段、BGP 网段和 ASN 识别线路特征。
- 优先识别精品线路,再分析 CN2 的有序承载结构,最后识别普通骨干线路。
- 将识别结果与任务设置的预期线路比较,更新健康、观察、切换或恢复状态。
支持的线路
| 线路 | 主要识别特征 | 判定说明 |
|---|---|---|
| CMIN2 | AS58807 | 路径中识别到 CMIN2 特征时判为 CMIN2 |
| CMI | AS58453 | 路径中识别到 CMI 特征时判为 CMI |
| CMNET | AS9808、AS56040、AS56041、AS56046 | 未识别到移动精品线路时,按普通移动骨干线路处理 |
| CUG VIP | AS10099、AS9929 | AS10099 与 AS9929 同时出现时判为 CUG VIP;路径仅显示 AS10099 接入时也按 CUG VIP 处理 |
| CUG 优化 | AS10099、AS4837 | CUG 接入后转入 AS4837 时判为 CUG 优化 |
| 9929 | AS9929 | 未出现 AS10099 时,独立识别为 9929 |
| 4837 | AS4837 | 未识别到联通精品线路时,按普通 4837 骨干线路处理 |
| CN2 GIA | AS23764、AS4809、59.43.* 及跳点顺序 | 根据 CN2 入口、持续承载和末端交付结构综合判断 |
| CN2 GT | CN2 后进入明确的 202.97.* 国内 163 承载段 | 只有形成明确的中间承载段时才判为 CN2 GT |
| 163 | AS4134、AS4812 或电信 BGP 网段 | 未形成 CN2 线路结构时,按普通电信 163 线路处理 |
判定优先顺序
系统首先按跳点顺序寻找 CUG、9929、CMIN2 和 CMI 等精品线路入口。多个精品线路特征同时存在时,以路径中最先出现的有效入口为准,同时结合 CUG 接入后的后续承载网络区分 CUG VIP 和 CUG 优化。
没有识别到精品线路后,系统会根据跳点顺序分析 CN2 GIA、CN2 GT 或 CN2 待确认。只有路径不属于上述线路时,才继续按跳点顺序识别普通 163、4837 或 CMNET;仍没有有效特征时,本次结果记为无法识别,不据此切换线路状态。
CN2 GIA 判定
满足以下任一结构时,线路判为 CN2 GIA:
- 首个 CN2 节点前出现 AS23764。
- 路径持续经过至少两个 AS4809 或
59.43.*节点,后续没有明确的国内 163 骨干承载段。 - 持续经过 CN2 后,只进入省级电信接入网完成末端交付,没有出现可确认的
202.97.*骨干承载段。 218.30.48.*境外交接节点之后进入持续的 CN2 承载,后续保持 CN2 或仅转入本地接入网。
218.30.48.* 位于首个 CN2 节点之前时只视为境外交接,不能单独作为 CN2 GT 的依据。省级电信接入地址即使属于 AS4134 或 AS4812,也不会仅凭 ASN 被累计为 GT 骨干节点。
CN2 GT 判定
CN2 GT 必须具有明确的国内 163 中间承载结构:
- 路径先进入 CN2。
- CN2 后至少出现两个由规则确认的
202.97.*骨干候选节点。 - 这些节点必须承担中间传输,不能只由最终跳点凑足数量。
- 进入该 163 承载段后不再返回 CN2。
只有一个接近末端的 202.97.* 节点,或路径无法证明存在多个中间承载节点时,不会直接判为 CN2 GT。
CN2 待确认
路径已经具有 CN2 特征,但证据不足以可靠区分 GIA 和 GT 时,结果显示为“CN2 待确认”。常见情况包括:
- 只看到一个 CN2 节点。
- CN2 后只有一个接近末端的
202.97.*节点。 - 两个
202.97.*节点中有一个已经是最终跳点,无法确认其承担中间传输。 - CN2 后的接入结构混入其他运营商,无法形成完整承载链路。
- 只看到境外交接节点,后续关键 CN2 跳点被隐藏。
- 路径缺失较多,无法可靠还原 CN2 与 163 的先后关系。
隐藏跳点不会把结构已经明确的 GIA 或 GT 降为待确认;只有有效公网跳点本身证据不足时,隐藏跳数才会影响判定。
状态确认与告警
首次探测结果与预期线路一致时,任务直接进入健康状态。识别到非预期线路后,需要达到任务设置的切线确认次数才会确认切换;切线后重新识别到预期线路,也需要达到恢复确认次数才会恢复。不同的有效候选线路会重新开始计数。
“CN2 待确认”不会覆盖上一次已经确认的线路,不累计切线或恢复次数,也不会产生切换、恢复或重复告警。探测失败、没有有效公网跳点或线路无法识别时,同样不会据此切换已确认状态。
切线通知和恢复通知可以分别启用。线路持续处于切换状态时,系统按照任务设置的冷却时间发送重复提醒。
分层保留
监控数据固定启用分层降采样:短期保留更细的原始采样,较旧数据逐层转换为分钟、五分钟和小时级摘要。
这不是把所有数据直接删成低精度,而是按年龄接力:
- 原始层满足交接条件后生成下一层。
- 下一层写入成功后才删除对应旧块。
- 失败时保留原数据,后续继续处理。
服务器 2 秒上报和探测 5 秒执行并不共享同一条时间轴。共享只发生在同一个服务器的一组服务器指标之间,或同一个探测任务的延迟与丢包之间。
容量估算
容量不能只按服务器数估算。更重要的变量是:
- 每台服务器的上报间隔。
- 每台服务器关联的探测任务数。
- 每个任务的探测间隔。
- 数据保留天数。
- 数据波动程度和丢包情况。
调整前建议观察至少完整一个计费日,并同时记录数据库文件、WAL 和监控任务数量。