传输和遥测
传词会点燃我们每个人的不同思想电磁波从发射机向接收器传输像广播或电视可能我们想汽车传输网络世界中,传输通常指源与端之间的传输和接收包引出文章焦点-遥测数据传输
很高兴分享一些新动态, 特别是Nexus开关流电路测量远程测量包括从开关收集数据并传送到接收器监测实时收集数据能力对网络可见度至关重要,而网络可见度反过来帮助网络操作、自动化和规划文章中我们用OpenConfig介绍gNMI从Nexus交换机流遥测数据开源时间序列采集代理Telegraf某些人可能记得,电报系沿线远程传递消息系统取现代之法 从摩斯编码到JSON编码
gRPC、gNMI和OpenConfig开关演化
CiscoNexus开关上有不同的网络配置协议,包括NETCONF、RESTCONF和gNMI全部协议使用杨市数据模型操作配置状态信息每一种协议都使用不同的编码和传输方式GRPC网络管理接口使用GRPC远程程序调用框架gNMI管理协议统一配置管理NETCONF和RESTCONF由IETF定义,GNMI规范公开发布在OpenConfigGithub账号.
CiscoNexus开关使用Cisco专有gRPC代理代理称GRPCConfigOper用于模型驱动遥测以拨出模型为基础 开关将遥测数据推向遥测接收器
NX-OS发布9.3(1)后,我们引入GNMI代理器,该代理器还提供点订阅开关遥测数据允许遥测应用从用户操作开关提取信息gNMI初始应用基础为Cisco数据引擎或设备YANG
为了完全开放gNMI规范,我们加进OpenConfig支持 gNMIgNMI定义gRPC操作:能力请求、获取请求、Set请求和订阅请求CiscoNX-OS发布9.3(5)支持全套gNMI操作使用OpenConfigCiscoNX-OS9.3(5)基础gNMI0.5.0版
虽然这些似似增量增强,但远非如此这一新遥测法使我们能够流向多采集器,包括内部和开源社区内部,正如我们在文章中所见。
CiscoNexus开关远程测量
上文描述的两种流电测量方法可以通过Cisco Nexus交换机全球特效实现
- 数外遥测用“性能遥测”。
- gNMI拨入远程测量用“特性抓取法”。
远程graf
远程graf开源服务器代理用于采集报告度量和事件开发公司InflusData使用各种输入插件定义它接收并处理遥测数据源使用输出插件控制发送数据,例如发送数据库Telegraf可订阅开关或开关并收集GNMI或其他协议的遥测数据数据可发送到时间序列数据库InflusDB数据可用Chronograf程序提供不同组件概述如下:
Telegraf:服务器代理收集报告度量
流出DB:时间序列数据库
Chronograf:aguiusData平台图形用户界面
卡普契托尔:数据处理引擎
下方例子中,我用栈前三大组件查看遥测数据Cisco发布专用插件gNMI和MDT(模型驱动遥测)Telegraf与产品打包
怎样才能实现
步骤1:搭建环境
实例如下:全虚拟搭建仅用两台设备:Nexus9300v开关运行9.3(5)和Ubuntu服务器运行18.04LTS使用可达宿主的Nexus切换程序可搭建相同的环境
上头Nexus9300vNexus9000序列切换器新 ToR模拟程序可用VMwareESXi/Fusion、Vagrant或KVM/QEMU虚拟应用不需要许可证并可用于演示或实验目的建模Nexus9000环境在此例子中,我用OVA调用VMwareESXi主机开关安装完成后开关可通过控制台或SSH访问后,OpenConfig需要安装适当的RPM包从开关下载Cisco人工学门户下开放nxs代理
后文件mtx开放配置全
n9300v-telemetry# install add mtx-openconfig-all-1.0.0.182-9.3.5.lib32_n9000.rpm activate添加补丁(/mtx-openconfig-all1.0.0182-93.5.lib32_n9900.rpm)N9300v遥测#显示版主动包数:mtx-openconfig-all1.0.0.182-9.3.5.lib32_n9900n9300v-e
步骤2:配置服务器Telegraf
安装Telegraf有两种方式一种方法就是在宿主Docker容器内安装Telegraf、InvlusDB和Chronograf另一种方法就是使用Telegraf存储库安装组件包这种方法我仿照Telegraf安装可提供多教程,所以我引用InflusData文档记录面向此步服务安装后,可验证操作状态或启动/停止/重新启动服务使用下列命令
systeraft状态
双插件cisco_mdt_telemetryCisco模型驱动遥测插件gnmi语scogNMI插件整合到Telegraf发布中,无需配置特殊安装上头cisco_mdt_telemetry插件基于拨出远程测量或推送模型上头gnmi语插件基础是拨入远程测量或拉动模型,这正是我们在这个例子中探索的
步骤3:配置开关
gRPC和gNMI远程测量可调用命令“特性格化”。gRPC配置概述如下
N9300v遥测#显示运行grejul141656372020版9.3(5)grpc最大流调16grc使用vrf默认grpc证书gnmin9300v-telemetry#
最大同时调用参数具体应用到新gNMI服务并允许最多16同时调用gNMIgRPC代理符默认只服务管理接口添加使用-vrf默认命令允许它接受管理方和默认VRF的请求
可选性,我们也可以配置gNMI使用专用端口流电测默认端口为50051
N9300v-遥测#grpc移植默认50051
gNMI远程测量使用TLS证书验证客户服务器通信举个例子,我使用自签名证书上传服务器和开关gNPI/gRPC代理程序设置服务器端,Telegraf配置文件(下段覆盖)设置指向证书
开关侧配置配置指南覆盖所需步骤有两种方法可用第一种方法可用老版发布方式并包含将.pem文件拷贝到启动版并人工编辑gRPC配置文件使用.pem和.key文件
第二种方法与NX-OS发布9.3(3)并用推荐方式安装证书包括生成公有和私有密钥并嵌入证书中与信任点相关联信任点后在上述grpc证书命令中引用
unkcs12-export-outgncertptpks12-pfx-inkeygnmi
证书可用命令“显示密码证书”。举个例子,我复制公钥gnmi.pem从开关开关复制到主机运行Telegraf进入默认配置文件夹/etc/telegraf
步骤4:编辑Telegraf配置文件
取出拼图中关键块Telegraf使用输入输出插件输出插件是向无流量DB发送数据的方法输入插件用于具体说明远程测量数据的不同源,Telegraf可订阅接收数据,包括CiscoNexus交换机
以下是输出插件配置并搭建数据库名和证书信息将输入Chronograf
大部分字段留作默认值,但下文对少数参数编辑
#向流体DB发送量子配置sssssss
配置输入插件 输入切换细节Cisco发布两个插件Telegraf、MDT插件和gNMI插件面向此练习, 我们将聚焦gNMI插件, 安装时该插件集成Telegraf注意路径指针开源其它选项使用设备或DME为gNMI订阅源码和路径编码也可以在此指定 。请见CiscoNexus编程指南gNMI支持编码格式发布下示例引用插件Cisco_telima_gnmi自此改名为gnmi
[[inputs.cisco_telemetry_gnmi]] ## Address and port of the GNMI GRPC server addresses = ["172.25.74.84:50051"] # addresses = ["172.25.238.111:57400"] ## define credentials username = "admin" password = "abcxyz12345" ## GNMI encoding requested (one of: "proto", "json", "json_ietf") encoding = "proto" ## enable client-side TLS and define CA to authenticate the device enable_tls = true tls_ca = "/etc/telegraf/gnmi.pem" insecure_skip_verify = true [[inputs.cisco_telemetry_gnmi.subscription]] ## Name of the measurement that will be emitted name = "Telemetry-Demo" ## Origin and path of the subscription origin = "openconfig" path = "/interfaces/interface/state/counters"
步骤5:搭建Chronograf并启动Telegraf
浏览服务器IP端口8888查看时序遥测数据美景Chronograf可访问下图显示左侧设置图标需要指针ExplusDB数据库,而该数据库是在Telegraf配置文件输出插件段中选择的。
步骤4编辑文件夹/etc/tegraf主机文件时,我创建新配置文件,我编辑后不修改原配置文件i调用文件egraf载客b.conf启动远程播客时,我可以通过指定此特殊配置文件实现下图Cisco_terication_gnmi插件(后改名为gnmi)加载
dirao@dirao-nso:/etc/telegraf$sudo /usr/bin/telegraf -config /etc/telegraf/telegraf_influxdb.conf -config-directory /etc/telegraf/telegraf.d/密码drao:2020-07-15T00:33:54ZITelegraf 1.14.4 2020-07-15T00:33:54ZI装载输入器:cisco_telephic_gnmi 2020-07-15T00:33:54ZI装载集合器: 2020-07-15T00: 33:54ZI加载处理器: 2020-07-15TO00:33:54ZI载入输出: impledb文件 2020-07-15T00:33:54ZI标签启动日期:主机2020-07-15T00:33:54ZI[agent] Config: Interval:10s, Quiet:false, Hostname:"dirao-nso", Flush Interval:10s {"fields":{"in_broadcast_pkts":0,"in_discards":0,"in_errors":0,"in_fcs_errors":0,"in_multicast_pkts":0,"in_octets":0,"in_unicast_pkts":0,"in_unknown_protos":0,"out_broadcast_pkts":0,"out_discards":0,"out_errors":0,"out_multicast_pkts":0,"out_octets":0,"out_unicast_pkts":0},"name":"Telemetry-Demo","tags":{"host":"dirao-nso","name":"eth1/14","path":"openconfig:/interfaces","source":"172.25.74.84"},"timestamp":1594773287} {"fields":{"penconfig:/interfaces/interface/name":"eth1/14"},"name":"openconfig:/interfaces","tags":{"host":"dirao-nso","name":"eth1/14","path":"openconfig:/interfaces","source":"172.25.74.84"},"timestamp":1594773287} {"fields":{"in_broadcast_pkts":0,"in_discards":0,"in_errors":0,"in_fcs_errors":0,"in_multicast_pkts":0,"in_octets":0,"in_unicast_pkts":0,"in_unknown_protos":0,"out_broadcast_pkts":0,"out_discards":0,"out_errors":0,"out_multicast_pkts":0,"out_octets":0,"out_unicast_pkts":0},"name":"Telemetry-Demo","tags":{"host":"dirao-nso","name":"eth1/9","path":"openconfig:/interfaces","source":"172.25.74.84"},"timestamp":1594773287}
步骤6:验证并验证开关上gNMI
gNPI/GRPC验证下方设置gNPI状态并注册证书并验证gNPI订阅成功
N9300v-遥测#显示grpcgnmi服务统计gRPC端点Vrf管理服务器地址:[:9]50051测试前:Jul 1019:56:472020GMT后:Jul 1019:56472021GMTMax concurrent calls : 16 Listen calls : 1 Active calls : 0 Number of created calls : 4 Number of bad calls : 0 Subscription stream/once/poll : 3/0/0 Max gNMI::Get concurrent : 5 Max grpc message size : 8388608 gNMI Synchronous calls : 0 gNMI Synchronous errors : 0 gNMI Adapter errors : 0 gNMI Dtx errors : 0 <---snip---> n9300v-telemetry#N9300v-遥测#显示grpc内部gnmi订阅统计1 YANG36075002 DME 0 0 0 3 NX-API 0 0 0 <---snip--->
注意上文输出显示gRPC端口号并使用VRF并显示证书安装成功并显示日期第二命令输出显示黄联统计点击量-每次我们成功订阅GNMI-GNMI-GNMI-GNMI使用YANG基础模型
步骤7可视化时序Chronograf遥测数据
Navigate使用Telegraf配置文件定义的测量方法,并使用Chronograf新图形视图
上方输出显示GNMI收集的界面统计 uncast包进出有流量的特定接口可查看数据并用查询进一步建模,使其更加粒子化和具体化。
is-OS定位与各种流式遥测接收器合作, 完全开放模型可定制并微调适应您的需要
引用
- 网络可编程性YANG网络自动化结构贝诺伊特克蕾丝 Joe Clarke Jan Lindbla
- OpenConfiggNMI规范GitHub
- Telegraf概述并插件
连接CISCO