丢包数据采集方法、装置、设备及存储介质与流程

未命名 08-29 阅读:143 评论:0


1.本技术的实施例涉及网络数据处理技术领域,尤其涉及一种丢包数据采集方法、装置、设备及存储介质。


背景技术:

2.随着近年来骨干网络的发展,交换机设备越来越多,通过人工无法实时监控所有网络设备,也就无法及时发现线路状态,比如丢包数据的监控。此外,现有的人工监测方法在记录丢包数据以及查询历史丢包数据时,操作复杂,耗时更久。


技术实现要素:

3.为了解决上述提到的技术问题,本技术的实施例提供了一种丢包数据采集方法、装置、设备及存储介质。
4.第一方面,本技术的实施例提供了一种丢包数据采集方法,该方法包括:基于配置文件创建共享字典,所述配置文件包括api server地址和认证信息;基于所述api server地址和认证信息获取所有交换机设备;基于所述交换机设备的设备参数以及所述配置文件获取丢包数据;解析所述丢包数据形成结构化数据;将所述结构化数据发布到消息服务器并存储至数据库;将所述结构化数据更新到共享字典。
5.在一种可能的实现方式中,所述基于所述交换机设备的设备参数以及所述配置文件查询丢包数据之前,还包括:判断设备丢包数据采集进程是否存在;若存在,终止所述设备丢包数据采集进程并重新创建;若不存在,创建新的设备丢包数据采集进程。
6.在一种可能的实现方式中,采用正则表达式解析所述丢包数据。
7.在一种可能的实现方式中,所述将所述结构化数据发布到消息服务器并存储至数据库之前,还包括:将结构化数据和前一次采集的结构化数据进行对比,丢弃重复数据和无效数据,所述无效数据为采集时间小于间隔时间和/或超过间隔时间的数据,以及数据量小于前一次采集的数据。
8.在一种可能的实现方式中,基于mqtt消息的python包和所述配置文件,与mqtt服务器连接,将所述结构化数据发送到mqtt服务器中。
9.在一种可能的实现方式中,基于mysql的python包和所述配置文件,与mysql数据库连接,将所述结构化数据保存到数据库中。
10.在一种可能的实现方式中,所述将所述结构化数据更新到共享字典之后,还包括:检测轮询等待时间是否等于间隔时间;
若等于,将共享字典中的结构化数据保存到本地磁盘,再次进行丢包数据采集。
11.第二方面,本技术的实施例提供了一种丢包数据采集装置,包括:创建模块,用于基于配置文件创建共享字典,所述配置文件包括api server地址和认证信息;第一获取模块,用于基于所述api server地址和认证信息获取所有交换机设备;第二获取模块,用于基于所述交换机设备的设备参数以及所述配置文件获取丢包数据;解析模块,用于解析所述丢包数据形成结构化数据;分析存储模块,用于将所述结构化数据发布到消息服务器并存储至数据库;更新模块,用于将所述结构化数据更新到共享字典。
12.第三方面,本技术提供一种计算机设备,采用如下技术方案:包括存储器和处理器,所述存储器上存储有计算机程序,所述处理器执行所述程序时实现如以上所述的方法。
13.第四方面,本技术提供一种计算机可读存储介质,采用如下技术方案:存储有能够被处理器加载并执行上述任一种地图构建方法的计算机程序。
14.综上所述,本技术包括以下有益技术效果:基于配置文件创建共享字典,所述配置文件包括api server地址和认证信息;基于api server地址和认证信息获取所有交换机设备;基于交换机设备的设备参数以及所述配置文件获取丢包数据;解析丢包数据形成结构化数据;将结构化数据发布到消息服务器并存储至数据库;之后将结构化数据更新到共享字典以实现轮询采集。本技术能够24小时不间断轮询获取交换机丢包状态并分析,通过消息服务发送分析结果,通过数据库保存历史记录,对于丢包数据的采集和存储操作更加简洁,效率更高。
15.应当理解,发明内容部分中所描述的内容并非旨在限定本技术的实施例的关键或重要特征,亦非用于限制本技术的范围。本技术的其他特征将通过以下的描述变得容易理解。
附图说明
16.结合附图并参考以下详细说明,本技术各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素。
17.图1示出了本技术实施例的丢包数据采集方法的流程图。
18.图2示出了本技术实施例的丢包数据采集装置的方框图。
19.图3示出了本技术实施例的一种电子设备的结构图。
20.具体实施方式
21.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。
22.为了便于对本技术实施例的理解,首先对本技术实施例涉及的部分术语进行解释。
23.丢包,数据在internet上是以数据包(packet)为单位传输的,数据包的传输因为
种种原因,总会有一定的损失,因此一个或多个数据包的数据无法通过网上到达目的地即为丢包。骨干网络,用来连接多个区域或地区的高速网络,每个骨干网中至少有一个和其他骨干网进行互联互通的连接点,不同的网络供应商都拥有自己的骨干网,用以连接其位于不同区域的网络。
24.接下来对本技术实施例所涉及的应用场景进行介绍。需要说明的是,本技术实施例描述的应用场景为骨干网络链路中所有网络设备数据传输的场景,仅仅是为了更加清楚地说明本技术实施例的技术方案,并不构成对本技术实施例提供的技术方案的限定。本技术实施例提供的丢包数据采集方法在其他数据传输的相似或类似的场景同样适用。
25.图1示出了本技术实施例的丢包数据采集方法的流程图,该方法基于python程序运行实施,参见图1,该方法包括如下步骤:步骤101,基于配置文件创建共享字典,所述配置文件包括api server地址和认证信息。
26.步骤102,基于所述api server地址和认证信息获取所有交换机设备。
27.其中,api server地址为集群的核心,负责集群各功能模块之间的通信。
28.共享字典用于为python多进程保存数据,并在主进程进行维持,且共享字典以设备id为key,以进程状态为值。
29.在本技术实施例中,首先基于配置文件获取相应的配置,包括但不限于api server地址、认证信息、端口信息、连接方式等。
30.进一步地,启动主进程进入轮询模式。
31.其中,轮询又叫程控输出入,是一种cpu决策如何提供周边设备服务的方式。主要是由cpu定时发出询问,依序询问每一个周边设备是否需要其服务,有即给予服务,服务结束后再问下一个周边,接着不断周而复始。
32.进一步地,通过api server地址和认证信息构建api请求,获取所有交换机设备列表。
33.其中,依据交换机设备列表创建共享字典。
34.进一步地,判断设备丢包数据采集进程是否存在;若存在,终止所述设备丢包数据采集进程并重新创建;若不存在,创建新的设备丢包数据采集进程。
35.在本技术实施例中,主进程在轮询期间会检查各个子进程的状态,如果轮询到一个采集周期,发现进程依然存活则认为该子进程由于网络超时已经卡死,对该子进程进行终止操作,并创建新的子进程使其进入采集工作状态。
36.步骤103,基于所述交换机设备的设备参数以及所述配置文件获取丢包数据。
37.具体地,在一种可能的实现方式中,通过配置文件中的配制和pyjsonrpc的python包生成对交换机设备的api请求,向交换机设备提供的api接口发送api请求,获取设备api接口返回的丢包原始数据,在另一种可能的实现方式中,通过console连接获取丢包数据。
38.步骤104,解析所述丢包数据形成结构化数据。
39.具体地,通过正则表达式匹配格式特征,匹配出需要的数据,然后将匹配出的数据生成结构化数据。
40.其中,正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特
定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
41.进一步地,该结构化数据以字典格式和数组格式存储。
42.其中,字典格式存储了“丢包采集时间,本地到远端发送数据包数,本地到远端丢包率,远端到本地接受数据包数,远端到本地丢包率,本地最大丢包数,本地最小丢包数,本地最大丢包率,本地最小丢包率,远端最大丢包数,远端最小丢包数,远端最大丢包率,远端最小丢包率,本地平均丢包数,本地平均丢包率,远端平均丢包数,远端平均丢包率”,并且以数组格式存储了每次测试丢包数和丢包率,以及测试时间。
43.在本技术实施例中,以字典格式保存的结构化数据中特定的key代表具体的数据名称,key对应的值为该名称的具体数据,具体表示为“key”:value;以数组格式保存的结构化数据为在方括号“[]”中以逗号分隔的多个测试数据字典(“key”:value),每个数据字典包含3个key,分别对应测试丢包数和丢包率,以及测试时间,每个测试数据字典为一次丢包测试的结果数据。将设备返回的多个测试数据字典以逗号分隔并保存在方括号[]中,将整个数组保存到结构化数据中的特定key的值中。该结构化数据以固定格式和数据类型存储数据,并以此作为缓存和数据比对的格式,方便进行数据比对。
[0044]
进一步地,将结构化数据和前一次采集的结构化数据进行对比,丢弃重复数据和无效数据,所述无效数据为采集时间小于间隔时间和/或超过间隔时间的数据,以及数据量小于前一次采集的数据。
[0045]
步骤105,将所述结构化数据发布到消息服务器并存储至数据库。
[0046]
具体地,通过mqtt消息的python包和配置文件中的mqtt server地址、认证信息、连接方式配制进行mqtt服务器连接,以文本格式发送当前有效结构化数据到mqtt特定主题中,订阅相同主题的其他程序就可以实时收到本次发送的数据。
[0047]
进一步地,通过mysql的python包和配置文件中的mysql server地址、端口和认证信息进行mysql数据库连接,通过原生sql语句将当前有效数据以insert方式保存到数据库。
[0048]
步骤106,将所述结构化数据更新到共享字典。
[0049]
具体地,对主进程创建的共享字典进行数据update操作,将当前子进程获取的有效的格式化数据保存到共享字典。最终子进程完成所有操作之后自动结束。
[0050]
进一步地,将所述结构化数据更新到共享字典之后,检测轮询等待时间是否等于间隔时间;若等于,将共享字典中的结构化数据保存到本地磁盘,再次进行丢包数据采集,即再次获取设备列表,通过设备列表再次生成子进程进行工作。
[0051]
根据本公开的实施例,实现了以下技术效果:基于配置文件创建共享字典,所述配置文件包括api server地址和认证信息;基于api server地址和认证信息获取所有交换机设备;基于交换机设备的设备参数以及所述配置文件获取丢包数据;解析丢包数据形成结构化数据;将结构化数据发布到消息服务器并存储至数据库;之后将结构化数据更新到共享字典以实现轮询采集。本技术能够24小时不间断轮询获取交换机丢包状态并分析,通过消息服务发送分析结果,通过数据库保存历史记录,对于丢包数据的采集和存储操作更加简洁,效率更高。
[0052]
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列
的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本技术所必须的。
[0053]
以上是关于方法实施例的介绍,以下通过装置实施例,对本技术所述方案进行进一步说明。
[0054]
图2示出了本技术实施例的丢包数据采集装置的方块图,参见图2,该装置包括创建模块201、第一获取模块202、第二获取模块203、解析模块204、分析存储模块205、更新模块206。
[0055]
创建模块201,用于基于配置文件创建共享字典,所述配置文件包括api server地址和认证信息;第一获取模块202,用于基于所述api server地址和认证信息获取所有交换机设备;第二获取模块203,用于基于所述交换机设备的设备参数以及所述配置文件获取丢包数据;解析模块204,用于解析所述丢包数据形成结构化数据;分析存储模块205,用于将所述结构化数据发布到消息服务器并存储至数据库;更新模块206,用于将所述结构化数据更新到共享字典。
[0056]
需要说明的是:上述实施例提供丢包数据采集装置在进行丢包数据采集时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的丢包数据采集装置与丢包数据采集方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0057]
图3示出了本技术实施例的一种电子设备的结构图,参见图3,电子设备300包括处理器301和存储器303。其中,处理器301和存储器303相连,如通过总线302相连。可选地,电子设备300还可以包括收发器304。需要说明的是,实际应用中收发器304不限于一个,该电子设备300的结构并不构成对本技术实施例的限定。
[0058]
处理器301可以是cpu(central processing unit,中央处理器),通用处理器,dsp(digital signal processor,数据信号处理器),asic(application specific integrated circuit,专用集成电路),fpga(field programmable gate array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本技术公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器701也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等。
[0059]
总线302可包括一通路,在上述组件之间传送信息。总线302可以是pci(peripheral component interconnect,外设部件互连标准)总线或eisa(extended industry standard architecture,扩展工业标准结构)总线等。总线302可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0060]
存储器303可以是rom(read only memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,ram(random access memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是eeprom(electrically erasable programmable read only memory,电可擦可编程只读存储器)、cd-rom(compact disc read only memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
[0061]
存储器303用于存储执行本技术方案的应用程序代码,并由处理器301来控制执行。处理器301用于执行存储器303中存储的应用程序代码,以实现丢包数据采集。
[0062]
其中,电子设备包括但不限于:移动电话、笔记本电脑、数字广播接收器、pda(个人数字助理)、pad(平板电脑)、pmp(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字tv、台式计算机等等的固定终端。需要说明的是,图3示出的电子设备仅仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
[0063]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络或其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如:同轴电缆、光纤、数据用户线(digital subscriber line,dsl))或无线(例如:红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质,或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如:软盘、硬盘、磁带)、光介质(例如:数字通用光盘(digital versatile disc,dvd))或半导体介质(例如:固态硬盘(solid state disk,ssd))等。值得注意的是,本技术实施例提到的计算机可读存储介质可以为非易失性存储介质,换句话说,可以是非瞬时性存储介质。
[0064]
应当理解的是,本文提及的“至少一个”是指一个或多个,“多个”是指两个或两个以上。在本技术实施例的描述中,除非另有说明,“/”表示或的意思,例如,a/b可以表示a或b;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,为了便于清楚描述本技术实施例的技术方案,在本技术的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
[0065]
以上所述为本技术提供的示例性实施例,并不用以限制本技术实施例,凡在本技术实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。

技术特征:
1.一种丢包数据采集方法,其特征在于,包括:基于配置文件创建共享字典,所述配置文件包括api server地址和认证信息;基于所述api server地址和认证信息获取所有交换机设备;基于所述交换机设备的设备参数以及所述配置文件获取丢包数据;解析所述丢包数据形成结构化数据;将所述结构化数据发布到消息服务器并存储至数据库;将所述结构化数据更新到共享字典。2.根据权利要求1所述的方法,其特征在于,所述基于所述交换机设备的设备参数以及所述配置文件查询丢包数据之前,还包括:判断设备丢包数据采集进程是否存在;若存在,终止所述设备丢包数据采集进程并重新创建;若不存在,创建新的设备丢包数据采集进程。3.根据权利要求1所述的方法,其特征在于,采用正则表达式解析所述丢包数据。4.根据权利要求1所述的方法,其特征在于,所述将所述结构化数据发布到消息服务器并存储至数据库之前,还包括:将结构化数据和前一次采集的结构化数据进行对比,丢弃重复数据和无效数据,所述无效数据为采集时间小于间隔时间和/或超过间隔时间的数据,以及数据量小于前一次采集的数据。5.根据权利要求1所述的方法,其特征在于,基于mqtt消息的python包和所述配置文件,与mqtt服务器连接,将所述结构化数据发送到mqtt服务器中。6.根据权利要求1所述的方法,其特征在于,基于mysql的python包和所述配置文件,与mysql数据库连接,将所述结构化数据保存到数据库中。7.根据权利要求1所述的方法,其特征在于,所述将所述结构化数据更新到共享字典之后,还包括:检测轮询等待时间是否等于间隔时间;若等于,将共享字典中的结构化数据保存到本地磁盘,再次进行丢包数据采集。8.一种丢包数据采集装置,其特征在于,包括:创建模块,用于基于配置文件创建共享字典,所述配置文件包括api server地址和认证信息;第一获取模块,用于基于所述api server地址和认证信息获取所有交换机设备;第二获取模块,用于基于所述交换机设备的设备参数以及所述配置文件获取丢包数据;解析模块,用于解析所述丢包数据形成结构化数据;分析存储模块,用于将所述结构化数据发布到消息服务器并存储至数据库;更新模块,用于将所述结构化数据更新到共享字典。9.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器上存储有能够被处理器加载并执行如权利要求1至7中任一种方法的计算机程序。10.一种计算机可读存储介质,其特征在于,存储有能够被处理器加载并执行如权利要求1至7中任一种方法的计算机程序。

技术总结
本申请的实施例提供了一种丢包数据采集方法、装置、设备及存储介质,属于数据处理领域,所述方法包括:基于配置文件创建共享字典,所述配置文件包括API Server地址和认证信息;基于所述API Server地址和认证信息获取所有交换机设备;基于所述交换机设备的设备参数以及所述配置文件获取丢包数据;解析所述丢包数据形成结构化数据;将所述结构化数据发布到消息服务器并存储至数据库;将所述结构化数据更新到共享字典。本申请能够不间断轮询获取交换机丢包状态并分析,通过消息服务发送分析结果,通过数据库保存历史记录,对于丢包数据的采集和存储操作更加简洁,效率更高。效率更高。效率更高。


技术研发人员:胡雅晴
受保护的技术使用者:北京天弛网络有限公司
技术研发日:2023.04.20
技术公布日:2023/8/28
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐