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。
六、采集机制的选择与组合
实际部署中,这些数据源通常组合使用。一个典型的 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,避免“配置了但没数据”的常见问题。