Skip to content

流量统计原理

控制面通过读取 Agent 节点的网络接口计数器来统计流量,按月度执行配额管理。

采集流程

  1. Agent 通过 netlink 读取内核网络接口计数器。netlink 失败则回退到 /proc/net/dev
  2. Agent 读取 /proc/sys/kernel/random/boot_id 检测系统重启
  3. 接口被重建或计数器回滚时,Agent 记录一次重置并使用当前值作为新基准,防止负数或不正确扣除
  4. 控制面存储原始游标值、每小时桶、每日汇总、每月汇总、节点策略、校准基准和事件

接口筛选

默认采集所有接口。限制到特定接口:

ini
NRE_TRAFFIC_INTERFACES=eth0,eth1

Agent 在 Docker bridge 网络中只能看到容器内部流量。要采集宿主机总流量,用 host 网络模式或直接在宿主机部署 Agent。

计费周期

每个 Agent 有一个流量策略,控制统计和阻断行为:

字段说明
计数方向入站(rx)、出站(tx)、双向、取大值、混合公式
计费起始日月度重置日(1–31),默认 1 号
月度额度每月最大流量。留空 = 不限
超额阻断开启后达到额度阻止该节点

被阻断的节点在面板显示 traffic_blocked。下个计费周期自动恢复。

数据保留

粒度默认保留存储内容
每小时桶30 天详细每小时数据
每日汇总3 个月聚合每日总量
每月汇总24 个月聚合每月总量

控制面按 NRE_TRAFFIC_CLEANUP_INTERVAL(默认 24h)自动清理过期数据。

手动校准

更换网卡、重装系统或迁移数据后,物理计数器可能与实际使用量不匹配。在节点详情页操作:

  • 设置基准偏移:从当前计数器增减固定量
  • 清除当前周期:当前计费周期归零

校准基准保存在 traffic_baselines 中,后续统计使用校准值。

如何使用

操作指南见 流量额度

基于 GNU General Public License v3.0 发布。