提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
随着SDN网络的设备规模日益增大,承载的业务越来越多,用户对SDN网络的智能运维提出了更高的要求,包括监控数据的采样周期拥有更高的精度以便及时检测和快速调整微突发流量,同时监控过程要对设备自身功能和性能影响小以便提高设备和网络的利用率。
传统网络监控方式(如SNMP get和CLI),因存在如下不足,管理效率越来越低,已不能满足用户需求的演进:
通过拉模式来获取设备的监控数据,不能监控大量网络节点,限制了网络增长。
监控数据的采样周期精度是分钟级别,只能依靠加大查询频度来提升获取数据的准确性,但是这样会导致网络节点CPU利用率高而影响设备的正常功能。
由于网络传输时延的存在,监控到的网络节点数据并不准确。
因此,面对大规模、高性能的网络监控需求,用户需要一种新的网络监控方式。Telemetry技术可以满足用户要求,支持智能运维系统管理更多的设备、监控数据拥有更高精度和更加实时、监控过程对设备自身功能和性能影响小,为网络问题的快速定位、网络质量优化调整提供了最重要的大数据基础,将网络质量分析转换为大数据分析,有力的支撑了智能运维的需要。
一、Telemetry
Telemetry也叫Network Telemetry(网络遥测技术),是一项远程的从物理设备或虚拟设备上高速采集数据的技术。设备通过推模式(Push Mode)周期性的主动向采集器上送设备的接口流量统计、CPU或内存数据等信息,相对传统拉模式(Pull Mode)的一问一答式交互,提供了更实时更高速的数据采集功能。
- Telemetry采用推模式工作,YANG模型定义结构,精度可以达到亚秒级。
- 狭义的Telemetry框架可以分为四个模块:数据源、数据生成、数据订阅和数据推送。
- Telemetry协议栈具有分层结构:传输层、通信层、数据编码层和数据模型层。
- 华为Telemetry订阅方式分为两种:静态订阅和动态订阅。
静态订阅是指设备作为客户端,采集器作为服务端。由设备主动发起到采集器的连接,进行数据采集上送。多用于长期巡检。
动态订阅是指设备作为服务端,采集器作为客户端发起到设备的连接。由设备进行数据采集上送。多用于短期监控。
gRPC: - gRPC由google开发,是一款语言中立、平台中立、开源的远程过程调用(RPC)系统。通信双方(网管和设备)基于gRPC框架进行二次开发,聚焦业务对接,缩短产品对接适配的开发周期。
- gRPC支持的语言包括:C++,Node.js,Python,Ruby,Objective-C,PHP和C#,java,Go等。
- gRPC基于HTTP/2标准设计,能使用HTTP/2的特性,包括:双向流、流控、头部压缩、多路复用等。相对于HTTP/1,表现更好。
二、实验步骤
1.编译proto文件
"""Generates protocol messages and gRPC stubs."""
from grpc_tools import protoc
protoc.main(
(
'',
'-I./CE12800_Proto/V200R005C10SPC800-Proto',
'--python_out=.',
'--grpc_python_out=.',
'./CE12800_Proto/V200R005C10SPC800-Proto/huawei-grpc-dialout.proto', # 文件路径
)
)
protoc.main(
(
'',
'-I./CE12800_Proto/V200R005C10SPC800-Proto',
'--python_out=.',
'--grpc_python_out=.',
'./CE12800_Proto/V200R005C10SPC800-Proto/huawei-telemetry.proto',
)
)
protoc.main(
(
'',