一种分布式流量采集分析的实现方法及系统

文档序号:25991630发布日期:2021-07-23 21:03阅读:91来源:国知局
一种分布式流量采集分析的实现方法及系统

本发明属于分布式流量采集分析领域,涉及一种分布式流量采集分析的实现方法及系统,能够实现pcap流量的采集、分析、标记、检索、存储和回放。



背景技术:

随着互联网和网络应用的快速发展,网络流量正在呈现出爆发式的增长,其潜在的价值也正在被不断挖掘和利用。网络作为数据交换和共享的基础条件,正在承载着日益增长的数据传输需求,如何实现对网络数据的实时获取,存储和分析是网络流量分析必须面对的问题。当前,单台服务器的性能已经远远无法满足网络数据分析的要求,分布式网络数据获取和分析模式是该工作的发展方向和必要手段。因此,采用分布式结构是当前的必要选择。

分布式网络流量分析系统将重点解决超高速条件下的网络数据获取,数据存储,数据分析及可视化等能力,并且采用松耦合的方式实现各功能模块的分布式部署。业界已有的网络流量分析技术,虽然可以对网络进行分析,但是分析的维度并不是那么精细,分析效果还有待完善。



技术实现要素:

本发明提供一种分布式流量采集分析的实现方法及系统,通过网络数据包的采集和分析,可以实现对网络流量的标记、检索、储存和回放,通过对抓取的网络流量进行分析,可以实时了解网络的状态。

本发明从地域维度、带宽维度、时间维度、码址维度、二层协议维度、三层协议维度、关键词纬度、长度范围纬度、流量长度范围等对网络流量进行划分,并且支持按各种组合索引条件查询获得对应的流量样本,生成信息摘要文件,可以对网络样本进行回放和统计等。

本发明采用的技术方案如下:

一种分布式流量采集分析的实现方法,包括以下步骤:

采集网络流量样本,对网络流量样本添加不同维度的索引标签;

将采集的网络流量样本存储至elasticsearch分布式搜索引擎中,并按照不同维度对网络流量样本进行检索;

对网络流量样本进行统计,并存储至redis数据库中;

将网络流量样本进行回放。

进一步地,所述不同维度包括:地域维度、带宽维度、时间维度、码址维度、协议维度、关键词维度、长度范围维度、流量长度范围维度。

进一步地,所述elasticsearch分布式搜索引擎对索引进行分片;当一个索引在创建时需要指定索引的分片数量,分片分为主分片和副本分片,当存储一个文档的时候,elasticsearch分布式搜索通过计算将其存入到相应的主分片上,然后同步到其副本分片中,副本分片不仅仅是只对主分片进行冗余操作,还能进行查询、计算以分担其主分片的压力。

进一步地,所述对网络流量样本进行统计,其统计值包括字节数、包数、流数、时长平均值、时长最大值、时长最小值;并根据不同的协议统计占比情况,通过柱状图、饼图、折线图来进行样本流量统计展示,以方便用户理解检索结果。

进一步地,对于存储至所述redis数据库中的数据,采用mysql主从集群和hdfs高可用集群的双重保障存储结构进行数据持久化存储。

进一步地,所述将网络流量样本进行回放,是采用tcpreplay技术重放网络流量。

进一步地,所述将网络流量样本进行回放,支持按照捕获样本流量时数据包的速度或者指定速度重放网络流量,在回放过程中严格保证发送的数据包序列与捕获时的真实流量数据包序列一致;支持在回放的过程中将回放的包的个数、回放时间以及当前回放率进行实时反馈,支持在回放的过程中按照mac地址对回放的数据包进行动态修改。

一种采用上述方法的分布式流量采集分析的实现系统,其包括:

样本流量捕获模块,用于采集网络流量样本;

样本流量标记模块,用于对采集的网络流量样本添加不同维度的索引标签;

样本流量检索模块,用于将采集的网络流量样本存储至elasticsearch分布式搜索引擎中,并按照不同维度对网络流量样本进行检索;

样本流量统计模块,用于对网络流量样本进行统计,并存储至redis数据库中;

样本流量回放模块,用于将网络流量样本进行回放。

本发明具有如下优点和积极效果:

(1)elasticsearch作为大型分布式集群,很容易就能扩展新的服务器到es集群中;也可运行在单机上作为轻量级搜索引擎使用;与传统关系型数据库相比,es提供了全文检索、同义词处理、相关度排名、复杂数据分析、海量数据的近实时处理等功能;同一个索引被分为多个分片(shard),利用分而治之的思想提升处理效率;提供副本(replica)机制,一个分片可以设置多个副本,即使在某些服务器宕机,集群仍能正常工作;提供简单易用的api,服务的搭建、部署和使用都很容易操作。

(2)tcpreplay进行样本流量回放时,可以将样本流量原样或经过任意修改后回放至指定位置。允许对样本流量做出任意修改,指定重放样本流量的速度等。

(3)关于pcap包的解析部分,本发明利用数据平面开发套件(dpdk,dataplanedevelopmentkit)将其解析成elog日志形式,可以快速进行数据包处理,在dpdk上二次开发,可以极大提高数据处理性能和吞吐量,提高数据平面应用程序的工作效率。

(4)数据存储方面,本发明同时利用了mysql和hdfs两种方案,在集群搭建上也采用了高可用的方式,避免单点故障问题,进一步保证了数据的持久化。

附图说明

图1为本发明功能实现流程图。

图2为本发明整体部署图。其中,主控节点用于汇总采集服务器集群采集到的数据,并且可以将pcap文件解析成elog日志;分布式redis缓存用于实现pcap流量样本的分布式存储;mysql集群和hdfs文件系统用于持久化数据;es分布式检索系统便于根据不同维度进行搜索查询。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面通过具体实施例和附图,对本发明做进一步详细说明。

本发明中pcap(packetcapture,一个用于捕获网络流量的应用程序接口)网络流量分析的主要分为三个部分:标记、检索和回放。标记主要是将捕获到的pcap包进行解析生成elog文件,对生成的文件数据进行标记,对一些常用的字段进行增加索引。检索主要是将捕获的pcap包解析后的数据进行存储至elasticsearch分布式搜索引擎中,通过各种组合索引条件进行查询获得流量样本,生成信息摘要文件,同时在检索中可以对数据进行分类并按照分钟级别进行统计,支持通过柱状图、列表、饼状图和折线图表对流量样本进行分析,方便用户理解检索结果。回放主要是将捕获的流量样本采用tcpreplay工具对捕获的pcap文件按照数据包的速度、或者指定速度去重放网络流量,只要在硬件承受的范围内即可。它可以根据需要,使流量可以在两个网卡直接拆分、写入文件、进行筛选、以各种方式进行编辑,从而为测试防火墙、nids和其他网络设备提供了方法。

本系统使用的关键技术如下:数据采集,数据分析;elasticsearch分布式搜索引擎;redis分布式存储,mysql持久化,hdfs文件系统。

本发明提出的一种pcap网络流量分析的实现方法,包括以下步骤:

步骤1:pcap流量样本分析和标记。在接收到pcap流量样本后,对pcap流量样本进行分析,对常用的字段进行不同维度的添加索引标签,主要包含地域维度、带宽维度、时间维度、码址维度、二层协议维度、三层协议维度、关键词维度、长度范围维度、流量长度范围维度等。

a)地域维度。主要包含接入局点、接入运营商、接入方向。

b)带宽维度。按照10ge、100ge、10gps等。

c)时间维度。按照分、时、日、月、年来对样本进行分析。

d)码址维度。按照流量的源目ip地址范围、端口号范围来进行分析。

e)二层协议维度。按照源目mac地址范围、vlan、mpls、icmp、arp、lacp、lldp等进行分析。

f)三层协议维度。按照dhcp、dns、http、smtp、pop3、imap、ftp等典型应用进行分析。

g)关键词维度。支持自定义任意位置关键词、支持二、三、四层特征码定义。

h)长度范围维度。按照二层帧查、三层包长、四层包长范围进行分析。

i)流量长度范围维度。按照流量包数据范围、流量时间长度范围进行分析。

步骤2:对pcap流量样本数据进行检索,按照步骤1罗列的不同维度进一步划分样本流量并将其存储至elasticsearch分布式搜索引擎中,对索引进行分片,解决单个节点的硬件达到存储的临界值从而导致的数据丢失问题。

其中,对索引进行分片的方法是:elasticsearch底层是基于lucene,一个节点是一个elasticsearch的实例,每一个分片就是一个lucene实例。每一个分片包含了lucene的所有基本功能。当一个索引在创建时,需要指定索引的分片数量,分片又分为主分片和副本分片。主分片和副本分片的关系是,当存储一个文档的时候,elasticsearch通过计算,存入到相应的主分片上,然后同步到其副本分片中,副本分片可以看作是主分片的冗余结构。但是副本分片不仅仅是只对主分片进行冗余操作,还可以进行查询,计算等分担其主分片的压力。

针对于不同维度的数据进行检索,读取数据的过程具体如下:

a)客户端发送读取请求(get请求)到任意一个节点(node),然后这个节点就称为协调节点。

b)协调节点对document(文档)进行路由,将请求转发到对应的节点,此时会使用随机轮询算法,在primaryshard机制和replicashard机制中随机选择一个,让读取请求负载均衡。

c)接收请求的节点返回document给协调节点。

d)协调节点,返回document给到客户端。

通过各种组合索引条件进行查询获得流量样本,系统会按照时间节点查询每个流量样本在某个时间节点内的统计值,包含字节数、包数、流数、时长平均值、时长最大值、时长最小值。根据不同的协议(http、tcp、udp等)进行统计占比情况,通过柱状图、饼图、折线图等来进行样本流量统计展示,更加方便用户理解检索结果,并且根据检索结果做出决策。

步骤3:对pcap流量样本数据进行存储。步骤2中,我们将流量样本按照不同维度进一步划分,按照时间维度对样本流量进行数量统计,并存储至redis数据库中。redis是一个开源的使用ansic语言编写、支持网络、可基于内存亦可持久化的日志型、key-value数据库,并提供多种语言的api。

考虑到redis是基于内存的,断电即失。我们同时开启aof和rdb两种持久化方式,在这种情况下,当redis重启的时候会优先载入aof文件来恢复原始的数据,因为在通常情况下aof文件保存的数据集要比rdb文件保存的数据集要完整。

redis数据库实时性强,但是对于数据持久化还是需要进一步操作,我们采用mysql主从集群+hdfs高可用集群的双重保障存储结构,将数据同时持久化到两个地方。

步骤4:样本流量回放。流量回放的目的是为测试防火墙、nids和其他网络设备做准备工作。采用tcpreplay技术对样本流量进行回放,可支持按照捕获样本流量时数据包的速度、或者指定速度去重放网络流量,支持在特定时刻,通过专用网卡指定端口发包,实现可操控的模拟现网流量进行测试,在回放过程中严格保证发送的数据包序列与捕获时的真实流量数据包序列一致,支持在回放的过程中将回放的包的个数、回放时间以及当前回放率等统计信息实时反馈,支持在回放的过程中能够按照mac地址对回放的数据包进行动态修改。

基于同一发明构思,本发明的另一实施例提供一种采用本发明方法的分布式流量采集分析的实现系统,其包括:

样本流量捕获模块,用于采集网络流量样本;

样本流量标记模块,用于对采集的网络流量样本添加不同维度的索引标签;

样本流量检索模块,用于将采集的网络流量样本存储至elasticsearch分布式搜索引擎中,并按照不同维度对网络流量样本进行检索;

样本流量统计模块,用于对网络流量样本进行统计,并存储至redis数据库中;

样本流量回放模块,用于将网络流量样本进行回放。

基于同一发明构思,本发明的另一实施例提供一种电子装置(计算机、服务器、智能手机等),其包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行本发明方法中各步骤的指令。

基于同一发明构思,本发明的另一实施例提供一种计算机可读存储介质(如rom/ram、磁盘、光盘),所述计算机可读存储介质存储计算机程序,所述计算机程序被计算机执行时,实现本发明方法的各个步骤。

本发明未详细阐述的部分属于本领域技术人员的公知技术。

以上公开的本发明的具体实施例和附图,其目的在于帮助理解本发明的内容并据以实施,本领域的普通技术人员可以理解,在不脱离本发明的精神和范围内,各种替换、变化和修改都是可能的。本发明不应局限于本说明书的实施例和附图所公开的内容,本发明的保护范围以权利要求书界定的范围为准。

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