CN115941632A - 基于网络交换机设备状态的采集方法、装置、介质及设备 - Google Patents
基于网络交换机设备状态的采集方法、装置、介质及设备 Download PDFInfo
- Publication number
- CN115941632A CN115941632A CN202310124484.XA CN202310124484A CN115941632A CN 115941632 A CN115941632 A CN 115941632A CN 202310124484 A CN202310124484 A CN 202310124484A CN 115941632 A CN115941632 A CN 115941632A
- Authority
- CN
- China
- Prior art keywords
- equipment
- switch
- information
- status
- state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 134
- 238000004590 computer program Methods 0.000 claims description 19
- 230000006870 function Effects 0.000 description 8
- 238000012544 monitoring process Methods 0.000 description 5
- 230000005856 abnormality Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及一种基于网络交换机设备状态的采集方法、装置、介质及设备,其中方法包括:获取设备列表,所述设备列表中包括骨干网中所有交换机的设备信息;根据所述设备列表和预置的进程模块对所述设备列表中每一台交换机进行连接,得到各所述交换机的连接状态;根据各所述交换机的连接状态,确定各所述交换机的设备状态信息,并将各所述交换机的设备状态信息发送至预置的消息服务器,以使所述消息服务器发布各所述交换机的设备状态信息。本申请根据与各个交换机的连接状态,确定对应交换机的设备状态信息,并将各交换机的设备状态信息发送至预置的消息服务器进行发布,从而自动及时地采集骨干网中所有交换机的设备状态。
Description
技术领域
本申请涉及通信技术领域,具体涉及一种基于网络交换机设备状态的采集方法、装置、介质及设备。
背景技术
交换机是一种用于电(光)信号转发的网络设备。它可以为接入的任意两个网络节点提供独享的电信号通路。交换机能连接多台设备,使得多台设备具备互通的条件。近些年,随着软件定义网络(Software Defined Network,SDN)技术的发展,各个公司关于SDN项目的开展也逐渐增多,在SDN项目进行过程中,需要实时监控交换机的设备状态,并且随着骨干网的发展,需要的交换机越来越多,对多个交换机的设备状态监控成为亟待解决的问题。
目前对交换机的设备状态监控的方式为采用人工实时监控,但是当交换机数量较多时,人工监控的方式无法及时获取到所有交换机的设备状态信息,导致交换机出现问题时,人工无法及时找到问题所在。
发明内容
为了及时获取到所有交换机的设备状态,本申请提供一种基于网络交换机设备状态的采集方法、装置、介质及设备。
在本申请的第一方面提供了一种基于网络交换机设备状态的采集方法,具体包括:
获取设备列表,所述设备列表中包括骨干网中所有交换机的设备信息;
根据所述设备列表和预置的进程模块对所述设备列表中每一台交换机进行连接,得到各所述交换机的连接状态;
根据各所述交换机的连接状态,确定各所述交换机的设备状态信息,并将各所述交换机的设备状态信息发送至预置的消息服务器,以使所述消息服务器发布各所述交换机的设备状态信息。
通过采用上述技术方案,获取到包括骨干网中所有交换机的设备信息的设备列表后,采用预置的进程模块启动多进程,接着以多进程的方式对设备列表里每一台交换机进行连接操作,连接过程中如果没有出现异常,则说明交换机的设备状态信息为在线状态,将对应的设备状态信息发送至消息服务器进行发布;连接过程中如果出现异常,则说明交换机的设备状态信息为离线状态,同样将对应的设备状态信息发送至消息服务器进行发布,从而自动及时地采集骨干网中所有交换机的设备状态信息,进而可以在交换机出现问题时,人工能及时找到问题所在。
可选的,所述获取设备列表,包括:
从预置的配置文件中读取API接口地址;
通过所述API接口地址,调用预置的设备列表获取方法;
在调用后,对所述API接口地址的接口信息进行解析,获取到包括骨干网中所有交换机的设备信息的设备列表。
通过采用上述技术方案,从服务器预置的配置文件中获取API接口地址,服务器可以通过API接口快速调用预置的设备列表获取方法,起到在数据调用过程中减少时间成本。调用预置的设备列表获取方法后,读取并解析API接口地址的接口信息内交换机返回的数据,可以快速地批量获取所有交换机的设备信息,即获取到包括骨干网中所有交换机的设备信息的设备列表。
可选的,所述根据所述设备列表和预置的进程模块对所述设备列表中每一台交换机进行连接,得到各所述交换机的连接状态,包括:
生成共享字典,所述共享字典用于供多个进程共享数据;
将所述设备列表和所述共享字典发送至预置的进程模块,以启动所述多个进程;
将所述设备列表中的每一台交换机的设备信息循环存储为字典格式,得到多个字典格式的设备信息;
基于每个字典格式的设备信息和预置的交换机命令列表,循环调用预置的设备连接方法,以连接对应的交换机,得到交换机的连接状态。
通过采用上述技术方案,获取到包括所有交换机的设备信息的设备列表后,生成用于供多个进程共享数据的共享字典,为多进程保存所需要的数据,使得多进程可以共享一个字典内数据,获取数据较为便捷。接着将设备列表和共享字典循环发送到进程模块内,实现循环调用进程模块的效果,进而启动多进程以对所有交换机设备进行状态查询操作。最后在多进程启动的前提下,将设备列表中每一台交换机的设备信息存储为字典格式,通过每台交换机字典格式的设备信息和预置的交换机命令列表循环调用预置的设备连接方法(连接交换机设备的方法),使得服务器与对应的交换机进行连接,得到每台交换机对应的连接状态,从而方便后续根据连接状态确定各个交换机的设备状态信息。
可选的,所述设备状态信息包括设备在线信息或设备离线信息,所述根据各所述交换机的连接状态,确定各所述交换机的设备状态信息,并将各所述交换机的设备状态信息发送至预置的消息服务器,包括:
若所述连接状态为连接过程中不存在报错,则向预置的消息服务器发送status值为0的设备在线信息;
若所述连接状态为连接过程中存在报错,则向预置的消息服务器发送status值为1的设备离线信息。
通过采用上述技术方案,循环调用设备连接方法,获取到与骨干网中每一台交换机的连接状态后,如果服务器在连接过程中捕获到连接报错信息,即连接交换机过程中出现异常报错,说明连接不到交换机设备,进而说明此交换机设备处于离线状态,那么向消息服务器发送status值为1的设备离线信息,使得在消息服务器上发布此交换机离线的信息;如果服务器在连接过程中未捕获到连接报错信息,即连接交换机过程中未出现异常,说明能连接到交换机设备,进而说明此交换机设备处于在线状态,那么像消息服务器发送status值为0的设备在线信息,使得在消息服务器上发布交换机在线的消息。从而较为及时地采集所有交换机的设备状态。
可选的,所述根据各所述交换机的连接状态,确定各所述交换机的设备状态信息,并将各所述交换机的设备状态信息发送至预置的消息服务器之后,还包括:
从预置的配置文件中读取所述消息服务器的配置信息;
根据所述配置信息与所述消息服务器建立连接,并从所述消息服务器中获取所述设备状态信息对应的设备标识,根据所述设备标识查询数据库中同一设备的记录状态信息;
将所述设备状态信息与所述记录状态信息进行对比,得到对比结果,根据所述对比结果对所述记录状态信息进行调整。
通过采用上述技术方案,所有交换机的设备状态信息发送消息服务器后,通过配置文件中的消息服务器的配置信息,与消息服务器建立连接。连接消息服务器后,从消息服务器中获取已发布的设备状态信息,进而确定此设备状态状态对应的设备标识,接着从数据库中查询此设备标识对应的交换机的记录状态信息(数据库中此交换机设备记录的状态信息)。最后,根据同一交换机的设备状态信息(最新采集的状态信息)与数据库中的记录状态信息的对比结果,对此交换机的记录状态信息进行实时更新,使得后续人员能查看到交换机的最新状态。
可选的,所述将所述设备状态信息与所述记录状态信息进行对比,得到对比结果,根据所述对比结果对所述记录状态信息进行调整,包括:
将所述设备状态信息中的status值与所述记录状态信息中的status值进行对比;
若所述设备状态信息中的status值与所述记录状态信息中的status值不一致,则将所述记录状态信息中的status值修改为所述设备状态信息中的status值;
若所述设备状态信息中的status值与所述记录状态信息中的status值一致,则保持所述记录状态信息中的status值不变。
通过采用上述技术方案,如果设备状态信息中的status值与数据库中同一交换机设备的记录状态信息中的status值不一致,说明此交换机的数据库中状态与实时采集的状态不相同,需要及时更新数据库中交换机的状态,即将记录状态信息中的status值修改为设备状态信息中的status值;如果设备状态信息中的status值与数据库中同一交换机设备的记录状态信息中的status值一致,说明此交换机的数据库中的状态与实时采集的状态相同,无需更新。从而使得运维人员及时发现交换机状态发生变化,避免交换机宕机问题出现。
可选的,所述将所述设备状态信息与所述记录状态信息进行对比,得到对比结果,根据所述对比结果对所述记录状态信息进行调整之后,包括:
将所述记录状态信息调整后的结果发送至所述消息服务器中,以使人员后续进行查看。
通过采用上述技术方案,对数据库中的记录状态信息调整后,将调整后的结果发送到消息服务器中(保存到消息服务器的日志中),从而方便后续人员通过消息服务器实时查看到数据库中各个交换机状态的更新情况。
在本申请的第二方面提供了一种基于网络交换机设备状态的采集装置,具体包括:
列表获取模块,用于获取设备列表,所述设备列表中包括骨干网中所有交换机的设备信息;
设备连接模块,用于根据所述设备列表和预置的进程模块对所述设备列表中每一台交换机进行连接,得到各所述交换机的连接状态;
状态采集模块,用于根据各所述交换机的连接状态,确定各所述交换机的设备状态信息,并将各所述交换机的设备状态信息发送至预置的消息服务器,以使所述消息服务器发布各所述交换机的设备状态信息。
通过采用上述技术方案,列表获取模块获取到骨干网中所有交换机的设备列表,接着由设备连接模块调用进程模块,启动多进程对设备列表中每一台交换机进行连接,得到与每一台交换机对应的连接状态,最后状态采集模块根据各个交换机的连接状态,确定每个交换机的设备状态信息,并将每个交换机的设备状态信息发送到消息服务器来对每个交换机的设备状态进行发布,从而实现实时监控交换机的设备状态,及时获取到所有交换机的设备状态。
综上所述,本申请包括以下至少一种有益技术效果:
获取到包括骨干网中所有交换机的设备信息的设备列表后,采用预置的进程模块启动多进程,接着以多进程的方式对设备列表里每一台交换机进行连接操作,连接过程中如果没有出现异常,则说明交换机的设备状态信息为在线状态,将对应的设备状态信息发送至消息服务器进行发布;连接过程中如果出现异常,则说明交换机的设备状态信息为离线状态,同样将对应的设备状态信息发送至消息服务器进行发布,从而自动及时地采集骨干网中所有交换机的设备状态信息,进而可以在交换机出现问题时,人工及时找到问题所在。
附图说明
图1是本申请实施例提供的一种基于网络交换机设备状态的采集方法的流程示意图;
图2是本申请实施例提供的另一种基于网络交换机设备状态的采集方法的流程示意图;
图3是本申请实施例提供的又一种基于网络交换机设备状态的采集方法的流程示意图;
图4是本申请实施例提供的一种基于网络交换机设备状态的采集装置的结构示意图;
图5是本申请实施例提供的另一种基于网络交换机设备状态的采集装置的结构示意图。
附图标记说明:11、列表获取模块;12、设备连接模块;13、状态采集模块。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。
在本申请实施例的描述中,“示性的”、“例如”或者“举例来说”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示性的”、“例如”或者“举例来说”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示性的”、“例如”或者“举例来说”等词旨在以具体方式呈现相关概念。
在本申请实施例的描述中,术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,单独存在B,同时存在A和B这三种情况。另外,除非另有说明,术语“多个”的含义是指两个或两个以上。例如,多个系统是指两个或两个以上的系统,多个屏幕终端是指两个或两个以上的屏幕终端。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
参见图1,本申请实施例公开了一种基于网络交换机设备状态的采集方法的流程示意图,可依赖于计算机程序实现,也可运行于基于冯诺依曼体系的基于网络交换机设备状态的采集装置上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行,具体包括:
S101:获取设备列表,设备列表中包括骨干网中所有交换机的设备信息。
具体的,骨干网(Backbone Network)是用来连接多个区域或地区的高速网络。每个骨干网中至少有一个和其他骨干网进行互联互通的连接点。不同的网络供应商都拥有自己的骨干网,用以连接其位于不同区域的网络。其中,骨干网中包括多个交换机。骨干网中所有交换机的设备信息指的是交换机的设备标识、登录信息和端口信息等。端口信息即交换机的端口类型,端口类型包括Access类型、Trunk类型和Hybrid类型。Access类型的端口一般用于连接计算机的端口;Trunk类型的端口一般用于交换机之间连接的端口;Hybrid类型的端口可以用于交换机之间连接,也可以用于连接用户的计算机。登录信息为用户登录的用户名和密码。设备标识为交换机的设备IP(IP地址),每一个交换机中设备IP均不同。
获取设备列表,即获取包括骨干网中所有交换机的设备信息的设备列表的方式为:通过应用程序编程接口(Application Programming Interface,API)调用预置的设备列表获取方法,获取所有交换机的设备信息。需要的说明的是,预置的设备列表获取方法为python脚本,自动获取包括所有交换机的设备信息的设备列表。例如,可以通过python写的框架tratto来批量执行获取设备列表的命令。在其他实施例中,也可以通过REST(Representational StateTransfer) API获取包括所有交换机的设备信息的设备列表。此均为现有技术,在此不再赘述。
S102:根据设备列表和预置的进程模块对设备列表中每一台交换机进行连接,得到各交换机的连接状态。
具体的,进程(Process)模块为一个正在执行的程序,包括程序计数器。寄存器和变量的当前值。连接状态为连接报错或连接未报错。获取到设备列表后,通过API接口循环调用进程模块,从而创建并启动多个新的进程,使得服务器能以多进程的方式循环对设备列表中每一台交换机进行连接,其中,对每一台交换机进行连接方式为:通过API接口循环调用预置的设备连接方法,预置的设备连接方法为python脚本,python脚本能自动执行连接交换机的命令,以定时自动轮询的方式,例如,间隔预设时长执行一次连接交换机的命令。再例如,骨干网中所有交换机都已经连接一遍,仍然会进行定时自动轮询,对所有交换机再进行连接,从而能不间断的轮询连接交换机,确定交换机的状态。
连接每一台交换机的过程中,如果服务器接收到连接报错信息,此交换机的连接状态为不存在报错,说明能正常连接上交换机;如果服务器没有接收到连接报错信息,此交换机的连接状态为存在报错,说明不能正常连接上交换机。
S103:根据各交换机的连接状态,确定各交换机的设备状态信息,并将各交换机的设备状态信息发送至预置的消息服务器,以使消息服务器发布各交换机的设备状态信息。
具体的,确定各个交换机的连接状态后,根据每个交换机的连接状态分析确定每个交换机的设备状态信息。如果交换机的连接状态为不存在报错,那么确定交换机可以正常连接,交换机为设备在线状态,进一步将接口中status返回0,即status值为0,将status值为0确定为对应的设备状态信息,将此设备状态信息发送到预置的消息服务器;如果交换机的连接状态为存在报错,那么确定交换机不能正常连接,交换机为设备离线状态,进一步将接口中status返回1,即status值为1,将status值为1确定为对应的设备状态信息,将此设备状态信息发送到预置的消息服务器。需要说明的是,消息服务器采用的是MQTT(Message Queuing Telemetry Transport,)服务器。MQTT服务器也称MQTT消息服务器,它可以是运行了MQTT消息服务器软件的一台服务器或一个服务器集群。负责接收来自客户端的网络连接,并处理客户端的订阅/取消订阅(Subscribe/Unsubscribe)、消息发布(Publish)请求,同时也会将客户端发布的消息转发给其他订阅者。另外,交换机的设备状态信息是以MQTT消息的方式发送给消息服务器。
参见图2,本申请实施例公开了另一种基于网络交换机设备状态的采集方法的流程示意图,可依赖于计算机程序实现,也可运行于基于冯诺依曼体系的基于网络交换机设备状态的采集装置上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行,具体包括:
S201:从预置的配置文件中读取API接口地址。
S202:通过API接口地址,调用预置的设备列表获取方法。
S203:在调用后,对API接口地址的接口信息进行解析,获取到包括骨干网中所有交换机的设备信息的设备列表。
具体的,可参见步骤S101,在此做进一步地补充。服务器阈值的配置文件中存储着API接口地址,服务器从配置文件中读取API接口地址,并根据对应的接口文档的要求进行调用请求,其中,接口文档又称为API文档,一般是由开发人员所编写的,用来描述系统所提供接口信息的文档。开发人员根据这个接口文档进行开发,并需要一直维护和遵守。接着通过此API接口调用预置的设备列表获取方法,自动批量的对所有交换机的设备信息进行获取,接口信息中会包含各个交换机的返回数据,对这些返回数据进行解析,即可以得到所有交换机的设备列表。
S204:生成共享字典,共享字典用于供多个进程共享数据。
S205:将设备列表和共享字典发送至预置的进程模块,以启动多个进程。
具体的,共享字典(shared dict)是基于NGINX共享内存区的Lua字典对象,它可以跨多个进程来存取数据,多个进程可以同时访问,包括读取和写入,即不用进程之间可以共享同一字段的数据,从而减少对数据库的访问,减少数据库的压力。
生成共享字典的方式为:通过python来生成,具体是利用python中内置的dict函数和zip函数来生成共享字段,此为现有技术,在此不再赘述。
生成共享字典后,循环调用预置的进程模块所需要的参数传递,即target,args参数,具体通过main函数传递target,args参数给子线程,arget指定这个线程将来到哪个函数执行代码,args指定将来调用函数时传递什么数据过去。最终将设备列表和共享字典传递给进程模块,进程模块基于设备列表和共享字典创建并启动多个进程。
S206:将设备列表中的每一台交换机的设备信息循环存储为字典格式,得到多个字典格式的设备信息。
具体的,多个进程启动后,通过python中的NumPy将设备列表中的每一台交换机的设备信息分别存储为字典格式,得到多个字典格式设备信息。其中,NumPy(NumericalPython)是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,可以理解为用于将数据保存为字典格式的工具函数。
S207:基于每个字典格式的设备信息和预置的交换机命令列表,循环调用预置的设备连接方法,以连接对应的交换机,得到交换机的连接状态。
具体的,得到多个字典格式的设备信息后,将每个字典格式的设备信息和预置的交换机命令列表组成的两个参数发送给预置的设备连接方法,从而针对每个字典格式的设备信息对应的交换机都进行调用设备连接方法,从而对每个字典格式的设备信息对应的交换机进行连接。需要说明的是,预置的交换机命令列表为连接交换机中会用到的交换机命令组成的列表,交换机命令为计算机语言,用于控制交换机的语言。交换机命令列表包括Switch命令,vlan命令等。
S208:若连接状态为连接过程中不存在报错,则向预置的消息服务器发送status值为0的设备在线信息。
S209:若连接状态为连接过程中存在报错,则向预置的消息服务器发送status值为1的设备离线信息。
具体的,可参考步骤S103,在此做进一步补充。status值在数据结构中的意思是返回状态值,在本申请实施例中表示的为交换机的状态信息。通过API接口调用设备连接方法对每台交换机进行连接过程中,如果没有出现报错,那么API接口会收到交换机返回的数据,即status返回0(返回状态码为0),交换机可以连接,说明交换机是设备在线状态。最终将status值为0(设备状态信息)以MQTT消息的方式发送至消息服务器进行发布;如果出现报错,那么那么API接口会收到交换机返回的数据,即status返回1,交换机不能连接,说明交换机是设备离线状态。最终将status值为1以MQTT消息的方式发送至消息服务器进行发布。需要说明的是,设备状态消息包括设备在线消息或设备离线消息。另外,每一条发送至消息服务器的设备状态消息都携带有对应的交换机的设备标识(设备IP)。
参见图3,本申请实施例公开了又一种基于网络交换机设备状态的采集方法的流程示意图,可依赖于计算机程序实现,也可运行于基于冯诺依曼体系的基于网络交换机设备状态的采集装置上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行,具体包括:
S301:获取设备列表,设备列表中包括骨干网中所有交换机的设备信息。
S302:根据设备列表和预置的进程模块对设备列表中每一台交换机进行连接,得到各交换机的连接状态。
S303:根据各交换机的连接状态,确定各交换机的设备状态信息,并将各交换机的设备状态信息发送至预置的消息服务器,以使消息服务器发布各交换机的设备状态信息。
具体的,可参考步骤S101-S103,在此不再赘述。
S304:从预置的配置文件中读取消息服务器的配置信息。
S305:根据配置信息与消息服务器建立连接,并从消息服务器中获取设备状态信息对应的设备标识,根据设备标识查询数据库中同一设备的记录状态信息。
具体的,消息服务器为MQTT服务器。配置信息包括消息服务器的IP地址,从配置文件中获取到消息服务器的IP地址后,通过IP地址和Python自带MQTT模块,实现与消息服务器建立连接。其中,MQTT模块是一个轻量级的通讯模块,通过发布与订阅的方式,实现了信息的传输。接着从消息服务器中已发布的设备状态信息中提取对应的设备标识(设备IP),最后根据交换机的设备IP在数据库中查询中同一设备IP对应的交换机的状态信息,即同一设备的记录状态信息。需要说明的是,记录状态信息为数据库中记录的交换机原始的状态信息,其中同样包括status值。
S306:将设备状态信息与记录状态信息进行对比,得到对比结果,根据对比结果对记录状态信息进行调整。
在一个可实现的实施方式中,将设备状态信息中的status值与记录状态信息中的status值进行对比;
若设备状态信息中的status值与记录状态信息中的status值不一致,则将记录状态信息中的status值修改为设备状态信息中的status值;
若设备状态信息中的status值与记录状态信息中的status值一致,则保持记录状态信息中的status值不变。
具体的,记录状态信息查询后,将每台交换机的记录状态信息中device表的status值,与同一交换机设备发布在消息服务器中的设备状态信息中的status值进行对比。其中,device表是存储在数据库中的支持表,用于存储有关各种捕获或呈现交换机设备的信息,device表中包含有标识交换机设备的状态的status值。如果设备状态信息中的status值与记录状态信息中的status值不一致,说明数据库中存储交换机的状态与采集的交换机的状态不相同。
例如,对于A交换机,此刻采集到并发布到消息服务器的设备状态信息中的status值为1,即A交换机处于离线状态,而数据库中记录A交换机的记录状态信息为status值为0(在线状态),两者不一致,如果不及时更新数据库中A交换机的记录状态信息,则运维人员很难及时发现A交换机其实已经出现异常,容易造成A交换机长时间的宕机。因此需要将记录状态信息中的status值修改为设备状态信息中的status值,及时更新交换机的状态。
如果备状态信息中的status值与记录状态信息中的status值一致,说明数据库中同一交换机的记录的状态与采集到的状态一致,无需进行交换机状态的更新。需要说明的是,将消息服务器中已发布的设备状态信息与数据库中同一设备的记录状态信息对比,根据对比结果实时调整记录状态信息这一过程也是定时进行轮询,保证数据库中交换机状态与交换机的实际状态始终保持同步。
在一个可实现的实施方式中,步骤S306之后,还包括:将记录状态信息调整后的结果发送至消息服务器中,以使人员后续进行查看。
具体的,记录状态信息调整后,将调整后的结果发送到消息服务器,保存在消息服务器的日志中,消息服务器为MQTT服务器。例如,调整后的结果可以为:记录状态信息中的status值修改为设备状态信息中的status值。也可以为:保持记录状态信息中的status值不变。从而使得后续方便人员查看交换机状态更新的具体情况。
本申请实施例基于网络交换机设备状态的采集方法的实施原理为:通过API接口调用预置的设备列表获取方法,获取到骨干网中所有交换机的设备列表,接着生成共享字典,将共享字典与设备列表发送至预置的进程模块,启动多进程。在多进程启动的前提下,对设备列表中每一台交换机进行连接,根据得到的连接状态确定各交换机的设备状态信息,最后将每一台交换机的设备状态信息发送至预置的消息服务器中,从而及时地对骨干网中所有交换机的状态进行采集。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参见图4为本申请实施例提供的基于网络交换机设备状态的采集装置的结构示意图。该应用于基于网络交换机设备状态的采集装置可以通过软件、硬件或者两者的结合实现成为装置的全部或一部分。该装置1包括列表获取模块11、设备连接模块12和状态采集模块13。
列表获取模块11,用于获取设备列表,设备列表中包括骨干网中所有交换机的设备信息;
设备连接模块12,用于根据设备列表和预置的进程模块对设备列表中每一台交换机进行连接,得到各交换机的连接状态;
状态采集模块13,用于根据各交换机的连接状态,确定各交换机的设备状态信息,并将各交换机的设备状态信息发送至预置的消息服务器,以使消息服务器发布各交换机的设备状态信息。
可选的,列表获取模块11,具体用于:
从预置的配置文件中读取API接口地址;
通过API接口地址,调用预置的设备列表获取方法;
在调用后,对API接口地址的接口信息进行解析,获取到包括骨干网中所有交换机的设备信息的设备列表。
可选的,设备连接模块12,具体用于:
生成共享字典,共享字典用于供多个进程共享数据;
将设备列表和共享字典发送至预置的进程模块,以启动多个进程;
将设备列表中的每一台交换机的设备信息循环存储为字典格式,得到多个字典格式的设备信息;
基于每个字典格式的设备信息和预置的交换机命令列表,循环调用预置的设备连接方法,以连接对应的交换机,得到交换机的连接状态。
可选的,状态采集模块13,具体用于:
若连接状态为连接过程中不存在报错,则向预置的消息服务器发送status值为0的设备在线信息;
若连接状态为连接过程中存在报错,则向预置的消息服务器发送status值为1的设备离线信息。
可选的,如图5所示,装置1还包括状态对比模块14,具体用于:
从预置的配置文件中读取消息服务器的配置信息;
根据配置信息与消息服务器建立连接,并从消息服务器中获取设备状态信息对应的设备标识,根据设备标识查询数据库中同一设备的记录状态信息;
将设备状态信息与记录状态信息进行对比,得到对比结果,根据对比结果对记录状态信息进行调整。
可选的,状态对比模块14,具体用于:
将设备状态信息中的status值与记录状态信息中的status值进行对比;
若设备状态信息中的status值与记录状态信息中的status值不一致,则将记录状态信息中的status值修改为设备状态信息中的status值;
若设备状态信息中的status值与记录状态信息中的status值一致,则保持记录状态信息中的status值不变。
可选的,装置1还包括结果保存模块15,具体用于:
将记录状态信息调整后的结果发送至消息服务器中,以使人员后续进行查看。
需要说明的是,上述实施例提供的一种基于网络交换机设备状态的采集装置在执行基于网络交换机设备状态的采集方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的一种基于网络交换机设备状态的采集装置与一种基于网络交换机设备状态的采集方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
本申请实施例还公开一种计算机可读存储介质,并且,计算机可读存储介质存储有计算机程序,其中,计算机程序被处理器执行时,采用了上述实施例的一种基于网络交换机设备状态的采集方法。
其中,计算机程序可以存储于计算机可读介质中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间件形式等,计算机可读介质包括能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM)、随机存取存储器(RAM)、电载波信号、电信信号以及软件分发介质等,需要说明的是,计算机可读介质包括但不限于上述元器件。
其中,通过本计算机可读存储介质,将上述实施例的一种基于网络交换机设备状态的采集方法存储于计算机可读存储介质中,并且,被加载并执行于处理器上,以方便上述方法的存储及应用。
本申请实施例还公开一种电子设备,计算机可读存储介质中存储有计算机程序,计算机程序被处理器加载并执行时,采用了上述一种基于网络交换机设备状态的采集方法。
其中,电子设备可以采用台式电脑、笔记本电脑或者云端服务器等电子设备,并且,电子设备设备包括但不限于处理器以及存储器,例如,电子设备还可以包括输入输出设备、网络接入设备以及总线等。
其中,处理器可以采用中央处理单元(CPU),当然,根据实际的使用情况,也可以采用其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,通用处理器可以采用微处理器或者任何常规的处理器等,本申请对此不做限制。
其中,存储器可以为电子设备的内部存储单元,例如,电子设备的硬盘或者内存,也可以为电子设备的外部存储设备,例如,电子设备上配备的插接式硬盘、智能存储卡(SMC)、安全数字卡(SD)或者闪存卡(FC)等,并且,存储器还可以为电子设备的内部存储单元与外部存储设备的组合,存储器用于存储计算机程序以及电子设备所需的其他程序和数据,存储器还可以用于暂时地存储已经输出或者将要输出的数据,本申请对此不做限制。
其中,通过本电子设备,将上述实施例的一种基于网络交换机设备状态的采集方法存储于电子设备的存储器中,并且,被加载并执行于电子设备的处理器上,方便使用。
以上所述者,仅为本公开的示例性实施例,不能以此限定本公开的范围。即但凡依本公开教导所作的等效变化与修饰,皆仍属本公开涵盖的范围内。本领域技术人员在考虑说明书及实践这里的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未记载的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的范围和精神由权利要求限定。
Claims (10)
1.一种基于网络交换机设备状态的采集方法,其特征在于,所述方法包括:
获取设备列表,所述设备列表中包括骨干网中所有交换机的设备信息;
根据所述设备列表和预置的进程模块对所述设备列表中每一台交换机进行连接,得到各所述交换机的连接状态;
根据各所述交换机的连接状态,确定各所述交换机的设备状态信息,并将各所述交换机的设备状态信息发送至预置的消息服务器,以使所述消息服务器发布各所述交换机的设备状态信息。
2.根据权利要求1所述的基于网络交换机设备状态的采集方法,其特征在于,所述获取设备列表,包括:
从预置的配置文件中读取API接口地址;
通过所述API接口地址,调用预置的设备列表获取方法;
在调用后,对所述API接口地址的接口信息进行解析,获取到包括骨干网中所有交换机的设备信息的设备列表。
3.根据权利要求1所述的基于网络交换机设备状态的采集方法,其特征在于,所述根据所述设备列表和预置的进程模块对所述设备列表中每一台交换机进行连接,得到各所述交换机的连接状态,包括:
生成共享字典,所述共享字典用于供多个进程共享数据;
将所述设备列表和所述共享字典发送至预置的进程模块,以启动所述多个进程;
将所述设备列表中的每一台交换机的设备信息循环存储为字典格式,得到多个字典格式的设备信息;
基于每个字典格式的设备信息和预置的交换机命令列表,循环调用预置的设备连接方法,以连接对应的交换机,得到交换机的连接状态。
4.根据权利要求1所述的基于网络交换机设备状态的采集方法,其特征在于,所述设备状态信息包括设备在线信息或设备离线信息,所述根据各所述交换机的连接状态,确定各所述交换机的设备状态信息,并将各所述交换机的设备状态信息发送至预置的消息服务器,包括:
若所述连接状态为连接过程中不存在报错,则向预置的消息服务器发送status值为0的设备在线信息;
若所述连接状态为连接过程中存在报错,则向预置的消息服务器发送status值为1的设备离线信息。
5.根据权利要求1所述的基于网络交换机设备状态的采集方法,其特征在于,所述根据各所述交换机的连接状态,确定各所述交换机的设备状态信息,并将各所述交换机的设备状态信息发送至预置的消息服务器之后,还包括:
从预置的配置文件中读取所述消息服务器的配置信息;
根据所述配置信息与所述消息服务器建立连接,并从所述消息服务器中获取所述设备状态信息对应的设备标识,根据所述设备标识查询数据库中同一设备的记录状态信息;
将所述设备状态信息与所述记录状态信息进行对比,得到对比结果,根据所述对比结果对所述记录状态信息进行调整。
6.根据权利要求5所述的基于网络交换机设备状态的采集方法,其特征在于,所述将所述设备状态信息与所述记录状态信息进行对比,得到对比结果,根据所述对比结果对所述记录状态信息进行调整,包括:
将所述设备状态信息中的status值与所述记录状态信息中的status值进行对比;
若所述设备状态信息中的status值与所述记录状态信息中的status值不一致,则将所述记录状态信息中的status值修改为所述设备状态信息中的status值;
若所述设备状态信息中的status值与所述记录状态信息中的status值一致,则保持所述记录状态信息中的status值不变。
7.根据权利要求5所述的基于网络交换机设备状态的采集方法,其特征在于,所述将所述设备状态信息与所述记录状态信息进行对比,得到对比结果,根据所述对比结果对所述记录状态信息进行调整之后,包括:
将所述记录状态信息调整后的结果发送至所述消息服务器中,以使人员后续进行查看。
8.一种基于网络交换机设备状态的采集装置,其特征在于,包括:
列表获取模块(11),用于获取设备列表,所述设备列表中包括骨干网中所有交换机的设备信息;
设备连接模块(12),用于根据所述设备列表和预置的进程模块对所述设备列表中每一台交换机进行连接,得到各所述交换机的连接状态;
状态采集模块(13),用于根据各所述交换机的连接状态,确定各所述交换机的设备状态信息,并将各所述交换机的设备状态信息发送至预置的消息服务器,以使所述消息服务器发布各所述交换机的设备状态信息。
9.一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其特征在于,所述计算机程序被处理器加载并执行时,采用了权利要求1-7中任一项所述的方法。
10.一种电子设备,包括存储器、处理器及存储在存储器中并能够在处理器上运行的计算机程序,其特征在于,所述处理器加载并执行计算机程序时,采用了权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310124484.XA CN115941632A (zh) | 2023-02-16 | 2023-02-16 | 基于网络交换机设备状态的采集方法、装置、介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310124484.XA CN115941632A (zh) | 2023-02-16 | 2023-02-16 | 基于网络交换机设备状态的采集方法、装置、介质及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115941632A true CN115941632A (zh) | 2023-04-07 |
Family
ID=86649281
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310124484.XA Pending CN115941632A (zh) | 2023-02-16 | 2023-02-16 | 基于网络交换机设备状态的采集方法、装置、介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115941632A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100179957A1 (en) * | 2009-01-09 | 2010-07-15 | Linkage Technology Group Co., Ltd. | Polling Method of Switch Status Based on Timer-triggered Scheduler of Stored Procedures |
CN109150869A (zh) * | 2018-08-14 | 2019-01-04 | 南瑞集团有限公司 | 一种交换机信息采集分析系统及方法 |
CN114157582A (zh) * | 2021-11-15 | 2022-03-08 | 苏州浪潮智能科技有限公司 | 交换机端口状态监控方法、装置和网络通信系统 |
-
2023
- 2023-02-16 CN CN202310124484.XA patent/CN115941632A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100179957A1 (en) * | 2009-01-09 | 2010-07-15 | Linkage Technology Group Co., Ltd. | Polling Method of Switch Status Based on Timer-triggered Scheduler of Stored Procedures |
CN109150869A (zh) * | 2018-08-14 | 2019-01-04 | 南瑞集团有限公司 | 一种交换机信息采集分析系统及方法 |
CN114157582A (zh) * | 2021-11-15 | 2022-03-08 | 苏州浪潮智能科技有限公司 | 交换机端口状态监控方法、装置和网络通信系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107729139B (zh) | 一种并发获取资源的方法和装置 | |
CN114741060B (zh) | 基于中台的业务系统开发方法及装置 | |
CN112905323B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN111371898B (zh) | 一种消息监听方法、装置、设备及存储介质 | |
WO2021114816A1 (zh) | 基于机器人操作系统的消息处理方法、装置及计算机设备 | |
CN112965879A (zh) | 数据处理方法、装置、电子设备及可读存储介质 | |
CN110704536A (zh) | 分布式数据处理方法、装置、系统及电子设备 | |
CN113220342A (zh) | 中心化配置方法、装置、电子设备及存储介质 | |
CN112804301B (zh) | 设备状态的确定方法、装置、网关及存储介质 | |
CN115941632A (zh) | 基于网络交换机设备状态的采集方法、装置、介质及设备 | |
CN114090268B (zh) | 容器管理方法及容器管理系统 | |
CN115883677A (zh) | 一种智能网关处理消防物联设备通信异构数据的方法 | |
CN114610413A (zh) | 基于Java的同异步任务的执行方法、装置、设备及存储介质 | |
CN115220992A (zh) | 接口变更监控方法、装置、计算机设备和存储介质 | |
CN112286918B (zh) | 数据快速接入转换的方法、装置、电子设备及存储介质 | |
CN115883639A (zh) | 一种web实时消息推送方法及装置、设备、存储介质 | |
CN111901561B (zh) | 监控系统中的视频数据处理方法、装置、系统及存储介质 | |
CN109034768B (zh) | 财务调拨方法、装置、计算机设备和存储介质 | |
CN111880949A (zh) | 一种业务信息的处理方法、系统、装置、服务器及终端 | |
CN113079055A (zh) | 一种agv运行数据的动态采集方法和装置 | |
CN114884844B (zh) | 流量录制方法及系统 | |
CN116244099B (zh) | 嵌入式系统内进程通讯方法、装置、电子设备和存储介质 | |
CN116820430B (zh) | 异步读写方法、装置、计算机设备及存储介质 | |
CN115632961A (zh) | 一种设备状态上报方法、装置及服务器 | |
CN111695148A (zh) | 一种网络节点自学习的安全过滤方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20230407 |
|
RJ01 | Rejection of invention patent application after publication |