1. 设备识别:分清“真网卡”与“虚网卡”
在监控列表中,你会看到多种设备,统计外网流量时必须过滤:
| 设备前缀 | 类型 | 说明 | 统计建议 |
|---|---|---|---|
enp... / eth... | 物理网卡 | 服务器接路由器的网线接口。包含 上网流量 + 局域网互传。 | 主统计对象 |
br-... | Docker 网桥 | 每个 Docker 网络(Project)的汇总口。 | 选看(查具体业务) |
veth... | 容器虚线 | 单个容器的流量。数量极多。 | 建议过滤排除 |
💡 技巧:查找
br-xxxx对应哪个 Docker 项目:docker network ls --no-trunc | grep <ID 前 12 位>
2. 核心 PromQL 表达式
计算**总流量(GB)**的通用公式:
(
sum(increase(node_network_receive_bytes_total{instance="192.168.31.2:9100", device=~"enp2s0|wlp1s0"}[$__range]))
+
sum(increase(node_network_transmit_bytes_total{instance="192.168.31.2:9100", device=~"enp2s0|wlp1s0"}[$__range]))
) / 1024 / 1024 / 1024
increase(...[$__range]):计算选定时间段内的增量。它会自动处理服务器重启导致的计数器归零(Counter Reset)。device=~"enp2s0|wlp1s0":使用正则只选物理网卡,排除br-和veth,避免重复计算。/ 1024 / 1024 / 1024:将单位从 Bytes 转换为 GB。