Telemetry原理

news2024/10/5 23:29:17

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

一、Telemetry概述

1.1、技术背景:

网络设备的统一监控和性能管理是运维平台的重要功能,设备的监控数据包括数据、控制和管理平面数据。

获取设备监控数据的方式有:SNMP、CLI、Syslog、Netstream和sFlow等。常用的是SNMP方式,但是SNMP采集周期是5分钟,通常会导致细节信息的丢失。

传统网络采集技术的问题:

传统网络通过平均5-15分钟的Pulling拉取采样数据,更密集的Pulling拉取会造成网络设备瘫痪。

SNMP为主的运维系统效率低。

无法检测网络大量微突发造成的网络问题。

1.2、telnmetry简介:

Telemetry也叫NetworkTelemetry(网络遥测技术),是一项远程的从物理设备或虚拟设备上高速采集数据的技术设备通过推模式(PushMode)周期性的主动向采集器上送设备的接口流量统计、CPU或内存数据等信息,相对传统拉模式(Pull Mode)的一问一答式交互,提供了更实时更高速的数据采集功能。

业界也有将SNMP认为是传统的Telemetry技术把当前Telemetry叫做Streaming Telemetry或Model-Driven Telemetry的说法。

Telemetry技术特点:

telemetry采用推模式工作YANG模型定义结构精度可达到亚秒级

Telemetry技术优势:

telemetry采用推模式及时获取丰富的监控数据,可以实现网络故障的快速定位,提供统一的数据流格式,简化采集器分析检测数据的难度,从而解决传统网络运维问题。

  • 精细监控:采集数据的精度高,且类型十分丰富,可以充分反应网络状况。
  • 快速定位:在复杂的网络中,能够快速定位故障,达到秒,亚秒级的故障定位速度。
  • 主动上报:telemetry仅需配置一次订阅,设备就可以持续上报数据,减轻设备处理查询请求的压力。

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

广义telemetry:包括采集器,分析器,控制器和设备功能构成的一个自闭环系统。

狭义telemetry:设备采样数据上送给采集器的功能

利用telemetry技术,采集器可以收集到大量的设备数据,然后将数据交给分析器进行综合分析,分析器将决策结果发送给控制器,由控制器调整设备的配置,便可以几乎实时的反馈调整后的设备状态是否符合预期。

 

二、Telemetry技术原理

狭义的telemtry框架可以分为四个模块数据源、数据生成数据订阅数据推送

 

Telemetry协议栈:

telemetry协议栈具有分层结构:传输层、通信层、数据编码层和数据模型层。

举个订外卖的例子便于理解:YANG是个快餐店的菜谱,顾客想吃汉堡和炸鸡便照着YANG菜单写了一份A4纸采购清单(如一份汉堡,两份炸鸡),将清单折成邮票大小的小纸条装到了GPB信封里,找到门口的信使gRPC,信使gRPC骑上HTTP2电动车到了快餐店。信使gRPC将GPB信封给老板,老板解开GPB信封核对顾客采购清单是否在销售范围内。

Telemetry数据源:

telemetry数据源定义了可被获取的数据,telemetry采用了YANG模型定义设备可获取数据源,支持各类YANG模型,包括Huawei-YANG、IETF-YANG和OpenConfig-Yang

 

Telemetry数据订阅:

telemetry数据订阅定义了数据发送端和数据获取端交互关系。

 

1.静态订阅

静态订阅是指设备作为客户端,采集器作为服务端。由设备主动发起到采集器的连接,进行数据采集上送。多用于长期巡检。

 

2.动态订阅

动态订阅是指设备作为服务端,采集器作为客户端发起到设备的连接。由设备进行数据采集上送。多用于短期监控。

 

Telemetry数据推送:

Telemetry的数据推送有两种方式基于gRPC方式基于UDP方式

 

1.基于gRPC方式 (gRPC官网:gRPC)

gRPC面向连接,只在采集器和主控板CPU之间建立gRPC隧道。(蓝色箭头表示gRPC隧道)【gRPC封装层由gRPC开源软件提供】

 

 

2.基于UDP方式

UDP推送相较于gRPC推送做出了一定优化,采集器也可以和线路卡CPU之间建立UDP隧道,由一对一变为多对一建立隧道,缓解了主控板CPU的压力同时也提高了效率。

 

 

三、Telemetry配置与实践

 

案例描述:某公司现有一台CE12800设备,管理IP地址为192.168.56.100。为了更好的采集设备性能数据,现在要求通过Telemetry静态订阅方式,设备推送CPU信息到服务端。

配置思路:

华为配置步骤:

1、进入telemetry视图

[CE1] telemetry

2、配置设备推送目标

本例中创建目标组Dest1。推送目标IP地址为192.168.56.1,端口为20000。

[CE1-telemetry] destination-groupDest1

[CE1-telemetry-destination-group-Dest1]ipv4-address 192.168.56.1 port 20000protocol gRPC no-tls

3、配置设备采集数据

配置Telemetry静态订阅采样数据时,需要创建采样传感器组,并指定好采样路径。本例中创建采样组Sensor1。采样路径为CPU信息。

[CE1-telemetry] sensor-groupSensor1

[CE1-telemetry-sensor-group-Sensor1]sensor-path huawei-devm:devm/cpuInfos/cpuInfo

4、创建静态订阅

创建订阅,将配置好的上送目标组和采样传感器组进行关联,完成数据上送。本例中关联目标组Dest1与传感器组Sensor1,并设置采样间隔为1000ms。配置完后,设备将持续向目标推送数据。 [CE1-telemetry]subscriptionSub1

[CE1-telemetry-subscription-Sub1]destination-groupDest1

[CE1-telemetry-subscription-Sub1]sensor-groupSensor1 sample-interval 1000

5、采集器编译proto文件

6、编写Python代码,获取设备信息

7、结果验证(运行python脚本进行Telemetry订阅实现设备的数据采样)

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

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

相关文章

学习Python的8天

1、异常处理机制 Python 中,用try except语句块捕获并处理异常,其基本语法结构如下所示: try:可能产生异常的代码块 except [ (Error1, Error2, ... ) [as e] ]:#(e是别名,可以自己起)处理异常的代码块1 except [ (Error3, Error…

【强化学习论文合集 | 2020年合集】一. ICML-2020 强化学习论文

强化学习(Reinforcement Learning, RL),又称再励学习、评价学习或增强学习,是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题。 本专栏整理了近几年国际顶级会议中,涉及强化学习(Rein…

Workfine使用Oracle Express Edition数据库

Workfine 应用环境和工具 Win10 专业版操作系统Windows Terminaldocker desktop 4.10.1 安装设置Oracle Express Edition数据库 1、获取Oracle XE 18.4.0 docker 镜像,在 Windows Terminal 终端里执行如下命令 docker pull gvenzl/oracle-xe:18.4.0 2、下载成功…

小啊呜产品读书笔记001:《邱岳的产品手记-14》第26讲 写好产品文档的诀窍 第27讲 产品案例分析: QuartzHooked的对话式交互

小啊呜产品读书笔记001:《邱岳的产品手记-14》第26讲 写好产品文档的诀窍 & 第27讲 产品案例分析: Quartz&Hooked的对话式交互一、今日阅读计划二、泛读&知识摘录1、第26讲 写好产品文档的诀窍2、第27讲 产品案例分析: Quartz&am…

web前端-javascript-function函数(函数说明,创建和调用函数,其他方法函数声明创建函数、函数表达式创建函数)

函数 //var fun new Function("console.log(Hello 这是我的第一个函数);"); //fun();function fun2() {console.log("这是我的第二个函数");alert("哈哈哈哈");document.write("~~~~(>_<)~~~~"); }//console.log(fun2); //调用…

[附源码]计算机毕业设计springboot惠农微信小程序论文

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Nginx加载Lua脚本lrucache缓存

1、简介 lrucache缓存是单进程的&#xff0c;就像redis一样&#xff0c;所以不需要锁。 2、nginx配置 #lua_code_cache off; # 把这个缓存打开&#xff0c;因为里面的在new对象的时候&#xff0c;只允许实例一个对象&#xff0c;如果不打开的话 # 每次次请求会创建一个对象&a…

RK3588平台开发系列讲解(DisplayPort篇)DP相关模式说明

平台内核版本安卓版本RK3588Linux 5.10Android12🚀返回专栏总目录 文章目录 一、DP Alt Mode二、DP Legacy Mode2.1、Controller2.2、PHY三、Split Mode沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将介绍DP的相关模式。

KNN最近邻算法分析及实现(Python实现)

KNN最近邻算法分析及实现&#xff08;代码附录后文&#xff09;1 KNN算法简介2 KNN基本原理3 简单实现KNN分析代码附录(Python)&#xff1a;呆&#xff0c;站住别跑&#xff0c;留个赞&#xff0c;给个关注嘛都看到这了Author&#xff1a; Nirvana Of Phoenixl Proverbs for yo…

Mysql视图和触发器

视图 视图是什么&#xff0c; 是否真实存在? 个人理解&#xff1a;视图视图&#xff0c;只是你可以看见的一层抽象层, 它并不真实存在, 而是在真实存在的一张或者多张表之上的一层封装, 对于select查询语句的提前封装. 不涉及数据的存储. 这样的一层封装好处是蛮多的. 对于…

Kamiya丨Kamiya艾美捷小鼠转铁蛋白ELISA说明书

Kamiya艾美捷小鼠转铁蛋白ELISA预期用途&#xff1a; 小鼠转铁蛋白ELISA是一种高灵敏度的双位点酶联免疫分析&#xff08;ELISA&#xff09;小鼠生物样品中转铁蛋白的测定。仅供研究使用。 引言 转铁蛋白是一种金属结合蛋白&#xff0c;可逆地与血浆中的酸溶性铁结合。它的功…

python中json的使用dump,dumps,loads,load简单了解

参考&#xff1a;https://www.runoob.com/python3/python3-json.html&#xff0c;https://zhuanlan.zhihu.com/p/264393909 json的作用 JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式 &#xff08;图片是参考链接中的图片&#xff09; json.dumps(): 对数据…

Node.js 入门教程 26 npm 依赖与开发依赖 27 Node.js 包运行器 npx

Node.js 入门教程 Node.js官方入门教程 Node.js中文网 本文仅用于学习记录&#xff0c;不存在任何商业用途&#xff0c;如侵删 文章目录Node.js 入门教程26 npm 依赖与开发依赖27 Node.js 包运行器 npx27.1 轻松地运行本地命令27.2 无需安装的命令执行27.3 使用不同的 Node.js …

[SWPUCTF 2018]SimplePHP

考点&#xff1a;文件上传 试了一下&#xff0c;直接上传php文件是不行的&#xff0c;.user.ini和.htaccess也不行 能看到有提示&#xff0c;flag在f1ag.php中 在查看文件功能处发现get传参&#xff0c;可能是文件包含 尝试包含当前页面 ?filefile.php 得到 <?php h…

一些感悟(随笔小记)

不知不觉已经坚持快70天了&#xff0c;之前虽然断断续续学过几个月但是没有形成自己的体系&#xff0c;导师安排的各种任务和课程也极大的影响了自己自学的进度&#xff0c;当时真的很迷茫。好在因为那一股冲劲制定了百日救赎计划&#xff0c;虽然在庞大的知识体系中100天真的微…

精彩回顾 | 苏州农商银行新一代云原生信息科技架构体系实践

11月18日&#xff0c;2022年第五届中国金融科技产业大会暨第四届中新&#xff08;苏州&#xff09;数字金融应用博览会“基础软件与云原生系统软件”分论坛成功举办。该论坛由由中国计算机学会CTO CLUB&#xff08;苏州&#xff09;承办&#xff0c;江苏省金融科技云原生融合创…

【Kubernetes系列】工作负载资源之StatefulSet

StatefulSet概述解决的问题组件Pod 选择算符卷声明模板最短就绪秒数更新策略滚动更新分区滚动更新最大不可用 Pod强制回滚副本数StatefulSet的网络标识StatefulSet存储状态概述 StatefulSet 是用来管理有状态应用的工作负载 API 对象。 StatefulSet 用来管理某 Pod 集合的部署…

IDEA的乱码与file.encoding = UTF-8

file.encoding UTF-8的作用其实就是使用UTF-8作为文件encoding和decoding时的默认方案。 我们知道存储文本文件时&#xff0c;文本变为二进制时要对文件进行encoding&#xff0c;这是一个字节转字符的过程&#xff0c;转换的具体工作由JAVA的API完成&#xff08;例如&#xf…

ACM近年区域赛的所有题型

之前写了个退役文章记录想记录下&#xff0c;但是没有干货&#xff0c;还是给删了&#xff0c;所以前面的是退役小记&#xff0c;后面是我个人写近2年所有区域赛场次记录的题型 目录 退役小记&#xff08;没兴趣可以不看&#xff09; 这里简单记下我的acm生涯 省赛和三场区…

MySQL第一弹

目录 一、数据库的基本概念 1、数据 (Data) 2、表 3、数据库 4、数据库管理系统(DBMS) 5、数据库系统 6、DBMS的工作模式如下 二、数据库的发展史 1.第一代数据库&#xff08;淘汰&#xff09; 2.第二代数据库&#xff08;现在用的基本上都是二代&#xff09; 3.第…