数据采集方法、数据采集器和系统的制作方法

文档序号:7985118阅读:234来源:国知局
数据采集方法、数据采集器和系统的制作方法
【专利摘要】本发明公开了一种数据采集方法、数据采集器和系统。其中,数据采集方法包括:采集器接收来自服务器的采集启动命令;采集器在接收到采集启动命令后对目标设备进行数据采集,得到目标数据;采集器对目标数据进行预处理,得到反馈数据;以及采集器将反馈数据反馈至服务器进行存储。通过本发明,解决了现有技术中数据采集方法容易造成网络服务器稳定性下降的问题,进而达到了提高服务器稳定性的效果。
【专利说明】数据采集方法、数据采集器和系统
【技术领域】
[0001]本发明涉及数据处理领域,具体而言,涉及一种数据采集方法、数据采集器和系统。
【背景技术】
[0002]现有技术中服务器Server对来自各个采集器Collector的采集数据一般采用轮询控制的方式进行处理及存储,如图1所示,服务器在轮询控制方式下对采集数据进行缓存处理后将数据存入DB数据库中,这种采集模型实现简单,在少量采集数据的情况下该模型是可用的,但是在该模型中服务器承载了采集调度、DB数据库存储调度以及未拥塞数据的简单缓存,所以此种采集模型对服务器的要求很高,在现网环境中是存在严重的性能瓶颈的,会导致如下几个方面的性能拥塞:
[0003]UServer的资源是有限的,轮询控制会使用Server的线程CPU和内存资源,这会导致Server线程、CPU、内存等资源相对紧张的时候会出现Server处理的性能瓶颈,增大服务器的数据处理压力,降低服务器稳定性。
[0004]2、由于现有的数据采集模型中Server与Collector是一对多的关系,Collector在取得数据之后如果不做任何处理直接返回给Server,由Server负责原始数据到对象数据的转换,这种架构不对等的数据采集模型使得Collector的多个处理核心没有充分利用,而Server的这个处理核心负担特别大,当Collector足够多的时候Server的这个I个处理核心是无法负担的,同样造成数据采集模型存在潜在的性能瓶颈,增大服务器的数据处理压力,降低服务器稳定性。
[0005]3、DB数据库的存储是一个慢速过程,如果Collector返回数据的时机处理不好,例如Server没有处理好发起采集的时间点,导致Collector返回数据过于集中,而Server又不能将大量的数据存放到DB数据库之中,这样就会导致这些返回数据在Server的缓存队列中发生拥塞,极端情况下会用光Server有限的内存资源,导致Server的崩溃。
[0006]4、现有的数据采集模型中服务器中的其他数据处理模块同样会来争抢Server的系统资源,这种情况会更加增大服务器的处理压力。
[0007]针对相关技术中数据采集方法容易造成网络服务器稳定性下降的问题,目前尚未提出有效的解决方案。

【发明内容】

[0008]本发明的主要目的在于提供一种数据采集方法、数据采集器和系统,以解决现有技术中数据采集方法容易造成网络服务器稳定性下降的问题。
[0009]为了实现上述目的,根据本发明的一个方面,提供了一种数据采集方法,包括:采集器接收来自服务器的采集启动命令;采集器在接收到采集启动命令后对目标设备进行数据采集,得到目标数据;采集器对目标数据进行预处理,得到反馈数据;以及采集器将反馈数据反馈至服务器进行存储。[0010]进一步地,采集器包括多个采集器,采集器将反馈数据反馈至服务器进行存储包括:第一采集器发送线程请求指令至服务器,其中,服务器通过不同的数据传输线程接收来自多个采集器的反馈数据,服务器还用于在接收到线程请求指令后反馈空闲数据传输线程至第一采集器,第一采集器为多个采集器中的任一采集器;以及第一采集器通过第一数据传输线程将第一反馈数据发送至服务器进行存储,其中,第一反馈数据为第一采集器对采集到的目标数据进行预处理后得到的反馈数据,第一数据传输线程为服务器反馈的空闲数据传输线程。
[0011]进一步地,在第一采集器通过第一数据传输线程将第一反馈数据发送至服务器之后,数据采集方法还包括:服务器通过第一数据传输线程接收第一反馈数据;以及服务器通过第一 DB通道将第一反馈数据存储至数据库,其中,服务器还用于通过不同的DB通道将第一反馈数据存储至数据库,第一 DB通道为与第一数据传输线程相对应的DB通道。
[0012]进一步地,在第一采集器发送线程请求指令至服务器之前,数据采集方法还包括:比较各个采集器的反馈数据的优先级;以及确定各个采集器发送线程请求指令的顺序与比较出的优先级顺序相对应。
[0013]进一步地,通过比较各个采集器的目标数据的COS标记来比较反馈数据的优先级。
[0014]进一步地,采集器包括多个采集器,在采集器接收来自服务器的采集启动命令之后,并且在采集器对目标设备进行数据采集之前,数据采集方法还包括:第一采集器启动第一调度线程,其中,第一采集器为多个采集器中的任一采集器;以及在第一调度线程进行数据采集时,从采集线程池中获取采集线程资源,其中,采集线程池为池化后的SNMP采集线程资源,其中,在获取到采集线程资源之后对目标设备进行数据采集。
[0015]进一步地,预处理包括以下处理方式中的任意一种或多种:差量运算、百分比运算和总量运算。
[0016]进一步地,数据采集方法还包括:采集器接收来自服务器的参数修改命令;以及采集器在当前数据采集结束后按照参数修改命令更新采集参数。
[0017]为了实现上述目的,根据本发明的另一方面,提供了一种数据采集器,包括:接收单元,用于接收来自服务器的采集启动命令;采集单元,用于在接收到采集启动命令后对目标设备进行数据采集,得到目标数据;处理单元,用于对目标数据进行预处理,得到反馈数据;以及反馈单元,用于将反馈数据反馈至服务器进行存储。
[0018]为了实现上述目的,根据本发明的另一方面,提供了一种数据采集系统,包括:月艮务器;以及本发明上述内容所提供的数据采集器。
[0019]通过本发明,采用采集器接收来自服务器的采集启动命令;采集器在接收到采集启动命令后对目标设备进行数据采集,得到目标数据;采集器对目标数据进行预处理,得到反馈数据;以及采集器将反馈数据反馈至服务器进行存储。通过在接收到服务器发起的采集启动命令后,由采集器对目标设备进行数据采集,并对采集到的目标数据进行预处理后再反馈给服务器,此种通过采集器对目标数据进行预处理的方式,直接使用了采集器的处理核心,避免占用服务器Server的线程CPU和内存资源,降低了服务器的数据处理压力,解决了现有技术中数据采集方法容易造成网络服务器稳定性下降的问题,进而达到了提高服务器稳定性的效果。【专利附图】

【附图说明】
[0020]构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0021]图1是根据相关技术的数据采集系统的示意图;
[0022]图2是根据本发明实施例的数据采集方法的流程图;
[0023]图3是采用本发明实施例的数据采集方法进行数据保存的示意图;
[0024]图4是根据本发明实施例的数据采集器的示意图;以及
[0025]图5是根据本发明实施例的数据采集系统的示意图。
【具体实施方式】
[0026]需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
[0027]本发明实施例提供了一种数据采集方法,以下对本发明实施例所提供的数据采集方法进行具体介绍:
[0028]图2是根据本发明实施例的数据采集方法的流程图,如图2所示,该方法包括如下的步骤S202至步骤S208:
[0029]S202:采集器接收来自服务器的采集启动命令,即,在采集调度工作启动时,由服务器Server向采集器Collector发送采集调度启动命令。
[0030]S204:采集器在接收到采集启动命令后对目标设备进行数据采集,得到目标数据;具体地,采集器在接收到采集启动命令后,启动一个不退出的调度线程,由该调度线程负责监视采集状态,并根据采集启动命令中的采集参数来发起具体的采集工作。
[0031]S206:采集器对目标数据进行预处理,得到反馈数据,其中,对于不同性质属性的目标数据所采用的具体预处理方法可以不相同。
[0032]S208:采集器将反馈数据反馈至服务器进行存储。
[0033]本发明实施例的数据采集方法通过在服务器发起的采集启动命令后,由采集器对目标设备进行数据采集,并对采集到的目标数据进行预处理后再反馈给服务器,此种通过采集器对目标数据进行预处理的方式,直接使用了采集器的处理核心,避免占用服务器Server的线程CPU和内存资源,降低了服务器的数据处理压力,解决了现有技术中数据采集方法容易造成网络服务器稳定性下降的问题,进而达到了提高服务器稳定性的效果。
[0034]进一步地,在由服务器和采集器构成的数据采集系统中,一般情况下一台服务器对应着多台采集器,其中,每一台采集器对其所监控目标设备的采集方法均与本发明上述实施例所提供的采集方法相同。以下以两台采集器(第一采集器和第二采集器)为例更进一步地详细介绍本发明实施例的数据采集方法:
[0035]具体地,当服务器下发采集调度启动命令至第一采集器和第二采集器后,第一采集器和第二采集器均会启动一个不退出的调度线程,所谓不退出的调度线程是为了监控采集器的采集状态,并在采集调度启动命令中所包括的采集参数达到采集时刻时,调度线程会发起采集过程,以第一采集器为例,第一采集器接收到采集启动命令后启动第一调度线程,当第一调度线程需要进行数据采集时,从采集线程池中获取采集线程资源,所谓采集线程资源是指池化后的简单网络管理协议(Simple NetworkManagement Protocol,简称SNMP)采集线程资源,正是由于网络资源是有限的,所以当多个采集器的调度线程同时发起数据采集时,或造成同时发起的SNMP请求过多,导致网络拥塞,所以需要对采集器Collector端的网络访问资源进行限制,采取的方式是将采集线程资源进行池化,每一个采集线程对网络的访问是可控的,基本保障了 Collector的网络访问量。当第一调度线程需要发起一次新的采集的时候,首先去采集线程池中申请采集线程资源,如果池中已经没有剩余资源的时,则发起数据采集的调度线程及该线程对应的采集器就需要等待,如果线程池中有资源,则第一采集器在获取到采集线程资源之后对目标设备进行数据采集。当然,当第一调度线程完成其数据采集过程时,则需要将获取到的采集线程资源放回采集线程池内,这个时候第二调度线程(假设当第二采集器接收到采集启动命令后启动第二调度线程后,在第二调度线程进行数据采集请求时需要进行等到)就能获取还给池中的采集线程资源,从而发起一个新的采集过程。
[0036]在各个采集器完成各自对目标设备的采集和对数据的预处理之后,在将反馈数据反馈至服务器的过程中还包括向服务器请求数据传输线程的过程,具体地,仍然以第一采集器为例,当第一采集器完成数据预处理得到第一反馈数据后,第一采集器首先会发送线程请求指令至服务器,服务器在接收到线程请求指令后将空闲的数据传输线程的PID信息发送至第一采集器,第一采集器得到反馈过来信息后即得到数据传输线程,最后通过这个数据传输线程将第一反馈数据发送至服务器中进行存储;而对于服务器这一侧,由于在进行数据存储时为避免DB数据库连接冲突导致向DB数据库传输数据的现成发生拥塞,服务器Server端将DB数据库的存储通道线程池,在进行数据存储时,合理的调整通道个数和DB连接池个数,做到一个通道一个DB连接池,每一个投递过来的消息都能有一套线程和DB连接来独立处理。所以,当服务器通过某个数据传输线程接收到反馈数据后,会通过与这个数据传输线程相对应的DB通道将反馈数据存储至DB数据库,其中,采集器与服务器之间的进行数据存储的通讯示意图在图3中示出。
[0037]进一步地,当各个采集器均向服务器反馈反馈数据时,此时各个采集器之间会进行一个数据优先级的比较,然后按照比较出的优先级顺序确定优先级高的数据对应的采集器先向服务器发送线程请求指令,最后在轮到优先级低的数据对应的采集器向服务器发送线程请求指令。其中,可以通过比较各个采集器的目标数据的Cos标记来比较反馈数据的优先级,Cos标记主要解决的是实时性能采集和历史性能采集,各个性能指标对采集实时要求不同带来的管理需求。例如实时性能采集要求需要实时处理,拥有较高的投递优先级,在发生拥塞的时候不会影响到用户实时查看的页面的流畅程度。而历史性能只会做后台处理,展现给用户的页面效果不是实时变化的,在发生拥塞的时候稍微等等也不会带来不好的用户体验,所以可以给历史性能打上较低的优先级。例如CPU利用率和并发数类型的采集指标,变化较快,必须拥有较快的处理速度,可以打上较高的优先级标签,而网络传输速率这样一些值,统计时间长点或者短点,并不影响最后的分析结果,查看历史性能的时候多一个点少一个点关系不大,而后期处理还是可以补上的,这样的数据就可以打上较低的优先级标签。Collector会根据优先级标签将原始数据归纳到不同的处理队列中,在Server返回的状态为有空闲的时候,优先投递优先级高的队列中堆积的原始数据。
[0038]进一步地,在对目标数据进行预处理时,由于不同的性能值有不同的特征,对每种数据类型需要执行不同的运算规则,在本发明实施例所提供的数据采集方法中,对目标数据的预处理方式包括:
[0039]1、差量运算:在处理例如速率、包数等数据的时候设备侧通常是使用一个计数器来统计一个累积量,性能采集过程中这种累计量本身是没有意义的,它需要和上一次采集到的计数器值进行一个差值运算才能运算出这两次采集之间有多少流量或包数。这样的运算过程是需要进行数据缓存的。Collector支持上一轮采集数据的缓存,只需要指定采集指标的类型为差量,就可以通过Collector自己预处理成为两次差量的数据,避免在Server端通过频繁的DB操作才能运算出需要的值。
[0040]2、百分比运算:在处理CPU、内存利用率等最后需要形成百分比值的性能数据时,需要对采集到的多个值进行多次算术运算才能有意义。Collector支持在同一轮采集中的多个采集值进行组合运算,从而计算出一个百分比值。避免Server端通过DB操作才能运算出需要的值。
[0041]3、总量运算:有些性能指标需要进行网管侧加和统计,例如并发数统计。这就需要将之前一段时间内的数据进行加和运算,这样的运算过程也是需要进行数据缓存,Collector支持保持一个计数器,只需要指定采集指标类型是总量运算,就可以使用这个计数器进行累加运算,避免在Server端通过频繁的DB操作才能运算出需要的值。
[0042]由于数据存入DB数据库中时,磁盘存储的吞吐量与搭建整个系统的硬件结构有关,而提供这个磁盘存储吞吐量的成本是非常高的,在成本控制要求很高的前提下,磁盘存储的吞吐量实际上是比较固定的与选用的硬件总线类型是直接相关的,肯定是很难赶上服务器以及采集器的CPU和内存的处理速度。这就导致了一个不均衡,CPU处理很快,处理完了很多原始数据,但是一直在等待磁盘的10,导致处理完的原始数据存不进DB,导致了内存的堆积,当这个过程持续时间较长,堆积数据过多的时候就带来了系统的不稳定因素。本发明实施例的数据采集方法通过对采集到的数据进行预处理,并通过优先级排序依次上传给服务器,实现了既不会减慢磁盘存储的速度,又可以避免大量数据都拥堵上DB存储通道上。其中,未采用本发明实施 例的数据采集方法时数据采集系统中各组成单元的处理速度的顺序如表1所示,采用本发明实施例的数据采集方法时各单元的处理速度的顺序如表2所示:
[0043]表1
【权利要求】
1.一种数据采集方法,其特征在于,包括: 采集器接收来自服务器的采集启动命令; 所述采集器在接收到所述采集启动命令后对目标设备进行数据采集,得到目标数据; 所述采集器对所述目标数据进行预处理,得到反馈数据;以及 所述采集器将所述反馈数据反馈至所述服务器进行存储。
2.根据权利要求1所述的数据采集方法,其特征在于,所述采集器包括多个采集器,所述采集器将所述反馈数据反馈至所述服务器进行存储包括: 第一采集器发送线程请求指令至所述服务器,其中,所述服务器通过不同的数据传输线程接收来自所述多个采集器的反馈数据,所述服务器还用于在接收到所述线程请求指令后反馈空闲数据传输线程至所述第一采集器,所述第一采集器为所述多个采集器中的任一采集器;以及 所述第一采集器通过第一数据传输线程将第一反馈数据发送至所述服务器进行存储,其中,所述第一反馈数据为所述第一采集器对采集到的目标数据进行预处理后得到的反馈数据,所述第一数据传输线程为所述服务器反馈的空闲数据传输线程。
3.根据权利要求2所述的数据采集方法,其特征在于,在所述第一采集器通过第一数据传输线程将第一反馈数据发送至所述服务器之后,所述数据采集方法还包括: 所述服务器通过所述第一数据传输线程接收所述第一反馈数据;以及 所述服务器通过第一 DB通道将所述第一反馈数据存储至所述数据库,其中,所述服务器还用于通过不同的DB通道将所述第一反馈数据存储至所述数据库,所述第一 DB通道为与所述第一数据传输线程相对应的DB通道。
4.根据权利要求2所述的数据采集方法,其特征在于,在所述第一采集器发送线程请求指令至所述服务器之前,所述数据采集方法还包括: 比较各个采集器的反馈数据的优先级;以及 确定所述各个采集器发送所述线程请求指令的顺序与比较出的优先级顺序相对应。
5.根据权利要求4所述的数据采集方法,其特征在于,通过比较所述各个采集器的目标数据的COS标记来比较所述反馈数据的优先级。
6.根据权利要求1所述的数据采集方法,其特征在于,所述采集器包括多个采集器,在所述采集器接收来自所述服务器的采集启动命令之后,并且在所述采集器对目标设备进行数据采集之前,所述数据采集方法还包括: 第一采集器启动第一调度线程,其中,所述第一采集器为所述多个采集器中的任一采集器;以及 在所述第一调度线程进行数据采集时,从采集线程池中获取采集线程资源,其中,所述采集线程池为池化后的SNMP采集线程资源, 其中,在获取到所述采集线程资源之后对所述目标设备进行数据采集。
7.根据权利要求1所述的数据采集方法,其特征在于,所述预处理包括以下处理方式中的任意一种或多种: 差量运算、百分比运算和总量运算。
8.根据权利要求1所述的数据采集方法,其特征在于,所述数据采集方法还包括: 所述采集器接收来自所述服务器的参数修改命令;以及所述采集器在当前数据采集结束后按照所述参数修改命令更新采集参数。
9.一种数据采集器,其特征在于,包括: 接收单元,用于接收来自所述服务器的采集启动命令; 采集单元,用于在接收到所述采集启动命令后对目标设备进行数据采集,得到目标数据; 处理单元,用于对所述目标数据进行预处理,得到反馈数据;以及 反馈单元,用于将所述反馈数据反馈至所述服务器进行存储。
10.一种数据采集系统,其特征在于,包括: 服务器;以及 数据采集器,其中,所述数 据采集器为权利要求9中所述的数据采集器。
【文档编号】H04L12/861GK103795647SQ201210431036
【公开日】2014年5月14日 申请日期:2012年11月1日 优先权日:2012年11月1日
【发明者】胡江昳, 李永成 申请人:鼎点视讯科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1