1. 课程导入与目标定位

在传统数据中心运维中,网络工程师最熟悉的工作方式是“出问题再查”:登录设备、敲 show 命令、看接口计数、抓包分析。这种方式在几十台交换机的规模下尚可应付,但当数据中心扩展到数百甚至上千台叶脊(Spine-Leaf)交换机、承载数万个虚拟机与容器时,故障定位的难度会呈指数级上升。一个典型场景是:某业务团队反馈“应用时延抖动”,而网络设备的所有接口计数器都显示正常,CPU 与内存也没有异常。问题究竟出在哪一跳?是微突发(microburst)导致的瞬时丢包,还是某条 ECMP 路径上的队列拥塞?传统轮询式监控的采样周期通常是分钟级,根本无法捕捉毫秒级的瞬态事件。

这正是网络遥测与可观测性要解决的核心问题。网络遥测(Network Telemetry)指的是网络设备主动、持续、高速地向采集端推送状态数据的能力,它把“人去问设备”变成“设备主动上报”。可观测性(Observability)则更进一步,它不仅要求采集到数据,还要求通过这些数据推断出系统内部正在发生什么,即从外部输出反推内部状态。两者的关系可以这样理解:遥测是手段,可观测性是目标。没有高质量的遥测数据流,可观测性就无从谈起;而只有数据、没有关联分析与可视化,遥测的价值也无法真正释放。

本课程围绕 Arista 数据中心网络的技术栈展开,涉及的核心对象可以分为四层。第一层是数据平面遥测,包括 sFlow、IPFIX 和 INT(In-band Network Telemetry)。sFlow 基于采样,适合流量成分分析与粗粒度趋势观察;IPFIX 基于流记录,适合流量矩阵与安全审计;INT 则把遥测指令直接嵌入数据包,让每一个经过的交换机把自己的端口、队列、时延信息写入包头,实现逐跳的精细路径追踪。第二层是控制与管理平面遥测,以 gNMI 和 OpenConfig 为代表。gNMI 是 Google 提出的 gRPC 网络管理接口,支持 Subscribe 模式下的流式订阅;OpenConfig 则提供厂商中立的 YANG 数据模型,使不同厂商设备的配置与状态数据具有统一的路径表达。第三层是平台与可视化,即 Arista CloudVision,它作为集中管理平台,汇聚 EOS 设备的状态、配置、事件与遥测流,提供拓扑视图、合规检查与变更审计。第四层是设备操作系统,即 Arista EOS,它是所有遥测能力的承载基础,其架构支持在交换机上直接运行容器化采集代理,也支持通过 eAPI、gNMI 等接口对外暴露数据。

Arista 数据中心网络遥测与可观测性技术栈 从数据平面到管理平台的四层对象关系 数据平面遥测 Data Plane Telemetry sFlow 采样流 · 流量成分分析 采样率 1:1000 ~ 1:4000 IPFIX 流记录 · 流量矩阵/审计 模板化导出 · 五元组聚合 INT 带内遥测 · 逐跳路径追踪 端口/队列/时延写入包头 控制与管理平面遥测 Control & Management Plane Telemetry gNMI gRPC 网络管理接口 · Subscribe 流式订阅 Get / Set / Subscribe · 秒级推送 OpenConfig 厂商中立 YANG 模型 · 统一数据路径 /interfaces/interface/state/counters 平台与可视化 Platform & Visualization Arista CloudVision 集中管理 · 拓扑视图 · 合规检查 · 变更审计 · 遥测数据汇聚 CloudVision Portal / CloudVision as a Service 设备操作系统基础 Operating System Foundation Arista EOS 可编程架构 · 容器化采集代理 · eAPI / gNMI 接口 · 状态流 所有遥测能力的承载基础 采集层 接口层 汇聚层 基础层 毫秒级 瞬态捕捉 秒级 流式订阅 全局 关联分析 可编程 数据源

理解这四层关系之后,学习路径就变得清晰了。建议按照“自底向上、由采到用”的顺序推进:先掌握 EOS 上如何开启和验证各类遥测功能,再理解 gNMI 与 OpenConfig 如何把设备状态标准化地暴露出来,接着学习 sFlow、IPFIX、INT 各自适合回答什么问题,最后在 CloudVision 中把多源数据关联起来,形成从“单设备指标”到“全网行为”的观测能力。

为了让大家对“可观测性到底解决什么问题”有更具体的感受,这里给出一个贯穿课程的示例场景。假设某数据中心采用 4 台 Spine、8 台 Leaf 的 CLOS 架构,每台 Leaf 下挂 20 台服务器,全网共 160 台服务器。业务团队报告:每天上午 10:00 至 10:15 之间,某分布式数据库的写入延迟从正常的 2ms 上升到 15ms 左右,但应用日志中没有报错,服务器 CPU 与磁盘 IO 也未见异常。

按照传统方法,网络工程师会登录 Leaf 交换机查看接口计数。假设查看 Leaf-03 的上行口 Ethernet49 时,看到如下输出(示例数据,非实测):

Leaf-03# show interfaces Ethernet49 counters rates
   Port       InMbps   OutMbps   InPkts/s   OutPkts/s
   Et49       8420     8390      712000     708000

Leaf-03# show interfaces Ethernet49 counters errors
   Port       FCS    Alignment   Runts   Giants   CRC
   Et49       0      0           0       0        0

从计数器看,带宽利用率约 84%,没有 CRC 错误,也没有丢包计数。如果只看这些数据,很容易得出“网络正常”的结论。但问题可能出在微突发:在 10ms 的时间窗口内,某个队列瞬时被填满并产生丢包,而 1 分钟平均速率完全看不出异常。这时就需要 INT 或高频 gNMI 订阅来捕捉队列深度与瞬时丢包。例如,通过 gNMI 以 1 秒间隔订阅 Leaf-03 上 Ethernet49 的队列状态(示例路径):

gnmi_subscribe --path "/interfaces/interface[name=Ethernet49]/state/counters" \
  --mode SAMPLE --interval 1s \
  --target leaf-03.example.com:6030

如果订阅结果显示在 10:03:12 至 10:03:18 之间,某队列的瞬时丢包计数从 0 跳变到 340,而同期端口总丢包计数仍为 0(因为被更粗粒度的计数器掩盖),就能定位到具体队列与时间窗口。再结合 sFlow 采样数据,查看该时间段内哪些源 IP 与目的 IP 的流占比最高,往往能发现是某个备份任务或批量写入操作在短时间内打满了队列。这就是“遥测数据 → 可观测性判断 → 根因定位”的完整链条。

学习建议:本课程后续每一节都会围绕具体对象展开,建议在阅读时同步准备一台可用的 Arista EOS 实验环境(物理设备或 vEOS 虚拟机均可),对 gNMI、sFlow、IPFIX 等关键功能进行实际验证。遥测与可观测性是一门高度依赖动手的工程学科,只看不练很难建立对数据粒度、采样率、订阅间隔等参数的直觉。

最后需要明确本课程的目标定位。学完本课程后,你应该能够:第一,说清楚 sFlow、IPFIX、INT、gNMI、OpenConfig 各自解决什么问题、适合什么场景、有什么局限;第二,在 Arista EOS 上独立完成遥测功能的开启、参数配置与数据验证;第三,使用 CloudVision 或开源工具(如 Prometheus + gNMIc、Grafana)搭建一套可用的遥测数据采集与可视化链路;第四,面对“时延抖动”“偶发丢包”“流量异常”等典型问题时,能够选择合适的遥测手段并给出有依据的判断。这四点既是课程目标,也是后续每一节内容取舍的依据。