一种基于流量统计数据的访问告警方法与流程

文档序号:11253794阅读:1086来源:国知局
一种基于流量统计数据的访问告警方法与流程

本发明涉及一种基于流量统计数据的访问告警方法,特别是涉及一种适用于大流量环境和复杂告警规则的,基于流量统计数据的访问告警方法。



背景技术:

流量统计是指分析网络中的原始数据包数据,计算各种网络指标,并按照一定规则(ip,端口、会话等等)将结果分类并合并在一起,以便后续分析。

时间桶统计是指按时间桶:持续时长为n秒,并且开始时间戳为n的整数倍的时间段称为时间桶。常用时间桶有1秒桶、1分钟桶、1小时桶、1天桶等。如1秒桶是指任意一个时长为1秒的时间段;1分钟桶是指开始时间戳为60的整数倍,并且时长为60秒的时间段;10分钟桶是指开始时间戳为600的整数倍,并且时长为600秒的时间段;其他时间桶类推。

告警规则是指网络元数据组合在一起形成的规则如:ip、端口、应用、协议等等。

黑名单为网络流量与告警规则匹配时进行告警;白名单为网络流量与告警规则不匹配进行告警。

维度是指规则中支持的网络元数据的数量,如规则中只有ip,表示为一维、规则中包括ip和端口为二维;依次类推,维度越高实现的复杂度越高、性能越低。

随着网络流量环境的迅猛增长,针对大流量的高性能的分析解决方案需求越来越迫切。当前很多号称支持大流量分析的系统都只能做一些基础的流量分析功能,对用户的作用有限。

本技术源于网络数据分析领域,在网络数据分析领域中经常需要对网络中的异常数据流量、异常统计指标进行告警。如:某ip访问某台服务器;某时间字节数大于特定阈值或者某ip发送数据包数大于特定阈值等等。但是受限于性能和复杂度这类告警在大流量环境中很少使用,即使使用也只能支持少量的简单规则,且有诸多限制。

逐条匹配:循环对规则进行一一比对,这种方式实现最简单,对规则没有过多要求,可以支持一些较为复杂的规则,但是性能极低,数量有限,对于小流量环境还勉强适用。假设有m条规则,每秒钟存在n条会话,那么需要匹配的次数就是m*n次,其时间复杂度为o(m*n)。

哈希表匹配:哈希查表操作胜在速度极高,且不受规则数量的影响(可以达到百万级规模),基本上接近到o(1)的性能,是一种在网络分析领域使用极广的算法;遗憾的是哈希表要求规则唯一,很多网络分析领域的告警规则都需要考虑范围,无法满足唯一性要求(特定情形下可以将1个范围转换为n个非范围规则,但会导致规则的规模急速上涨,内存资源无法满足)。

不少流量统计软件都有类似的访问告警功能,但其在大流量环境下表现一般都不如人意;要么是性能不足,难以支撑大流量的分析要求,要么是告警规则简单、支持数量有限,难以满足用户的使用需要。



技术实现要素:

本发明要解决的技术问题是提供一种基于流量统计数据的访问告警方法,该方法能够适用于大流量环境下,支持大量复杂规则的,高性能访问告警功能。

本发明采用的技术方案如下:一种基于流量统计数据的访问告警方法,具体方法为:网络中的数据包经过分析,按照时间桶生成各种统计数据;生成的统计数据传递给存储模块进行存储;警报模块通过存储模块获取统计数据,按照设定规则进行告警。

所述方法还包括,对设定规则进行预处理,形成一种树形结构,通过对树形结构的遍历,完成对设定规则的匹配。

对设定规则进行预处理的具体方法为:将设定规则中每一个存在交叉的维度拆分为不同的树节点,保证能够在一次遍历中得到正确的识别结果。

在系统中我们需要对“客户端ip”、“服务端ip”、“服务端port”、“应用”和“协议”等5个维度组成的规则进行流量访问告警;为了简化规则配置,可能每个维度都需要支持范围和*(地址需要支持ipv6);假定有如下规则:

如果网络中出现了规则表示的流量则进行告警。可以看出规则的构成非常复杂,在规则数量巨大的情况下,采用常规的算法进行处理,基本不现实。

充分研究了规则构成后,我们对规则进行一些预处理,形成一种简单的树形结构,这样对规则的匹配就变成了对这颗树的遍历;我们知道树的深度是有限的,就是规则的维度。

如图1所示,为第一条设定规则预处理后的结果,图2为第二条设定规则预处理后的结果。可以看到经过预处理后2条规则形成了复杂的树形结构;规则中的每一个存在交叉的维度都会被拆分成不同的树节点,保证能够在一次遍历中得到正确的识别结果。从2条规则的预处理我们可以发现规则中的维度交叉越厉害,被切分的树节点会越多,树的结构越复杂,消耗的内存也会越大,构建的时间也越长;但是无论多复杂的树,一旦构建完成,其识别的效率只与树的高度相关(维度),与树的复杂度无关。

假如有如下待匹配流量:192.168.1.3,10.2.9.9,8189,http,tcp

通过对树的遍历我们可以得上图中的虚线所示路径,最终识别出规则1匹配即说明待匹配的流量会产生访问告警。

随着现在网络中越来越多的使用ipv6协议,产生了对ipv6流量的分析处理的强列需求;我们知道ipv4可以由32位的整数表示;为了支持ipv6的规则在ipv6中以128位整数实现,以此表示ipv6。

所述方法还包括,采用双缓存机制,对于需要重新修改并进行配置的设定规则,修改后放在一个地方进行预处理,与触发任务中获取到的设定规则互不干扰;在预处理修改后的设定规则时,触发任务依然使用本地存储的配置好的内容进行告警,一旦预处理完成,触发任务获取新的配置好的设定规则,完成告警。由于所述设定规则越复杂,数量越大,则设定跪着预处理的时间也就越长,如果每次在获取配置后才进行预处理,显然会严重影响系统的性能。

所述方法还包括,设置一个定时器来定时产生触发告警任务。采用定时器来触发告警任务,以适应统计数据产生规律和降低系统的耦合性。如果在时间桶数据产生后直接触发告警任务,则源于统计数据的产生规律,系统的耦合性会比较高。在本发明中,设置一个定时器去触发,尽量和统计数据的生成分离,通过统一的查询接口获取统计数据,这样一旦需要在触发警报前对统计数据进行一些特殊处理就很方便。另外,直接触发警报这样的流程属于串行的方式,不利于性能控制,一旦触发性能不足会引起统计数据生成的性能下降,反之也是一样的。分离虽然增加了额外的统计数据获取的流程,但由于是分离的,可以独立控制,互不干扰。

所述定时器定时检查时间桶统计数据是否已经产生,如果是,则触发告警任务。

所述方法还包括,设定告警任务触发统计数据在内存中存储的最大时间或最大数据量;告警任务触发后,检查触发告警任务的统计数据是否还在内存中,如果否,则丢弃这些数据不再触发告警任务,避免性能进一步恶化(时间越久说明性能越低)。完成这一步后,紧接着需要获取告警规则的“配置”和该触发点的统计数据。

所述方法还包括,从缓存中获取对告警需要的来自于查询接口的统计数据,而非从磁盘中读取,从而进一步提高系统的处理能力。

与现有技术相比,本发明的有益效果是:能够适用于大流量环境下,支持大量复杂规则的,高性能访问告警功能。

附图说明

图1为本发明其中一设定规则预处理的原理示意图。

图2为本发明其中一设定规则预处理的原理示意图。

图3为本发明其中一实施例的流量告警功能流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

本说明书(包括摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或者具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。

具体实施例1

如图3所示,一种基于流量统计数据的访问告警方法,具体方法为:网络中的数据包经过分析,按照时间桶生成各种统计数据;生成的统计数据传递给存储模块进行存储;警报模块通过存储模块获取统计数据,按照设定规则进行告警。

具体实施例2

在具体实施例1的基础上,所述方法还包括,对设定规则进行预处理,形成一种树形结构,通过对树形结构的遍历,完成对设定规则的匹配。

具体实施例3

在具体实施例2的基础上,对设定规则进行预处理的具体方法为:将设定规则中每一个存在交叉的维度拆分为不同的树节点,保证能够在一次遍历中得到正确的识别结果。

具体实施例4

在具体实施例1到3之一的基础上,所述方法还包括,采用双缓存机制,对于需要重新修改并进行配置的设定规则,修改后放在一个地方进行预处理,与触发任务中获取到的设定规则互不干扰;在预处理修改后的设定规则时,触发任务依然使用本地存储的配置好的内容进行告警,一旦预处理完成,触发任务获取新的配置好的设定规则,完成告警。

具体实施例5

在具体实施例1到4之一的基础上,所述方法还包括,设置一个定时器来定时产生触发告警任务。不同的时间桶的产生具有很强的时间规律,如1秒、1分、1小时(时间桶);根据需要我们可以选则一个时间桶作为警报触发的数据源(在本具体实施例中,采用分钟桶。

具体实施例6

在具体实施例5的基础上,所述定时器定时检查时间桶统计数据是否已经产生,如果是,则触发告警任务。在本具体实施例中,由于采用的分钟桶,考虑到统计数据生成的延时性,定时器每数秒(如每5秒)运行一次。

具体实施例7

在具体实施例1到6之一的基础上,所述方法还包括,设定告警任务触发统计数据在内存中存储的最大时间或最大数据量;告警任务触发后,检查触发告警任务的统计数据是否还在内存中,如果否,则丢弃这些数据不再触发告警任务。

具体实施例8

在具体实施例1到7之一的基础上,所述方法还包括,从缓存中获取对告警需要的来自于查询接口的统计数据,而非从磁盘中读取。

每一个时间桶产生的统计数据有很多条,需要对这些数据进行逐条告警,并产生告警日志。依赖于前面提到的高性能告警算法,本发明申请方案可以达到30万数据10万规模的规则的秒内告警性能。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1