Telemetry网络监控
设备监测数据的数据类型
设备的监控数据包含三大数据:
管理平面数据、控制平面数据、数据平面数据
telemetry 的 背景
传统的网络设备监控数据的方式:
SNMP、CLI、Syslog、NetStream、sFlow(其中SNMP为主流的监控数据方式)
- NetStream、sFlow、Snmp Trap
NetStream、sFlow监测范围有限,主要针对数据平面数据的监测;
sFlow为文本方式进行监测数据的采集,没有数据结构;
- CLI
CLI为文本方式进行监测数据的采集,没有数据结构
- SNMP Get
SNMP采样周期的时间过长(5min),反应不了现网的真实情况(无法检测网络微突发造成的网络问题)
SNMP监测数据是通过一问一答的方式进行数据采集的(拉的方式)
SNMP Trap推送的数据类型仅是告警信息
如果SNMP采样周期太短,设备会一直回复,增加设备的负担. 更密集的Pulling拉取会造成网络设备瘫痪.
监控的粒度太大造成网络可视度低。以SNMP为主的运维系统效率低:
1> 无法达到IT运维一样的实时监控,全程监控,并保留完整历史数据。
2> 无法检测网络大量Micro Burst(微突发)造成的网络问题。微突发是指在非常短的时间(毫秒级别)内收到非常多的突发数据,以至于瞬时突发速率达到平均速率的数十倍、数百倍,甚至超过端口带宽的现象。网管设备或网络性能监测软件通常是基于比较长的时间(数秒到数分钟)计算网络实时带宽。在这种情况下,看到流量速率通常是一条比较平稳的曲线,但是实际设备可能已由于微突发导致丢包。
需求总结:需要一个支持超大规模网络及海量数据运维的机制,具备实时性、高性能,易于扩展等特点
telemetry
Telemetry也叫Network Telemetry网络遥感技术. 是一项远程的从物理设备或虚拟设备上高速采集数据的技术。设备通过推模式(PushMode)周期性的主动向采集器上送设备的接口流量统计、CPU或内存数据等信息,相对传统拉模式(Pull Mode)的一问一答式交互,提供了更实时更高速的数据采集功能。
特点
telemetry采用推模式及时获取丰富的监控数据,可以实现网络故障的快速定位,提供统一的数据流格式,简化采集器分析检测数据的难度,从而解决传统网络运维问题。
》精细监控:采集数据的类型丰富,采集数据的精度高。
》快速定位:在复杂的网络中,能够快速定位故障,达到秒,亚秒级的故障定位速度。
》主动上报:telemetry仅需配置一次订阅,设备就可以持续上报数据,减轻设备处理查询请求的压力。
1)推模式:其采用 Push Mode(推模式)及时获取丰富的监控数据,可以实现网络故障的快速定位,从而解决上述网络运维问题。设备通过推模式周期性地主动向采集器上送设备的接口流量统计、CPU或内存数据等信息,相对传统拉模式(Pull Mode)的一问一答式交互,提供了更实时更高速的数据采集功能。
2)一次订阅,持续上报:避免重复查询:SNMP查询是一问一答的。假设1分钟内交互了1000次,就意味着SNMP解析了1000次查询请求报文。Telemetry实现订阅一次,后续设备持续推送数据给网管。
3)采集数据的精度高:精度可以达到亚秒级,且类型十分丰富,充分反映网络状况。基于gRPC的Telemetry技术可以采集设备的接口流量统计、CPU、告警等数据,然后经过Protocol Buffer 编码,实时上报给采集器进行接收和存储。
广义Telemetry
- 组成
广义Telemetry,是一个闭环的自动化运维系统,由网络设备、采集器、分析器、控制器等部件组成;分为网管侧和设备侧。
采集器:用于接收和存储网络设备上报的监控数据。
分析器:用于分析采集器接收到的监控数据,并对数据进行处理,例如以图形化界面的形式展现给用户。
控制器:通过 NETCONF 等方式向设备下发配置,实现对网络设备的管理。控制器可以根据分析器提供的分析数据,为网络设备下发配置,对网络设备的转发行为进行调整;也可以控制网络设备对哪些数据进行采样和上报 。
- 如何形成闭环
控制器将相关操作下发到设备上,设备实时将监测的信息发送到采集器,采集器将收集到的数据发送给分析器进行分析,分析器将分析结果发送给控制器。
范例:
分析器通过采集器发来的信息分析得到某条链路出现拥塞,需要通过设置PBR让部分流量走其它链路的动作(将分析结果发给控制器),控制器就将PBR的配置下发到设备上(下发配置通过Netconf,收集通过Telemetry)。
狭义Telemetry
狭义Telemetry,是一个设备特性,指设备将采样数据上送给采集器的功能。
组成
狭义的telemtry框架可以分为四个模块:数据源、数据生成、数据订阅和数据推送。
- Telemetry协议栈:
telemetry协议栈具有分层结构:传输层、通信层、数据编码层和数据模型层。
数据源(Yang)
-
什么是数据源
数据源定义了可以被获取的数据,可以来自网络设备的转发面、控制面和管理面;目前支持采集设备的接口流量统计、CPU或内存数据等信息。 -
Telemetry如何获取数据源
Telemetry基于Yang模型来采集数据源,支持的Yang模型有Huawei-Yang、IETF-Yang、OpenConfig-Yang等
数据生成(GPB: google protocol buffer)
-
什么是数据生成
Telemetry将采集的数据源进行编码,此过程就为数据生成;
设备将编码后的数据传送到采集器,采集器再进行解码(这就要求采集器和设备使用相同的编码格式) -
Telemetry如何进行数据编码解码
Telemetry主要采用GPB(Google Protocol Buffers)数据编码、解码
除了GPB之外还支持JSON(JavaScript Object Notation)编码格式。 -
GPB编码
GPB是一种二进制编码,性能好,效率高(而采集效率是Telemetry考虑的重点之一,所以Telemetry主要使用GPB编码)
GPB编码通过.proto文件描述编码、解码使用的字典(采集器和设备.proto文件要一致)
数据订阅
telemetry数据订阅定义了数据发送端和数据获取端交互关系。
主要有两种订阅方式:静态订阅和动态订阅。
-
静态订阅
静态订阅是指设备作为客户端,采集器作为服务端。由设备主动发起到采集器的连接,进行数据采集上送。多用于长期巡检。 -
动态订阅
动态订阅是指设备作为服务端,采集器作为客户端发起到设备的连接。由设备进行数据采集上送。多用于短期监控。
Telemetry数据推送
Telemetry通过数据推送将经过编码格式封装的数据上报给采集器进行接收和存储;Telemetry的数据推送有两种方式:基于gRPC方式和基于UDP方式。
- GRPC方式
gRPC面向连接,只在采集器和主控板CPU之间建立gRPC隧道。(蓝色箭头表示gRPC隧道)【gRPC封装层由gRPC开源软件提供】
- UDP方式
UDP推送相较于gRPC推送做出了一定优化,采集器也可以和线路卡CPU之间建立UDP隧道,由一对一变为多对一建立隧道,缓解了主控板CPU的压力同时也提高了效率。
整个设备如何实现Telemetry功能
以gRPC订阅推送为例子:
设备通过Yang模型捕获可获取的数据信息(数据源)
然后将这些数据通过GPB结合.proto文件进行编码(数据生成)
采集器通过gRPC进行数据订阅(数据订阅)
设备通过gRPC将编码数据推送到订阅的采集器中(数据推送)
采集器再根据通过GPB结合.proto文件进行解码(此文件要和GPB的.proto文件一致)
应用
-
1》数据中心IDC
分析器接收Telemetry上送的数据,计算报文的转发路径、转发时延、链路时延等,完成应用交互关系分析,实现应用和网络路径的关联,并进行统计分析、呈现,实现智能运维。
数据中心中的采集器通过Telemetry采集设备性能数据,通过ERSPAN采集设备流镜像。 -
2》园区网
园区网中可通过Telemetry将设备状态、有线无线数据同时监控上报分析器,实现智能运维。 -
3》广域网
路由器端口数据实时上报分析器,流量走向易于洞察。
参考
https://blog.k4nz.com/810dd879634a834c0380fda266311154/
https://blog.csdn.net/m0_49864110/article/details/128541789
https://blog.csdn.net/qq_33162707/article/details/128106608