CN108123820A - 一种网络设备信息采集方法和装置 - Google Patents
一种网络设备信息采集方法和装置 Download PDFInfo
- Publication number
- CN108123820A CN108123820A CN201611078131.7A CN201611078131A CN108123820A CN 108123820 A CN108123820 A CN 108123820A CN 201611078131 A CN201611078131 A CN 201611078131A CN 108123820 A CN108123820 A CN 108123820A
- Authority
- CN
- China
- Prior art keywords
- acquisition
- network equipment
- tasks
- information
- association
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/02—Standardisation; Integration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/02—Standardisation; Integration
- H04L41/0213—Standardised network management protocols, e.g. simple network management protocol [SNMP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种网络设备信息采集方法和装置,该方法包括:解析采集任务配置文件,获取一个或多个采集任务信息;当到达采集任务的采集时间点时,根据采集任务生成对应的采集协程并启动采集协程进行网络设备信息的采集,得到一次网络设备信息采集过程的采集结果;保存采集结果。本发明根据采集任务生成对应的采集协程并启动采集协程进行网络设备信息的采集,能够高并发的完成网络设备信息采集,使得通过部署较少的采集机就能完成对大量网络设备管理,节省了企业成本,并且,占用资源小、性能高,提高了网络设备信息采集效率。
Description
技术领域
本发明涉及网络设备管理技术领域,具体涉及一种网络设备信息采集方法和装置。
背景技术
简单网络管理协议(SNMP)互联网工程工作小组(IETF,Internet EngineeringTask Force)定义的简单网络管理协议(SNMP)是TCP/IP协议簇的一个应用层协议,也是一种普遍采用的网络管理协议。该协议能够支持网络管理系统,用以监测连接到网络上的设备是否有任何引起管理上关注的情况。使用SNMP协议采集被管理网络设备的信息是网络管理非常重要的一种手段,通过这种方式可以方便的获取到网络设备的配置信息和性能数据。
但是,随着网络设备的增加和待采集数据量的增加,现有采集程序(例如,使用Java语言开发的采集程序)因为资源占用高和性能差的问题,难以满足同时对上百个甚至更多网络设备的采集需求,影响企业网络设备管理业务的运行。为了解决这一问题,现有办法往往是通过增加采集机的数量,然而这种方式采集成本较高,不适合中小型企业。
由此可见,现有技术存在不能满足高并发采集需求的问题和采集成本较高的问题。
发明内容
本发明提供了一种网络设备信息采集方法和装置,以解决现有不能满足高并发采集需求的问题和采集成本较高的问题。
根据本发明的一个方面,提供了一种网络设备信息采集方法,包括:
解析采集任务配置文件,获取一个或多个采集任务信息;
当到达采集任务的采集时间点时,根据采集任务生成对应的采集协程并启动所述采集协程进行网络设备信息的采集,得到一次网络设备信息采集过程的采集结果;
保存所述采集结果。
根据本发明的另一个方面,提供了一种网络设备信息采集装置,包括:
采集任务获取单元,用于解析采集任务配置文件,获取一个或多个采集任务信息;
信息采集单元,用于当到达采集任务的采集时间点时,根据采集任务生成对应的采集协程,并启动所述采集协程进行网络设备信息的采集,得到一次网络设备信息采集过程的采集结果;
采集结果保存单元,用于保存所述采集结果。
本发明的有益效果是:本发明实施例的网络设备信息采集方案,通过解析采集任务配置文件,获取一个或多个采集任务信息,当到达采集任务的采集时间点时,根据采集任务生成对应的采集协程并启动采集协程进行信息采集,得到一次网络设备信息采集过程的采集结果;对采集结果进行保存。与现有采集方案相比,一方面,通过为每个采集任务生成对应的采集协程,由采集协程执行信息采集任务,降低了采集程序对资源的占用,提高了性能,为高并发采集网络设备的大量性能数据和配置数据提供了技术支持。另一方面,由于采用本发明实施例的采集方案能够满足高并发的采集需求,使得网管系统通过部署较少的采集机就能完成对大量网络设备的管理,减少了企业的资金投入,方便大规模推广。
附图说明
图1是本发明一个实施例的一种网络设备信息采集方法的流程示意图;
图2是本发明另一个实施例的生成采集协程的流程示意图;
图3是本发明另一个实施例的采集协程进行信息采集的流程示意图;
图4是本发明一个实施例的一种网络设备信息采集装置的结构框图。
具体实施方式
Golang(Go语言)作为近年来兴起的编程语言,其本身的特点使其兼顾了性能与开发效率,在处理并发上有着天生的优势。Go语言引入了goroutine机制,它使得并发编程变得非常简单。通过使用goroutine而不是裸用操作系统的并发机制,以及使用消息传递来共享内存而不是使用共享内存来通信,Go语言让并发编程变得更加轻盈和安全。通过在函数调用前使用关键字go,即可让该函数以goroutine方式执行。goroutine是一种比线程更加轻盈、更省资源的协程。Go语言通过系统的线程来多路派遣这些函数的执行,使得每个用go关键字执行的函数可以运行成为一个单位协程。当一个协程阻塞的时候,调度器会自动把其他协程安排到另外的线程中去执行,从而实现了程序无等待并行化运行。而且goroutine调度的开销非常小,一颗CPU调度的规模不下于每秒百万次,这使得能够创建大量的goroutine完成高并发的采集。
本发明的设计构思是:基于Go语言的特性,当网络管理系统有采集需求时,获取一个或多个采集任务信息,当到达采集任务的采集时间点时,根据采集任务生成对应的采集协程并启动采集协程进行信息采集,得到采集结果;由于采集协程的并发执行与现有采用Java语言实现网络设备信息采集的并发(即,线程之间的并发执行)相比,占用的系统资源少很多,性能更高,所以本发明的这种采集方案,能够实现对大量网络设备的高并发采集,提升运维效率,同时可大幅精简网络管理系统中部署的采集机的数量,降低企业成本。
实施例一
图1是本发明一个实施例的一种网络设备信息采集方法的流程示意图,参见图1,本实施例的网络设备信息采集方法包括如下步骤:
步骤S101,解析采集任务配置文件,获取一个或多个采集任务信息;
步骤S102,当到达采集任务的采集时间点时,根据采集任务生成对应的采集协程,并启动采集协程进行网络设备信息的采集,得到一次网络设备信息采集过程的采集结果;
步骤S103,保存采集结果。
由图1所示可知,本实施例中的网络设备信息采集方法,在获取任务信息后,对采集任务进行监测当到达采集任务的采集时间点时,根据采集任务生成对应的采集协程并启动采集协程进行网络设备信息的采集,得到一次网络设备信息采集过程的采集结果,将采集结果保存起来,供网络管理系统查询使用。由于与线程相比,采集协程更加轻盈、更省资源,所以通过使用协程完成网络设备信息采集,能够实现对大量网络设备性能数据和配置数据的高并发采集,满足企业网络管理需求,提升运维效率,也为精简网络管理系统中的采集机提供了可能,降低了企业成本。
尽管Go语言为实现高并发提供了基础,但实际应用中也会面临许多技术问题,例如,发明人发现,如果goroutine使用不当容易导致程序崩溃。以下介绍本发明为解决上述技术问题而采用的具体技术手段。
实施例二
本实施例中以SNMP网络为例来说明本发明的网络设备信息采集方法如何采集基于SNMP协议的网络设备中的信息的。这里需要说明的是,在SNMP网络中,目标网络的每个网络节点上都配置有一个管理信息库MIB(Manage Information Base);MIB包含代理进程的所以可被查询和设置的参数。MIB由对象标识符(OID)唯一指定。MIB是一个树形结构,SNMP协议消息通过遍历MIB树形目录中的节点来访问网络设备。
本实施例中,该包括如下基本步骤
步骤(一)网络设备信息采集进程通过解析本地采集任务配置文件,得到每个采集任务中待采集的网络设备的IP地址、SNMP的信息(如版本号、团体名、端口号等)、待采集的MIB数据表以及采集周期;
步骤(二)网络设备信息采集进程根据上面配置的采集任务,对每个采集任务(例如,每个网络设备的每个MIB数据表的采集对应一个采集任务)启动一个采集协程,每个采集协程并发执行,采集协程通过应用层协议(即SNMP协议)对SNMP管理信息库MIB进行访问,采集信息,例如网络节点的IP地址和接口的配置数据信息;
步骤(三)将每个采集任务对应的最新的采集结果缓存起来,提供给网管程序查询用。
优选地,上述步骤(一)中的本地采集任务配置文件中包括下列信息:待采集的网络设备的IP地址、SNMP的信息(团体名、端口号、SNMP版本)、要采集的MIB数据表(表名、待采集的字段的OID标识)、超时时长以及采集周期。
网络设备信息采集方法包括:从采集协程启动时起,对采集协程的执行时间进行累计,当累计时间超出预设时间阈值且超出时间等于采集协程对应的采集任务中设置的超时时长时,结束执行采集协程。通过设置超时时长,避免了当被采集设备的SNMP服务不可用或者性能太差时,采集协程长时间不能结束,增加被采集设备的负荷,导致采集程序的协程数目持续增长的不利后果。
上述步骤(二)中,启动多协程进行并发采集的处理逻辑如图2所示,图2是本发明另一个实施例的生成采集协程的流程示意图,参见图2,包括如下步骤:
步骤S201,解析本地采集任务配置文件;
根据实际应用需求,采集任务配置文件中可以配置采集任务,例如,配置文件设置有按设备厂商配置采集任务的配置信息,当确定使用该配置信息时,可以根据设备厂商的需求配置创建一条或多条采集任务。
步骤S202,是否配置了采集任务;是则执行步骤S203,否则结束流程;
由于本实施例中是根据具体的采集任务生成采集协程的,所以在生成采集协程之前需要判断本地采集任务配置文件中是否配置了采集任务,如果配置了采集任务执行步骤S203,如果没有配置采集任务可直接结束流程。
实际应用中一般情况下采集任务配置文件中都配置有采集任务,所以步骤S202也可省略。
在本步骤中,网络管理系统中运行的采集程序解析本地的采集任务配置文件,可得到一个或多个采集任务信息,每个采集任务信息中包括:网络设备的唯一标识信息,待采集信息的标识信息以及采集周期。
步骤S203,每个采集任务形成一个Golang结构体,得到采集任务对象;
根据步骤S201和步骤S202:解析本地采集任务配置文件得到的采集任务信息,为每个采集任务定义一个对应的Golang结构体(即采集任务结构体)对象,得到采集任务对象。本实施例中将采集任务生成对应的Golang结构体,可简化代码,使消息传递更方便。
单个任务的Golang结构体定义部分代码示意如下:
这里需要说明的是,针对每个采集任务,本实施例中以网络设备的唯一标识信息和待采集的信息的标识信息的组合作为每个采集任务的唯一标识。举例而言,本实施例中是对网络设备中MIB表的采集,所以本实施例中可以将该网络设备的IP+MIB表名作为一个采集任务的唯一标识。可以理解,每个网络设备中可存在多个MIB表,则每个网络设备可对应多个采集任务和采集任务结构体。
步骤S204,将采集任务对象添加到一个集合中,对每个采集任务依次进行如下处理。
在本步骤中,可将所有的采集任务对象放到一个集合中,然后对采集任务对象集合进行遍历,对每个采集任务依次进行如下处理。注:这里的“依次”是依照采集任务配置文件中采集任务的配置顺序,即采集任务添加到采集任务对象集合的时间顺序。
另外,本实施例中将采集任务对象添加到一个集合中也是为方便循环判断,这是由于实际应用中网络设备的性能数据的采集一般是周期性持续采集的。所以,将常用的采集任务放到一个集合中,使得采集程序可以对该集合中采集任务进行处理。
步骤S205,是否还有下一个采集任务,是则执行步骤S206,否则,暂停1秒;
需要强调的是,为了保证能够及时准确判断出每个采集任务是否到了采集时间点,本实施例中当没有下一个采集任务时,暂停1秒钟,释放对CPU的占用。另外,这里的预定暂停时间为1秒,1秒的设置只是示例性的,实际应用中可以根据配置的轮询周期设定暂停时间长度,对此不作限制。
步骤S206,该采集任务是否是第一次采集,是则执行步骤S209,否则执行步骤S207;
本步骤中判断当前的采集任务是否是第一次采集,具体的一种判断方式为,根据采集任务中的最后采集时间lastCollectTime属性的值,若lastCollectTime属性值等于0,则可确定当前采集任务是第一次采集。
另外,本实施例中对于确定为第一次采集的采集任务,直接执行步骤S209,而对于非第一次采集的采集任务执行步骤S207。
步骤S207,该采集任务是否到达了采集时间点;是则执行步骤S208,否则执行步骤S205;
在步骤S207中,判断采集任务是否到达了采集时间点。具体的,本实施例中采集任务配置文件中配置的每个采集任务都设置有采集周期属性,每个采集任务的采集周期可不同,例如,采集任务A的采集周期为15分钟,即每15分钟执行一次网络设备信息采集。那么采集程序判断系统当前的时间是否到达了该采集任务的采集时间点,当到达了采集时间点时,执行步骤S208,如果没有到达采集时间点则返回执行步骤S205判断是否还有下一个采集任务。
步骤S208,这个任务上一次的采集协程是否执行完成,是则执行步骤S209,否则执行步骤S205;
在步骤S208中,判断该采集任务上一次创建的采集协程是否执行完成;当判断结果为已执行完成时,执行步骤S209生成一个对应的采集协程。
步骤S208是本实施例的重点,在采集任务到达了采集时间点为该采集任务生成采集协程之前判断该采集任务上一次创建的采集协程是否执行完成能够有效避免协程数目积压最终导致程序崩溃,影响采集效率。
由前述可知,每个采集任务都可对应一个采集周期,每当采集任务到达采集周期对应的采集时间点时,根据本申请的一个实施例可以为该采集任务生成一个采集协程,由该采集协程执行信息采集。
但是实际应用中,发明人发现上述一个实施例中每当采集任务到达采集周期对应的采集时间点时,即为该采集任务生成一个采集协程的技术手段存在容易引发程序崩溃的缺陷。发明人经过劳动后发现:某些采集任务在一个采集周期内可能执行不完,这种情况下如果在该采集任务到达采集周期对应的采集时间点继续为该采集任务生成新的协程容易导致后续协程的积压,由于每个采集协程都需要占用系统资源,所以当协程积压数增加到一定程度时极易引发采集程序崩溃,影响信息采集业务的运行。
举例而言,现在有一采集任务:采集网络设备A的MIB表1,采集周期为每15分钟采集一次,而实际上网络设备A的表1需要30分钟才能采集完成,如果没有步骤S208的判断,在采集程序运行60分钟后,会生成四个采集协程,而这60分钟内只能完成前面两个采集协程,等于每60分钟会造成了两个采集协程的积压增加。
由此,通过对采集任务上一次创建的采集协程是否执行完成进行判断,本实施例的方法能够有效避免了采集协程的积压增加导致程序崩溃,保证采集业务的正常运行。
步骤S209,从这个采集任务对象中读取待采集网络设备的IP地址、SNMP信息和待采集的MIB表信息。
SNMP的信息具体包括团体名、端口号、SNMP版本号,待采集的MIB数据表信息具体包括表名、采集的字段的OID标识;这是由于本实施例中是基于SNMP网络进行的网络设备信息采集,而在一套完整的SNMP网络中主要包括管理信息库(MIB)、管理信息结构(SMI)及SNMP报文协议。每个SNMP设备都有自己的MIB,是MO(Managed Object管理对象)定义的集合。MIB文件是按照ASN.1定义的文本文件,每个管理对象都对应一个节点,并且用OID(Object Identifier)来标识,数据管理对象对应叶子节点,所有的管理对象形成了一棵管理树。
这里的需要说明的是,待采集网络设备的IP地址即为待采集网络设备的唯一标识信息,MIB表信息即为待采集信息的标识信息。
步骤S210,生成一个采集协程goroutine,进行MIB信息的采集;
本实施中重点介绍根据采集任务生成采集协程,有关采集协程goroutine的工作过程将在后续实施例中详细说明。
至此,流程结束。
由图2所示可知,本实施例的网络设备信息采集方法,通过解析本地的采集任务配置文件,得到采集任务,为每个采集任务定义一个golang结构体对象,将多个采集任务对应的golang结构体添加到一个集合中,对集合中的采集任务对象进行轮询,当到达该采集任务的采集时间点时能够为该采集任务生成对应的采集协程goroutine,利用采集协程goroutine进行网络设备信息的采集,基于Go语言原生支持并发的特性(并发的最小逻辑单元是goroutine),实现了网络设备信息高并发采集,并且提高了采集性能。
实施例三
在实施例二中说明了如何生成采集协程goroutine,本实施例中重点介绍采集协程的工作过程,其他内容参见本发明其他实施例。
图3是本发明另一个实施例的采集协程进行信息采集的流程示意图,这里需要说明的是,由于每个采集协程的工作过程都是相同的,不同之处在于,具体采集的内容,所以为简要起见本实施例以一个采集协程的工作过程进行说明,多个采集协程的工作过程不再赘述。
参见图3,流程开始,采集协程进行如下的处理:
步骤S301,往当前IP的缓冲channel写入一次值;
需要说明的是,channel作为协程goroutine间的一种通信机制,与操作系统的其它通信机制类似,一般有两个目的:同步或者传递消息。如果channel是无缓冲的,发送方会一直阻塞直到接收方将数据取出。如果channel带有缓冲区,发送方会一直阻塞直到数据被拷贝到缓冲区;如果缓冲区已满,则发送方只能在接收方取走数据后才能从阻塞状态恢复。
实际应用中,由于一个采集任务对应一个goroutine,则,一个网络设备对应一个channel(以网络设备的IP地址作为唯一标识,进行区分)可能对应多个goroutine。
为了限制同一个时间访问同一设备的协程数,本实施例中网络设备信息采集方法,在启动采集协程进行网络设备信息的采集时,根据对同一网络设备同时进行信息采集的采集协程的动态统计数目与预设采集协程数阈值的比较结果,设置相应采集协程的运行状态。具体的,当动态统计出的采集协程数目大于或等于预设采集协程数阈值时,将该时刻以后生成的对同一网络设备进行信息采集的采集协程的运行状态设为阻塞;当动态统计出的采集协程数目小于预设采集协程数阈值时,将该时刻以后生成的对同一网络设备进行信息采集的采集协程的运行状态设为正常。
举例而言,设备A的缓冲channel的大小为10,当第11个采集协程在开始对设备A发起SNMP采集访问前,先往设备A的缓冲channel写入一次值,此时,如果前10个采集协程没有执行完成,那么第11个协程在写入的时候就会被置为阻塞,必须等前面10个协程中有采集完成的,读取了一次数据后,第11个采集协程才能完成写入,才能进行后续的SNMP采集访问。
需要强调的是,本实施例中提出一种主动堵塞方法,例如,为每个网络设备单独设置一个带缓冲的channel,并预设缓冲channel的采集协程数阈值为10,根据对同一网络设备同时进行信息采集的采集协程的动态统计数目与预设采集协程数阈值的比较结果,设置相应采集协程的运行状态。目的就是避免对同一个网络设备同时发起太多的采集任务,因为对一些性能不佳的被采集设备而言,高并发采集会大幅降低数据的返回速度,导致每个采集任务都要耗时很长才能完成,从而导致整体采集效率的降低。
步骤S302,根据采集任务采集指定设备的指定MIB表;
本步骤中,是根据采集任务的配置信息来采集指定网络设备的指定MIB表数据;
步骤S303,是否配置了将采集结果保存成文件,是则执行步骤S304,否则执行步骤S307;
在采集完成时,本实施例的保存采集结果包括:判断采集任务配置文件中是否有将采集结果保存成文件的配置信息;如果是,则创建用于保存采集结果的文件,将采集结果写入创建的文件中并将采集结果以key-value键值对的形式缓存到map对象中;如果否,则将采集结果以key-value键值对的形式缓存到map对象中,其中,键key为网络设备的唯一标识信息与待采集信息的标识信息的组合。
也就是说,本实施例提供了两种保存采集结果的手段,满足不同的使用需求。两种采集结果保存方案的区别是:如果只将采集结果存入map,则只存了最新的一次采集结果;如果将采集结果既存入文件中又存入map中,那么由于将采集结果保存到文件,从而能够实现对历史采集结果的查询操作。
因此,在步骤S303中判断配置文件中是否配置了将采集结果保存成文件,如果是则进入步骤S304,否则进入步骤S307;
步骤S307,将本次采集结果以IP+MIB数据表名作为键值缓存到一个map对象中;
map是一种把键对象和值对象进行关联的存储结构,本实施例中,当采集协程执行后得到一个采集结果时,将采集结果作为Key-Value键值对中的值,并将IP+MIB数据表名作为键,存入一个map中,建立键-值之间的映射,供网络管理系统查询使用。
步骤S304,建立网络设备IP对应的目录;
本步骤中,建立该设备IP对应的目录,例如data/192_168_1_1/,实际应用中,如果已经存在目录时可不必重复建立。
步骤S305,在这个目录下建立保存本次采集结果的文件;
在步骤S305中建立的目录下建立用于保存本次采集结果的文件,为方便查找,优选地,文件名可为采集表名+采集时间;
步骤S306,将采集结果写入文件中,然后执行步骤S307;步骤S307执行完成之后执行步骤S308;
步骤S308,从当前IP的缓冲channel读取一次值。
流程结束。
图4是本发明一个实施例的一种网络设备信息采集装置的结构框图,参见图4,本实施例的网络设备信息采集装置400包括:
采集任务获取单元401,用于解析采集任务配置文件,获取一个或多个采集任务信息;
信息采集单元402,用于当到达采集任务的采集时间点时,根据采集任务生成对应的采集协程并启动采集协程进行网络设备信息的采集,得到一次网络设备信息采集过程的采集结果;
采集结果保存单元403,用于保存采集结果。
在本发明的一个实施例中,信息采集单元402具体用于:根据每个采集任务的最后采集时间属性,判断该采集任务是否为第一次采集,是则,根据该采集任务生成一个对应的采集协程;否则,判断该采集任务上一次创建的采集协程是否执行完成;当判断结果为已执行完成时,根据采集任务生成一个对应的采集协程。
在本发明的一个实施例中,信息采集单元402,还用于根据对同一网络设备同时进行信息采集的采集协程的动态统计数目与预设采集协程数阈值的比较结果,设置相应采集协程的运行状态。
在本发明的一个实施例中,信息采集单元402具体用于当动态统计出的采集协程数目大于或等于预设采集协程数阈值时,将该时刻以后生成的对同一网络设备进行信息采集的采集协程的运行状态设为阻塞;当动态统计出的采集协程数目小于预设采集协程数阈值时,将该时刻以后生成的对同一网络设备进行信息采集的采集协程的运行状态设为正常。
在本发明的一个实施例中,采集任务获取单元401,具体用于解析本地的采集任务配置文件,得到一个或多个采集任务信息,每个采集任务信息中包括:网络设备的唯一标识信息,待采集信息的标识信息以及采集周期。
在本发明的一个实施例中,采集结果保存单元403,具体用于判断采集任务配置文件中是否有将采集结果保存成文件的配置信息;如果是,则创建用于保存采集结果的文件,将采集结果写入创建的文件中并将采集结果以key-value键值对的形式缓存到map对象中;如果否,则将采集结果以key-value键值对的形式缓存到map对象中,其中,键key为网络设备的唯一标识信息与待采集信息的标识信息的组合。
在本发明的一个实施例中,网络设备信息采集装置400还包括:暂停单元,用于根据解析本地采集任务配置文件得到的采集任务信息,为每个采集任务定义一个对应的采集任务结构体对象,将采集任务结构体对象添加到采集任务集合中;对采集任务集合中的采集任务结构体对象进行轮询,直至为所有到达采集时间点的采集任务结构体对象生成对应的采集协程后,暂停运行预定时间。
在本发明的一个实施例中,网络设备信息采集装置400还包括:超时时长控制单元,用于从采集协程启动时起,对采集协程的执行时间进行累计,当累计时间超出预设时间阈值且超出时间等于采集协程对应的采集任务中设置的超时时长时,结束执行采集协程。
需要说明的是,本实施例的网络设备信息采集装置是和前述网络设备信息采集方法实施例中相对应的,因此,本实施例中网络设备信息采集装置各功能单元的工作过程可参见前述方法实施例的说明,这里不再赘述。
综上所述,本发明实施例的网络设备信息采集方法和装置,一方面,通过为每个采集任务生成对应的采集协程,由采集协程执行信息采集任务,减少了对系统资源的占用,提高了采集性能,为高并发采集网络设备的大量性能数据和配置数据提供了技术支持。另一方面,采用本发明实施例的采集方案能够满足高并发的采集需求,使得网管系统可部署较少的采集机完成对大量网络设备的管理,大幅精简网络管理系统中部署的采集机,降低了企业的资金投入,方便大规模推广应用。
以上所述,仅为本发明的具体实施方式,在本发明的上述教导下,本领域技术人员可以在上述实施例的基础上进行其他的改进或变形。本领域技术人员应该明白,上述的具体描述只是更好的解释本发明的目的,本发明的保护范围以权利要求的保护范围为准。
Claims (10)
1.一种网络设备信息采集方法,其特征在于,所述方法包括:
解析采集任务配置文件,获取一个或多个采集任务信息;
当到达采集任务的采集时间点时,根据采集任务生成对应的采集协程,并启动所述采集协程进行网络设备信息的采集,得到一次网络设备信息采集过程的采集结果;
保存所述采集结果。
2.根据权利要求1所述的网络设备信息采集方法,其特征在于,所述根据采集任务生成对应的采集协程包括:
根据每个采集任务的最后采集时间属性,判断该采集任务是否为第一次采集,
是则,根据该采集任务生成一个对应的采集协程;
否则,判断该采集任务上一次创建的采集协程是否执行完成,当判断结果为已执行完成时,根据采集任务生成一个对应的采集协程。
3.根据权利要求1所述的网络设备信息采集方法,其特征在于,所述启动采集协程进行网络设备信息的采集包括:
根据对同一网络设备同时进行信息采集的采集协程的动态统计数目与预设采集协程数阈值的比较结果,设置相应采集协程的运行状态,所述运行状态为正常或阻塞。
4.根据权利要求3所述的网络设备信息采集方法,其特征在于,所述根据对同一网络设备同时进行信息采集的采集协程的动态统计数目与预设采集协程数阈值的比较结果,设置相应采集协程的运行状态包括:
当动态统计出的采集协程数目大于或等于预设采集协程数阈值时,将该时刻以后生成的对同一网络设备进行信息采集的采集协程的运行状态设为阻塞;
当动态统计出的采集协程数目小于预设采集协程数阈值时,将该时刻以后生成的对同一网络设备进行信息采集的采集协程的运行状态设为正常。
5.根据权利要求1所述的网络设备信息采集方法,其特征在于,所述解析采集任务配置文件,获取一个或多个采集任务信息包括:
解析本地的采集任务配置文件,得到一个或多个采集任务信息,每个采集任务信息中包括:网络设备的唯一标识信息、待采集信息的标识信息以及采集周期。
6.根据权利要求5所述的网络设备信息采集方法,其特征在于,所述保存采集结果包括:
判断所述采集任务配置文件中是否有将采集结果保存成文件的配置信息;
如果是,则创建用于保存采集结果的文件,将采集结果写入创建的文件中并将采集结果以key-value键值对的形式缓存到map对象中;
如果否,则将采集结果以key-value键值对的形式缓存到map对象中,其中,键key为网络设备的唯一标识信息与待采集信息的标识信息的组合。
7.根据权利要求5所述的网络设备信息采集方法,其特征在于,该方法还包括:
根据解析本地采集任务配置文件得到的采集任务信息,为每个采集任务定义一个对应的采集任务结构体对象,将所述采集任务结构体对象添加到采集任务集合中;
对所述采集任务集合中的采集任务结构体对象进行轮询,直至为所有到达采集时间点的采集任务结构体对象生成对应的采集协程后,暂停运行预定时间。
8.根据权利要求1所述的网络设备信息采集方法,其特征在于,该方法还包括:
从采集协程启动时起,对采集协程的执行时间进行累计,当累计时间超出预设时间阈值且超出时间等于采集协程对应的采集任务中设置的超时时长时,结束执行采集协程。
9.一种网络设备信息采集装置,其特征在于,该装置包括:
采集任务获取单元,用于解析采集任务配置文件,获取一个或多个采集任务信息;
信息采集单元,用于当到达采集任务的采集时间点时,根据采集任务生成对应的采集协程并启动所述采集协程进行网络设备信息的采集,得到一次网络设备信息采集过程的采集结果;
采集结果保存单元,用于保存所述采集结果。
10.根据权利要求9所述的网络设备信息采集装置,其特征在于,
所述信息采集单元具体用于:根据每个采集任务的最后采集时间属性,判断该采集任务是否为第一次采集,是则,根据该采集任务生成一个对应的采集协程;否则,判断该采集任务上一次创建的采集协程是否执行完成,当判断结果为已执行完成时,根据采集任务生成一个对应的采集协程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611078131.7A CN108123820B (zh) | 2016-11-29 | 2016-11-29 | 一种网络设备信息采集方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611078131.7A CN108123820B (zh) | 2016-11-29 | 2016-11-29 | 一种网络设备信息采集方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108123820A true CN108123820A (zh) | 2018-06-05 |
CN108123820B CN108123820B (zh) | 2021-04-30 |
Family
ID=62225948
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611078131.7A Active CN108123820B (zh) | 2016-11-29 | 2016-11-29 | 一种网络设备信息采集方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108123820B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109359055A (zh) * | 2018-12-19 | 2019-02-19 | 北京东土科技股份有限公司 | 一种数据测试的方法和设备 |
CN109739549A (zh) * | 2018-12-28 | 2019-05-10 | 武汉长光科技有限公司 | 一种基于微服务的设备性能采集方法 |
CN109857626A (zh) * | 2019-01-28 | 2019-06-07 | 上海易点时空网络有限公司 | 压力测试方法及装置 |
CN110109741A (zh) * | 2019-05-09 | 2019-08-09 | 北京旷视科技有限公司 | 循环任务的管理方法、装置、电子设备及存储介质 |
CN110636116A (zh) * | 2019-08-29 | 2019-12-31 | 武汉烽火众智数字技术有限责任公司 | 一种多维数据采集的系统及方法 |
WO2020024469A1 (zh) * | 2018-07-31 | 2020-02-06 | 平安科技(深圳)有限公司 | 一种业务处理方法、调用管理系统和计算机设备 |
CN111078323A (zh) * | 2019-10-12 | 2020-04-28 | 平安科技(深圳)有限公司 | 基于协程的数据处理方法、装置、计算机设备及存储介质 |
CN111274217A (zh) * | 2020-01-10 | 2020-06-12 | 深圳前海环融联易信息科技服务有限公司 | 数据采集的方法、装置、计算机设备以及存储介质 |
CN115834713A (zh) * | 2023-02-07 | 2023-03-21 | 北京大道云行科技有限公司 | 一种网络文件系统与分布式文件系统的交互方法及系统 |
CN111078323B (zh) * | 2019-10-12 | 2024-06-28 | 平安科技(深圳)有限公司 | 基于协程的数据处理方法、装置、计算机设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5515538A (en) * | 1992-05-29 | 1996-05-07 | Sun Microsystems, Inc. | Apparatus and method for interrupt handling in a multi-threaded operating system kernel |
CN104301130A (zh) * | 2013-07-17 | 2015-01-21 | 腾讯科技(深圳)有限公司 | 监控数据采集方法和系统及任务分发服务器和采集装置 |
CN104933175A (zh) * | 2015-06-30 | 2015-09-23 | 深圳市金证科技股份有限公司 | 一种性能数据相关性的分析方法及性能监控系统 |
CN105592485A (zh) * | 2016-03-28 | 2016-05-18 | 浪潮通信信息系统有限公司 | 一种基于snmp网管协议实时采集并处理消息的方法 |
CN105760237A (zh) * | 2016-02-05 | 2016-07-13 | 南京贝伦思网络科技股份有限公司 | 一种基于协程机制的通讯方法 |
-
2016
- 2016-11-29 CN CN201611078131.7A patent/CN108123820B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5515538A (en) * | 1992-05-29 | 1996-05-07 | Sun Microsystems, Inc. | Apparatus and method for interrupt handling in a multi-threaded operating system kernel |
CN104301130A (zh) * | 2013-07-17 | 2015-01-21 | 腾讯科技(深圳)有限公司 | 监控数据采集方法和系统及任务分发服务器和采集装置 |
CN104933175A (zh) * | 2015-06-30 | 2015-09-23 | 深圳市金证科技股份有限公司 | 一种性能数据相关性的分析方法及性能监控系统 |
CN105760237A (zh) * | 2016-02-05 | 2016-07-13 | 南京贝伦思网络科技股份有限公司 | 一种基于协程机制的通讯方法 |
CN105592485A (zh) * | 2016-03-28 | 2016-05-18 | 浪潮通信信息系统有限公司 | 一种基于snmp网管协议实时采集并处理消息的方法 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020024469A1 (zh) * | 2018-07-31 | 2020-02-06 | 平安科技(深圳)有限公司 | 一种业务处理方法、调用管理系统和计算机设备 |
CN109359055A (zh) * | 2018-12-19 | 2019-02-19 | 北京东土科技股份有限公司 | 一种数据测试的方法和设备 |
CN109359055B (zh) * | 2018-12-19 | 2022-04-15 | 北京东土科技股份有限公司 | 一种数据测试的方法和设备 |
CN109739549A (zh) * | 2018-12-28 | 2019-05-10 | 武汉长光科技有限公司 | 一种基于微服务的设备性能采集方法 |
CN109857626A (zh) * | 2019-01-28 | 2019-06-07 | 上海易点时空网络有限公司 | 压力测试方法及装置 |
CN110109741A (zh) * | 2019-05-09 | 2019-08-09 | 北京旷视科技有限公司 | 循环任务的管理方法、装置、电子设备及存储介质 |
CN110109741B (zh) * | 2019-05-09 | 2021-08-27 | 北京旷视科技有限公司 | 循环任务的管理方法、装置、电子设备及存储介质 |
CN110636116A (zh) * | 2019-08-29 | 2019-12-31 | 武汉烽火众智数字技术有限责任公司 | 一种多维数据采集的系统及方法 |
CN110636116B (zh) * | 2019-08-29 | 2022-05-10 | 武汉烽火众智数字技术有限责任公司 | 一种多维数据采集的系统及方法 |
CN111078323A (zh) * | 2019-10-12 | 2020-04-28 | 平安科技(深圳)有限公司 | 基于协程的数据处理方法、装置、计算机设备及存储介质 |
CN111078323B (zh) * | 2019-10-12 | 2024-06-28 | 平安科技(深圳)有限公司 | 基于协程的数据处理方法、装置、计算机设备及存储介质 |
CN111274217A (zh) * | 2020-01-10 | 2020-06-12 | 深圳前海环融联易信息科技服务有限公司 | 数据采集的方法、装置、计算机设备以及存储介质 |
CN115834713A (zh) * | 2023-02-07 | 2023-03-21 | 北京大道云行科技有限公司 | 一种网络文件系统与分布式文件系统的交互方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN108123820B (zh) | 2021-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108123820A (zh) | 一种网络设备信息采集方法和装置 | |
US20240040006A1 (en) | Provisioning multiple network resources | |
CN103034735B (zh) | 一种大数据分布式文件导出方法 | |
CN110489391A (zh) | 一种数据处理方法及相关设备 | |
CN105408863B (zh) | 具有不同的租户集的端点数据中心 | |
CN102375837B (zh) | 数据采集系统和方法 | |
CN103559231B (zh) | 一种文件系统配额管理方法、装置及系统 | |
CN106506490B (zh) | 一种分布式计算控制方法以及分布式计算系统 | |
CN109739663A (zh) | 作业处理方法、装置、设备及计算机可读存储介质 | |
US7877695B2 (en) | Tailored object | |
CN105471635B (zh) | 一种系统日志的处理方法、装置和系统 | |
CN112685499B (zh) | 一种工作业务流的流程数据同步方法、装置及设备 | |
CN105718307B (zh) | 进程管理方法及进程管理装置 | |
CN102571420A (zh) | 一种网元数据管理方法及系统 | |
CN104199912B (zh) | 一种任务处理的方法及装置 | |
CN108881485A (zh) | 保障大数据包下的高并发系统响应时间的方法 | |
CN106104550A (zh) | 网站信息提取装置、系统、网站信息提取方法以及网站信息提取程序 | |
CN102098233B (zh) | 即时通讯软件中通讯窗口的控制方法及控制系统 | |
CN104268241A (zh) | 一种配置数据库中属性显示方法 | |
CN110096521A (zh) | 日志信息处理方法及装置 | |
US20020143667A1 (en) | Method and system for inventory management | |
CN114025000B (zh) | 网络访问关系的建立方法、装置、设备及存储介质 | |
US7437733B2 (en) | System and method for using a mobile agent object to collect data | |
WO2017219982A1 (zh) | 清除缓存的方法及装置 | |
US20130346908A1 (en) | Late instantiation of dependent objects |
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 | ||
CB02 | Change of applicant information |
Address after: Room 818, 8 / F, 34 Haidian Street, Haidian District, Beijing 100080 Applicant after: BEIJING ULTRAPOWER SOFTWARE Co.,Ltd. Address before: 100089 Beijing city Haidian District wanquanzhuang Road No. 28 Wanliu new building 6 storey block A Room 601 Applicant before: BEIJING ULTRAPOWER SOFTWARE Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |