监控 Linux Overlay 网络的可操作方案
一 快速巡检清单
- 查看主机与数据面接口状态:使用ip link/addr确认Overlay 网卡(如 vxlan、geneve、br0 等)是否存在、是否UP、是否有IP;检查MTU是否一致(Overlay 通常小于物理口,如1450字节)。
- 查看容器网络与端点:使用docker network ls/inspect <network_name>确认Overlay 网络是否存在、驱动类型、已连接容器与Endpoint IP。
- 查看 OVS 控制面:使用ovs-vsctl show核对桥、端口、接口类型(vxlan/geneve)与remote_ip是否正确。
- 实时流量与连接:使用iftop -i 观察带宽与对端;使用nmon查看网络吞吐与错误/丢包;必要时用**tcpdump -i **抓包定位异常。
- 容器资源与网络:使用docker stats查看容器网络 I/O;用systemd-cgtop按cgroup观察网络占用。
- 底层转发与策略:用iptables/nftables -L -v -n或nft list ruleset核对NAT/转发规则是否生效。
- 服务发现健康:若依赖etcd/consul,查看**/8500或/2379页面与成员健康,确保Overlay 控制面**一致性与连通性。
二 按技术栈的监控要点
- Docker Swarm Overlay
- 控制面:检查**/etc/docker/daemon.json的cluster-store/cluster-advertise与overlay网络驱动;用docker network inspect核对Attachable**、Containers与IPAM配置。
- 数据面:用ip link/addr确认vxlan与docker_gwbridge状态;用ovs-vsctl show(如使用 OVS)核对VXLAN隧道与remote_ip;用iftop/tcpdump排查跨主机通信。
- 可视化:部署Prometheus + Grafana,抓取容器/节点与(可选)OVS指标,构建Overlay 延迟/丢包/带宽面板。
- Kubernetes CNI Overlay(如 Flannel VXLAN、Calico VXLAN、Weave)
- 控制面:用kubectl get nodes/pods -o wide核对Pod CIDR与节点 IP;查看CNI 插件日志(如journalctl -u kubelet或 CNI DaemonSet);检查kube-proxy规则是否下发。
- 数据面:用ip -d link show <vxlan/geneve>确认VNI/Port与remote_ip;用bridge fdb(VXLAN)查看远端 VTEP学习情况;用tcpdump在Pod 网桥/VTEP处抓包验证封装/解封装。
- 可视化:以cAdvisor + node-exporter + kube-state-metrics为数据源,结合Prometheus/Grafana展示Pod 网络流量、丢包、重传与跨节点延迟。
- 基于 OVS 的 Overlay
- 控制面:用ovs-vsctl show与ovs-ofctl dump-flows
核对隧道端口、流表与VNI映射;确保控制器/OpenFlow下发正常。
- 数据面:用ip -d link查看vxlan/geneve;用ovs-appctl ofproto/trace复现与定位流表命中问题;用tcpdump在物理口/隧道口联合抓包验证封装路径。
三 关键指标与阈值建议
- 接口与隧道健康
- 接口UP/DOWN、MTU一致性(Overlay 建议1450字节以避免分片)、错误/丢包计数不增长。
- 数据面转发
- VXLAN/Geneve的封装/解封装错误为0;FDB/ARP条目稳定,无频繁未知 MAC学习。
- 连通性与性能
- RTT/丢包在业务阈值内;跨节点带宽与P95/P99 延迟稳定;TCP 重传率低。
- 控制面一致性
- etcd/consul集群健康且Leader稳定;Docker/Kubernetes控制面组件Ready;CNI与kube-proxy无持续报错。
- 容器网络
- docker stats中网络 I/O与业务预期匹配;cAdvisor显示网络吞吐与错误正常。
四 告警与可视化落地
- 采集与存储
- 主机/容器层:部署node-exporter、cAdvisor、docker stats导出指标;如使用 OVS,启用OVSDB/OpenFlow或sFlow/NetFlow导出。
- 存储与展示:以Prometheus抓取上述目标,在Grafana构建Overlay 总览、节点/隧道状态、跨节点延迟、带宽与丢包等面板。
- 建议告警规则
- 节点或Overlay 接口 DOWN;MTU 不一致;接口错误/丢包持续增长;VXLAN/Geneve 封装错误>0;FDB 未知 MAC激增;etcd/consul集群不健康;跨节点 P95 延迟或丢包超过阈值。
五 排障命令速查表
| 目标 |
命令示例 |
| 查看接口与地址 |
ip -d link show; ip addr show |
| 查看 OVS 拓扑与端口 |
ovs-vsctl show |
| 查看 OVS 流表 |
ovs-ofctl dump-flows
|
| 查看 VXLAN FDB |
bridge fdb show dev <vxlan_iface> |
| 查看 Docker Overlay 网络 |
docker network ls; docker network inspect |
| 容器实时资源与网络 |
docker stats |
| 实时带宽与对端 |
iftop -i |
| 系统资源与网络 |
nmon |
| 抓包定位封装 |
tcpdump -i -nn -vv |
| 底层转发与策略 |
iptables -L -v -n; nft list ruleset |
| 服务发现健康 |
curl http://127.0.0.1:8500/v1/health/state (Consul) 或检查 etcd 成员列表 |