流量统计原理
控制面通过读取 Agent 节点的网络接口计数器来统计流量,按月度执行配额管理。
采集流程
- Agent 通过 netlink 读取内核网络接口计数器。netlink 失败则回退到
/proc/net/dev - Agent 读取
/proc/sys/kernel/random/boot_id检测系统重启 - 接口被重建或计数器回滚时,Agent 记录一次重置并使用当前值作为新基准,防止负数或不正确扣除
- 控制面存储原始游标值、每小时桶、每日汇总、每月汇总、节点策略、校准基准和事件
接口筛选
默认采集所有接口。限制到特定接口:
ini
NRE_TRAFFIC_INTERFACES=eth0,eth1Agent 在 Docker bridge 网络中只能看到容器内部流量。要采集宿主机总流量,用 host 网络模式或直接在宿主机部署 Agent。
计费周期
每个 Agent 有一个流量策略,控制统计和阻断行为:
| 字段 | 说明 |
|---|---|
| 计数方向 | 入站(rx)、出站(tx)、双向、取大值、混合公式 |
| 计费起始日 | 月度重置日(1–31),默认 1 号 |
| 月度额度 | 每月最大流量。留空 = 不限 |
| 超额阻断 | 开启后达到额度阻止该节点 |
被阻断的节点在面板显示 traffic_blocked。下个计费周期自动恢复。
数据保留
| 粒度 | 默认保留 | 存储内容 |
|---|---|---|
| 每小时桶 | 30 天 | 详细每小时数据 |
| 每日汇总 | 3 个月 | 聚合每日总量 |
| 每月汇总 | 24 个月 | 聚合每月总量 |
控制面按 NRE_TRAFFIC_CLEANUP_INTERVAL(默认 24h)自动清理过期数据。
手动校准
更换网卡、重装系统或迁移数据后,物理计数器可能与实际使用量不匹配。在节点详情页操作:
- 设置基准偏移:从当前计数器增减固定量
- 清除当前周期:当前计费周期归零
校准基准保存在 traffic_baselines 中,后续统计使用校准值。
如何使用
操作指南见 流量额度。