Telemetry网络监控技术讲解

news2024/12/28 18:35:56

目录

Telemetry基本概念

设备监测数据的数据类型

为么要提出Telemetry

Telemetry网络模型

广义Telemetry

狭义Telemetry

狭义Telemetry框架

数据源(Yang)

数据生成(GPB)

数据订阅(gRPC、UDP)

数据推送(gRPC、UDP)

总结整个设备如何实现Telemetry功能

Telemetry和Netconf区别


Telemetry基本概念

Telemetry是一种网络设备监控技术,提供周期采样网络设备内的统计数据和状态数据的能力

设备监测数据的数据类型

设备的监控数据包含三大数据

管理平面数据、控制平面数据、数据平面数据

为么要提出Telemetry

传统的网络设备监控数据的方式

SNMP、CLI、Syslog、NetStream、sFlow(其中SNMP为主流的监控数据方式)

NetStream、sFlow、Snmp Trap

NetStream、sFlow监测范围有限,主要针对数据平面数据的监测

sFlow为文本方式进行监测数据的采集,没有数据结构

SNMP Trap推送的数据类型仅是告警信息

CLI

CLI为文本方式进行监测数据的采集,没有数据结构

SNMP Get

SNMP采样周期的时间过长,反应不了现网的真实情况(无法检测网络微突发造成的网络问题)

SNMP监测数据是通过一问一答的方式进行数据采集的(拉的方式)

如果SNMP采样周期太短,设备会一直回复,增加设备的负担

为此提出了Telemetry

Telemetry也叫Network Telemetry网络遥感技术,其特点主要有

  1. Telemetry采集数据的类型丰富,可以充分反映网络状况
  2. 设备采用推的方式周期性的主动向采集器上送监测数据(精度可以达到亚秒级别,快速定位)
  3. 一次订阅,设备N次回复,可以一直监控设备


Telemetry网络模型

Telemetry网络模型主要分为广义和狭义两种

广义Telemetry

是一个闭环的自动化运维系统,由网络设备、采集器、分析器、控制器等部件组成

分为网管侧和设备侧

如何形成闭环

设备实时将监测的信息发送到采集器,采集器将收集到的数据发送给分析器进行分析,分析器将分析结果发送给控制器,控制器将相关操作下发到设备上

例子

分析器通过采集器发来的信息分析得到某条链路出现拥塞,需要通过设置PBR让部分流量走其它链路的动作(将分析结果发给控制器),控制器就将PBR的配置下发到设备上(下发配置通过Netconf,收集通过Telemetry)

注意事项

分析器和控制器可以是一台设备

狭义Telemetry

是一个设备特性,指设备将采样数据上送给采集器的功能


狭义Telemetry框架

对于设备而言(狭义Telemetry),Telemetry框架可以分为四个模块

数据源、数据生成、数据订阅、数据推送

即:设备实现Telemetry功能所需要的模块,通过这些模块完成对数据的采集上传

 

数据源(Yang)

什么是数据源

数据源定义了可以被获取的数据,可以来自网络设备的转发面、控制面和管理面

目前支持采集设备的接口流量统计、CPU或内存数据等信息

Telemetry如何获取数据源

Telemetry基于Yang模型来采集数据源

支持的Yang模型有Huawei-Yang、IETF-Yang、OpenConfig-Yang等

注意事项

网络设备和Telemetry端所使用的模型要是一致的

数据生成(GPB)

Telemetry将采集的数据源进行编码,此过程就为数据生成

设备将编码后的数据传送到采集器,采集器再进行解码(这就要求采集器和设备使用相同的编码格式)

Telemetry如何进行数据编码解码

Telemetry主要采用GPB(Google Protocol Buffers)数据编码、解码

除了GPB之外还支持JSON(JavaScript Object Notation)编码格式

GPB编码

GPB是一种二进制编码,性能好,效率高(而采集效率是Telemetry考虑的重点之一,所以Telemetry主要使用GPB编码)

GPB编码通过.proto文件描述编码、解码使用的字典(采集器和设备.proto文件要一致

数据订阅(gRPC、UDP)

Telemetry数据订阅定义了数据发送端和数据获取端的交互关系,主要有两种订阅方式

静态订阅(控制器通过命令行配置支持Telemetry的设备,订阅数据源,完成数据采集)

采集器作为服务器,设备作为客户端

设备主动发起采集器的连接,采集器不需要发送订阅信息就可以收到设备的数据信息

需要手工告诉设备需要上报哪些信息(支持CLI、Netconf下发配置),一般用于短期的巡检

支持UDP推送和gRPC推送

静态订阅支持自定义事件上报

 

动态订阅(支持Telemetry的设备在完成gRPC服务的相关配置后,由采集器下发动态配置到设备,完成数据采集)

设备作为服务器,采集器作为客户端

需要采集器向设备发送订阅信息之后,设备才会发送相关的数据信息(只会发送一次)

采集器作为客户端,一般用于长期的巡检

仅支持gRPC方式的数据推送

数据推送(gRPC、UDP)

Telemetry通过数据推送将经过编码格式封装的数据上报给采集器进行接收和存储

Telemetry可以基于gRPC和UDP的方式进行数据推送

基于gPRC的推送(可以用于静态订阅和动态订阅)

什么是gRPC

gRPC(Goole Remote Procedure Call)协议是谷歌发布的一个基于HTTP2协议的高性能、通用的PRC开源软件架构

gRPC协议层次

不同.proto文件含义

huawei-grpc-dialout.proto文件(静态订阅)

是RPC头文件。设备作为客户端对外推送数据时,该文件定义了RPC接口

huawei-grpc-dialin.proto文件(动态订阅)

是RPC头文件。设备作为服务端对外推送数据时,该文件定义了RPC接口

huawei-telemetry.proto文件

是Telemetry头文件,定义了Telemetry采样数据上送时的数据头(包括采样路径,采样时间戳等重要信息)

基于gRPC的推送流程

采集器之和主控板建立UDP隧道,一对一建立隧道

所有的应答信息都要通过主控板发送给采集器,可能会导致主控板CPU利用率过高

 

基于UDP的推送(UDP可以用于静态订阅)

UDP适合可靠性要求低、传输经济的网络应用

UDP协议层次

 

基于UDP的推送流程

采集器可以和线卡、主控板之间建立UDP隧道,多对一建立隧道

缓解了主控板CPU的压力,提升了效率

总结整个设备如何实现Telemetry功能

以gRPC订阅推送为例子

设备通过Yang模型捕获可获取的数据信息(数据源)

然后将这些数据通过GPB结合.proto文件进行编码(数据生成)

采集器通过gRPC进行数据订阅(数据订阅)

设备通过gRPC将编码数据推送到订阅的采集器中(数据推送)

采集器再根据通过GPB结合.proto文件进行解码(此文件要和GPB的.proto文件一致)

举个订外卖的例子便于理解:

YANG是个快餐店的菜谱,顾客想吃汉堡和炸鸡便照着YANG菜单写了一份A4纸采购清单(如一份汉堡,两份炸鸡)

将清单折成邮票大小的小纸条装到了GPB信封里,找到门口的信使gRPC

信使gRPC骑上HTTP2电动车到了快餐店。

信使gRPC将GPB信封给老板,老板解开GPB信封核对顾客采购清单是否在销售范围内。


Telemetry和Netconf区别

  1. Netconf主要是做配置(设备只要支持Yang模型,就可以下发配置),Telemetry主要是收集信息
  2. Telemetry主要是读,Netconf主要是写

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/138426.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

跟着开源项目学java7-从操作日志排除敏感字段的提交看基于注解的日志记录实现

这次 commit 主要解决日志信息中可能存在 password 等敏感字段,需要在保存前排除掉 主要涉及两个类的修改,添加实现了一个 PropertyPreExcludeFilter,集成 fastjson2 的 SimplePropertyPreFilter 实现 /*** 排除JSON敏感属性* * author ruo…

两种方法设置Word文档的“只读模式”

防止Word文档被意外更改,我们可以将Word设置成“只读模式”来保护文档。根据需要,还可以将Word可以设置成无密码和有密码的“只读模式”,下面来说说具体方法。 方法一:无密码的“只读模式” 打开Word文档后,点击菜单…

C进阶_C语言_大小端_C语言大小端

现在调试以下代码&#xff0c;并对变量a和b进行监视&#xff1a; #include <stdio.h> int main() {int a 20;int b -10;return 0; } 右键&#xff0c;勾选十六进制显示&#xff1a; 可以看到&#xff0c;变量a和变量b的十六进制值分别为0x00000014和0xfffffff6。 那么…

MySQL之数据库设计范式

数据库设计范式&#xff1a; 第一范式&#xff1a; 要求任何一张表必须有主键&#xff0c;每一个字段原子性不可再分&#xff0c;第一范式是最核心&#xff0c;最重要的范式&#xff0c;所有的表的设计都需要满足 举例&#xff1a; 第二范式&#xff1a; 建立在第一范式的基…

一款基于SSH的反向Shell工具

一款基于SSH的反向Shell工具。 Reverse_SSH上一款基于SSH的反向Shell工具&#xff0c;在该工具的帮助下&#xff0c;广大研究人员可以使用SSH来实现反向Shell&#xff0c;并同时拥有下列功能&#xff1a; 1、使用原生SSH语句管理和连接反向Shell&#xff1b; 2、动态、本地和…

<UDP网络编程>——《计算机网络》

目录 1. 网络基础知识 1.1 理解源IP地址和目的IP地址 1.2 认识端口号 1.3 理解 "端口号" 和 "进程ID" 1.3.1 理解源端口号和目的端口号 1.4 认识TCP协议 1.5 认识UDP协议 1.6 网络字节序 2. socket编程接口 2.1 socket 常见API 2.2 sockaddr结构 2.3 socka…

广告刷屏世界杯,联想Filez助力海信全球营销运营

相信每个世界杯球迷在看球的同时也被世界杯球场上不断滚动的“Hisense&#xff0c;世界第二&#xff0c;中国第一”的广告牌吸引目光。在这28天&#xff0c;64场比赛中&#xff0c;卡塔尔的比赛场地不仅随处可见海信的围栏广告&#xff0c;同时场外也随处可见海信的身影。从备受…

ARM寄存器

1.ARM 工作状态 arm 支持大小端&#xff08;默认小端 &#xff0c;大端格式&#xff1a;高字节在低地址&#xff0c;低字节在高地址&#xff1b;小端格式&#xff1a;高字节在高地址&#xff0c;低字节在低地址&#xff1b;&#xff09;、arm支持16bit thumb指令和32bit arm指…

景联文科技:探究人工智能在智慧医疗中的应用及作用|数据标注

智慧医疗中的人工智能具有难以想象的潜力。人工智能在智慧医疗中的未来从通过协助重复性工作到药物管理或药物创造的治疗计划设计开始&#xff0c;人工智能已经在多个医学领域发挥作用。更好地组织智慧医疗物流智慧医疗和医学领域的人工智能可以更好地组织患者路线或治疗计划&a…

RabbitMQ 队列参数

RabbitMQ 队列参数 RabbitMQ在申明队列的时候&#xff0c;可以指定一些参数&#xff1a; /*** Declare a queue* see com.rabbitmq.client.AMQP.Queue.Declare* see com.rabbitmq.client.AMQP.Queue.DeclareOk* param queue the name of the queue* param durable true if we…

内核源码解读之内存管理(10)percpu_page_set分析

文章目录背景数据结构pcp的初始化流程背景 Linux系统中0阶内存分配需求是最多的&#xff0c; 而且经常存在频繁分配释放的行为&#xff0c;如果每次都去伙伴系统中申请&#xff0c;会经常需要获取zone->lock锁住整个zone区域。随着CPU核心数的增加&#xff0c;伙伴系统锁竞…

jumpserver堡垒机配置https访问

官方文档&#xff1a;https://docs.jumpserver.org/zh/master/ Jumpserver部署关闭防火墙开放策略 按照需要开放端口即可 firewall-cmd --permanent --add-port22/tcp 开放22端口 firewall-cmd --permanent --add-port80/tcp 开放80端口 firewall-cmd --permanent --add-po…

ctfshow-信息搜集

web1 右键查看源码得到flag web2 禁用了右键&#xff0c;可以ctrlu查看源码得到flag web3 抓包得到flag web4 题目提示在robots中&#xff0c;可以用dirsearch 扫出来 访问robots.txt 再访问/flagishere.txt得到flag web5 题目提示源码泄露&#xff0c;再用dirsearch扫…

如何在Linux上安装文件同步工具:FreeFileSync

文件同步是最需要的功能之一&#xff0c;尤其是在共享文件时&#xff0c;不仅如此&#xff0c;它还可以很好地用于将数据与云存储同步。因此&#xff0c;如果您正在寻找一种可免费获得且易于在 Linux 上使用的工具&#xff0c;请不要错过本文。 在 Linux Mint 21 上安装 FreeF…

【数据结构】(牛客)链表中倒数第k个结点,(LeetCode)合并两个有序链表,(牛客)CM11 链表分割

目录 一、链表中倒数第k个结点 1、题目说明 2、题目解析 二、合并两个有序链表 1、题目说明 2、题目解析 三、CM11 链表分割 1、题目说明 2、题目解析 一、链表中倒数第k个结点 1、题目说明 题目链接&#xff1a;链表中倒数第k个结点 输入一个链表&#xff0c;输出该链表中倒…

U3D客户端框架(资源管理篇)之自动化打Assetbundle包管理器

一、AssetBundle介绍 AssetBundle是将资源使用Unity提供的一种用于存储资源的压缩格式打包后的集合&#xff0c;它可以存储任何一种Unity可以识别的资源&#xff0c;如模型&#xff0c;纹理图&#xff0c;音频&#xff0c;场景等资源。也可以加载开发者自定义的二进制文件。他…

CleanMyMacX4.12最新免费版苹果电脑系统优化清理软件

CleanMyMac X是一款Mac上优秀的系统清理工具&#xff0c;它可以帮助用户清理垃圾文件、清理缓存、清理日志文件、清理应用程序等&#xff0c;可以让Mac系统保持良好的运行状态&#xff0c;提高Mac的运行速度。CleanMyMac X还可以帮助用户清理垃圾文件、清理缓存、清理日志文件、…

PCB翘曲度标准是多少

PCB翘曲其实也是指电路板弯曲&#xff0c;是指原本平整的电路板&#xff0c;放置桌面时两端或中间出现在微微往上翘起&#xff0c;这种现象被业内人士称为PCB翘曲。 电路板翘曲度计算公式将电路板平放在桌面上&#xff0c;电路板的四个角着地&#xff0c;测量中间拱起的高度&am…

乐观的调优(插入排序希尔排序)

学习目标 写在前面 1.插入排序 2.插入排序实战 3.插入排序的实现 4.插入排序的效率 5.平均情况 6.希尔排序 7.希尔排序的实现 8.希尔排序的效率 9.总结 写在前面 之前我们衡量一个算法的效率时&#xff0c;都是着眼于它在最坏情况下需要多少步。原因很简单&#x…

PyQt6快速入门-开发环境搭建

PyQt6开发环境搭建 文章目录 PyQt6开发环境搭建1、软件安装2 、创建工程2.1 创建Qt工程2.2 创建Python工程2.3 PyQt6启动失败问题解决本文将介绍如何在Windows下创建PyQt6的开发环境。 1、软件安装 第一步,下载并安装Python环境 https://www.python.org/downloads/windows/或…