​·引言·

随着云原生、云网融合、大数据的快速发展,网络自动化运维也随之兴起,Telemetry网络遥测技术特性变得越来越重要。Telemetry,顾名思义就是一种在远距离获取网络测量数据的技术,例如在航天、地质、海洋领域可通过遥测技术来获取卫星传感器数据。当Telemetry技术应用到网络中,同样能从物理、虚拟网络设备上远程高速采集获取网络数据,为网络分析提供可靠、实时、高精度数据。

根据网络Telemetry数据源不同,可分为管理平面、控制平面及数据平面的Telemetry。管理平面基于GRPC/NETCONF等采集网络管理数据、数据平面基于IOAM等采集数据平面数据、控制平面基于BMP(BGP Monitoring Protocol)上报控制协议数据。

本文重点对Telemetry 遥测技术进行详细介绍。

Telemetry优势特性

对比传统网络监控技术

当提及网络设备管理监控,大家首先想到的是SNMP。SNMP是简单网络管理协议,也是当前广泛使用的网络监控技术。以采集设备CPU占用率为例,SNMP和Telemetry采集网络设备数据的交互原理如下:

由图所示,两者采集数据的交互过程主要有以下两个区别:

1、从采集模型上,Telemetry占用网络设备性能很小。SNMP采集器与设备之间采用一问一答的交互方式,采集器每次采集数据时下发SNMP get请求,设备需对每个get请求进行响应,而Telemetry只需1次订阅及解析请求即可完成订阅,后续设备按照订阅指定的采集周期,持续推送数据给采集器,对网络设备的性能损耗很少;

2、从采集周期上,Telemetry拥有更高采集精度及频率。SNMP get请求采集周期取决于网络轮询网内所有监控对象一次的整体时间,通常最短建议间隔5分钟,而Telemetry采集间隔可为1秒,最高精度可达亚秒级,精度细粒化可达300-30000倍。

因此,在覆盖采集相同监控对象的情况下,SNMP协议采用“拉模式”,设备CPU需要响应更多的get请求,而Telemetry采用“推模式”,只需要进行1次订阅请求,因此Telemetry对设备CPU的性能消耗更小。同时,Telemetry采集频率更高,精度从5分钟到亚秒级,能获取更高精度的监控数据,对设备性能的消耗可控,实现精准监控网络状态。

Telemetry和常见网络监控技术在工作模式、采集精度等方面的区别如下表所示:

由表可见,Telemetry的工作模式是推模式,设备侧主动推送数据,并提供亚秒级精度,此外还有比较关键的一点是,Telemetry数据采用标准结构和编码,方便对接第三方设备,有助于提升网络监控效率和监控质量。SNMP Trap和SYSLOG虽然也是推模式,但是其推送的数据范围有限,对于类似接口流量等监控数据不能实时采集。

技术优势

Telemetry的两大亮点优势是对设备性能消耗小、数据采集精度高,可以解决传统网络监控技术一直以来面对的一些痛点问题。

根据奈奎斯特采样原理,采样频率大于信号频率的2倍时,才能完整保留原始信号中的信息。当SNMP等传统技术采用5分钟采集周期时,会有细节信息丢失的问题,如下图所示:

当SNMP等传统运维方式采用更快的数据采集周期解决这个问题时,由于使用的是“拉模式”,更为密集的采集拉取可能会造成网络设备CPU持续升高,甚至有瘫痪风险。因此SNMP为代表的运维技术无法满足当前IT运维实时和全程监控的需求,也无法检测网络中大量微突发(Mirco Burst)造成的网络问题。

微突发是指在很短时间(毫秒级别)内收到很多的突发数据,以至于瞬时突发速率达到平均速率的数十、百倍,甚至占满端口带宽的现象。网管设备或网络性能监测软件通常是基于较长时间(数分钟),通过计算这段时间内的平均值来作为网络实时带宽。在这种情况下,看到流量速率通常会被“削峰填谷”,呈现出来是一条较为平稳的曲线,但是实际设备可能已由于微突发导致丢包,并影响应用系统。如下图所示为采用分钟级SNMP和亚秒级Telemetry采集数据的对比曲线。

从图中可看出,以SNMP get方式查询的端口流量统计是比较平滑的,而Telemetry方式流量统计明显看到有微突发现象发生。通过Telemetry的高精度采样,能检测到这些微突发流量以及由于微突发导致的端口丢包问题。

Telemetry自动化运维系统组成及机制

运维系统组件构成

 狭义Telemetry是一个网络设备特性,广义Telemetry能理解为一个闭环的自动化运维系统,由网络设备、采集器、分析器、控制器等四个部件组成,如下图所示:

1、采集器

用于接收和存储网络设备上报的原始监控数据,网络设备依据采集器的配置要求,将采集完成的秒级或亚秒级监控数据,上报给采集器存储。

2、分析器

 用于分析采集器接收到的监控数据,并对数据进行处理,以图形化界面的形式将分析结果直观展现给用户。

3、控制器

通过 NETCONF等方式向设备下发配置,实现对网络设备的控制。控制器根据分析器提供的分析数据向网络设备下发配置,对网络设备的转发行为进行调整,也可控制网络设备对哪些数据进行采样和上报。

运维系统工作机制

采集器、分析器、控制器都位于网管侧,网管侧和网络设备侧协同运作,如下图所示:

在网络设备侧,Telemetry按照YANG模型组织数据,利用GPB(Google Protocol Buffer)格式编码,并通过gRPC(Google Remote Procedure Call Protocol)协议传输数据。在网管系统侧,Telemetry完成数据的收集、分析、存储功能,利用分析结果为网络配置调整提供依据,如下图所示:

下面是网络设备侧涉及的一些概念和名词的说明解释:

 原始数据:Telemetry采样的原始数据可来自网络设备的转发面、控制面和管理面,目前支持采集设备的接口流量统计、CPU或内存数据等信息。

数据模型:Telemetry基于YANG模型组织采集数据。YANG是一种数据建模语言,用于设计可以作为各种传输协议操作的配置数据模型、状态数据模型、远程调用模型和通知机制等。

编码格式:支持GPB(Google Protocol Buffer)和 JSON(JavaScript Object Notation)编码格式。Telemetry利用GPB编码格式(GPB编码格式的文件名后缀为.proto),提供一种灵活、高效、自动序列化结构数据的机制,GPB属于二进制编码,性能好、效率高。

传输协议:支持gRPC协议(google Remote Procedure Call Protocol)和UDP协议(User Datagram Protocol)。gRPC协议是谷歌发布的一个基于HTTP2协议承载的高性能、通用的RPC开源软件框架。通信双方都基于该框架进行二次开发,从而使得通信双方聚焦在业务,无需关注由gRPC软件框架实现的底层通信。需要说明的一点是,gRPC协议可以用于Telemetry静态订阅或动态订阅,而UDP仅可以用于Telemetry静态订阅。

Telemetry应用场景

银行数据中心网络智能运维场景

目前据了解,ZS银行、BJ银行、GS银行等同业已在其数据中心的生产及测试网络环境中试点部署智能运维分析系统,运用Telemetry技术采集秒级运维数据,解决SNMP采集精度低的问题,实时监控网络设备运行状况。在数据中心网络中部署智能运维系统,采集器通过Telemetry采集设备性能数据,分析器接收上送数据并进行统计、分析和呈现,配合ERSPAN远程流量镜像等技术,共同实现数据中心网络的1-3-5智能运维。

运营商移动承载网络流量调优场景

在运营商移动城载网中,当流量路径需要调优时,利用Telemetry技术收集设备数据,发给分析器进行综合分析决策,分析器再将决策发送给控制器,然后由控制器调整设备的控制,进而调整流量转发路径。详细的部署过程如下:

1、配置Telemetry功能。

 2、各设备主动与智能运维系统建立gRPC通道,在设备上配置订阅。

3、各设备通过gRPC通道将订阅的数据上报给采集器。

4、采集器接收、存储、加工处理各设备上报的数据。

5、分析器基于大数据分析系统进行分析。

6、控制器下发调优指令对网络进行调优。

总结

在云原生平台、大数据应用不断落地背景下,Telemetry网络遥测技术的广泛应用,带来了显著的优势就是较小的性能损耗,实时高精度监测网络数据,发现和定位微突发(Mirco Burst)造成的网络问题,为云网融合下的网络运维提供了新思路。