2. Nexus数据源与遥测基础

在 Nexus 可观测性体系中,所有分析、告警和可视化都建立在“数据从哪里来、以什么形式来、以多快速度来”这三个问题之上。NX-OS 提供了多种遥测与日志数据源,它们并非互相替代,而是覆盖不同的观测维度:日志回答“发生了什么事件”,SNMP 回答“某个计数器现在是多少”,NetFlow/sFlow 回答“流量是谁发给谁的”,gRPC 遥测回答“设备内部指标变化有多快”。理解每种数据源的采集机制,是后续搭建日志分析平台和流式遥测管道的前提。

一、NX-OS 日志类型:从事件到可读文本

NX-OS 的日志按严重程度分为 0~7 共八个级别:0 emergency、1 alert、2 critical、3 error、4 warning、5 notification、6 informational、7 debugging。级别数字越小越严重。设备默认将级别 2(critical)及以上的消息输出到控制台,级别 5 及以上写入日志缓冲区。日志消息本身由时间戳、facility、severity、mnemonic 和描述文本组成,例如:

2024-06-11T08:12:33.451+08:00 SW-01 %ETHPORT-5-IF_DOWN_LINK_FAILURE: Interface Ethernet1/1 is down (Link failure)
2024-06-11T08:12:35.902+08:00 SW-01 %ETHPORT-3-IF_DOWN_ERROR_DISABLED: Interface Ethernet1/1 is down (Error disabled)

其中 %ETHPORT 是 facility,5 和 3 是 severity,IF_DOWN_LINK_FAILURE 是 mnemonic。日志缓冲区是环形结构,容量有限,因此必须通过 syslog 外送到远端服务器才能长期留存。查看本地日志可用 show logging logfile,查看缓冲区状态用 show logging server。

二、Syslog:最通用的日志外送通道

Syslog 基于 UDP 514(也可用 TCP 或带 TLS 的 6514),将 NX-OS 日志推送到远端收集器。配置时需指定服务器地址、severity 和 facility:

logging server 10.10.20.50 6 use-vrf management
logging source-interface mgmt0
logging timestamp milliseconds
logging level local7 6

这里 6 表示只发送 informational 及以上级别,use-vrf management 指定走管理 VRF。Syslog 的优点是通用、开销低;缺点是 UDP 无确认、可能丢包,且格式为半结构化文本,需要解析器提取字段。在 Nexus 上可用 show logging server 确认服务器状态为 active,用 show logging ip access-list status 检查是否有 ACL 拦截。

三、SNMP:轮询式计数器采集

SNMP 采用 manager 轮询 agent 的模式,典型周期为 60 秒。Nexus 支持 SNMPv2c 和 v3,v3 提供认证与加密。关键配置包括 community/用户、trap 接收者和轮询视图:

snmp-server community NEXUS_RO group network-operator
snmp-server host 10.10.20.60 traps version 2c NEXUS_RO
snmp-server enable traps link
snmp-server contact netops@example.com

SNMP 适合采集接口计数器(ifHCInOctets、ifOutDiscards)、CPU/内存利用率、环境温度等标量或表数据。它的局限是轮询间隔决定了时间分辨率,60 秒内发生的微突发会被平均掉;同时大规模设备轮询会给管理平面带来压力。因此 SNMP 更适合趋势监控,而非秒级故障定位。

四、NetFlow 与 sFlow:流量层面的观测

NetFlow 在设备上维护流表,将具有相同五元组(源 IP、目的 IP、源端口、目的端口、协议)的报文聚合为一条流记录,流老化后导出。Nexus 9000 支持 Flexible NetFlow,可自定义匹配字段和导出格式:

flow record NETFLOW-REC
  match ipv4 source address
  match ipv4 destination address
  match transport source-port
  match transport destination-port
  match ip protocol
  collect counter bytes
  collect counter packets
flow exporter NETFLOW-EXP
  destination 10.10.20.70
  source mgmt0
  transport udp 2055
  version 9
flow monitor NETFLOW-MON
  record NETFLOW-REC
  exporter NETFLOW-EXP
interface Ethernet1/1
  ip flow monitor NETFLOW-MON input

sFlow 则采用采样机制:按 1/N 的报文采样率抽取报文,并周期性(默认 30 秒)导出接口计数器。它不维护流表,对设备 CPU 和内存压力更小,适合高密度接口环境。两者对比:NetFlow 提供完整流记录但消耗资源多,sFlow 采样轻量但只能近似还原流量分布。选择依据是观测精度要求与设备资源预算。

五、gRPC 遥测与流式遥测:秒级指标推送

gRPC 遥测(Telemetry)是 Nexus 上最现代的采集方式。它采用“订阅—推送”模型:采集器通过 gRPC 向设备发起订阅,设备按指定周期主动推送数据,无需轮询。NX-OS 支持两种编码:JSON 和 GPB(Google Protocol Buffers),后者压缩率高、解析快。配置示例:

telemetry
  destination-profile TELEM-PROFILE
    use-vrf management
    format gpb
  subscription 100
    destination-profile TELEM-PROFILE
    sensor-group 1 path "sys/intf/phys-[eth1/1]/phys"
    sensor-group 2 path "sys/intf/phys-[eth1/1]/counters"
    sample-interval 5000
    source-interface mgmt0

其中 sample-interval 5000 表示 5 秒推送一次,远高于 SNMP 的 60 秒。流式遥测(Streaming Telemetry)是 gRPC 遥测的统称,强调持续、增量、事件驱动的数据流。它支持 on-change 模式:仅当指标变化超过阈值时才推送,进一步降低带宽。验证订阅是否生效可用 show telemetry control subscription,查看推送统计用 show telemetry control stats。

选择数据源时,可按“时间分辨率—数据粒度—资源开销”三角权衡:需要秒级定位微突发选 gRPC 遥测;需要流量会话明细选 NetFlow;需要轻量流量采样选 sFlow;需要事件文本选 Syslog;需要兼容传统网管选 SNMP。
Nexus 数据源采集机制与观测维度对照 Nexus 交换机 NX-OS 数据源 日志缓冲区 severity 0-7 / 环形 SNMP Agent MIB / 轮询 NetFlow 流表 五元组 / 老化导出 sFlow 采样器 1/N 采样 / 计数器 gRPC 遥测 订阅 / 推送 / GPB 流式遥测 on-change / 增量 UDP 514 UDP 161/162 UDP 2055 UDP 6343 gRPC 57400 gRPC 57400 Syslog 服务器 文本解析 / 索引 SNMP Manager 轮询 / Trap 接收 NetFlow 收集器 流记录聚合 sFlow 收集器 采样还原 Telemetry 采集器 gRPC 订阅 / GPB 解码 流式分析管道 实时告警 / 可视化 观测维度与时间分辨率 事件文本 Syslog / 日志缓冲区 · 秒级事件 标量计数器 SNMP · 60 秒轮询 流会话明细 NetFlow · 流老化周期 采样流量分布 sFlow · 30 秒计数器 秒级指标流 gRPC 遥测 · 5 秒推送 变化驱动增量 流式遥测 · on-change 采集机制决定时间分辨率与数据粒度:轮询 → 采样 → 流表 → 推送 → 变化驱动

六、采集机制的选择与组合

实际部署中,这些数据源通常组合使用。一个典型的 Nexus 可观测性栈会同时启用:Syslog 外送到日志平台用于事件检索与合规留存;SNMP 用于传统网管的趋势图;NetFlow 或 sFlow 用于流量分析与容量规划;gRPC 遥测用于秒级接口计数器与队列深度监控。关键在于理解每种机制的“时间分辨率—数据粒度—资源开销”三角关系:轮询式(SNMP)分辨率最低但兼容性最好;采样式(sFlow)开销小但只能近似;流表式(NetFlow)粒度最细但资源消耗大;推送式(gRPC 遥测)分辨率最高且支持增量,是微突发和拥塞定位的首选。

在配置顺序上,建议先确保管理 VRF 可达、NTP 同步(时间戳一致性是日志关联的前提),再依次启用 Syslog、SNMP、NetFlow/sFlow,最后部署 gRPC 遥测订阅。每启用一种数据源,都应通过对应的 show 命令确认状态,例如 show logging server、show snmp host、show flow exporter、show telemetry control subscription,避免“配置了但没数据”的常见问题。