CN106899443B - 一种Netflow流量数据的采集方法和设备 - Google Patents
一种Netflow流量数据的采集方法和设备 Download PDFInfo
- Publication number
- CN106899443B CN106899443B CN201510959078.0A CN201510959078A CN106899443B CN 106899443 B CN106899443 B CN 106899443B CN 201510959078 A CN201510959078 A CN 201510959078A CN 106899443 B CN106899443 B CN 106899443B
- Authority
- CN
- China
- Prior art keywords
- data
- file
- message event
- netflow
- database
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种Netflow流量数据的采集方法和设备。所述方法包括:设定接收外部网络设备发送的Netflow流量数据包的端口,并实时监听该端口;在监听到Netflow流量数据包时,按照Netflow协议将接收到的Netflow流量数据包解析为键值对结构,并将所述键值对结构与配置文件中配置的属性字段匹配,将匹配出的键值对数据封装为消息事件数据发送给传输通道进行缓存;从传输通道中获取所述消息事件数据,并将获取到的消息事件数据写入到配置文件指定目录下的文件中;将写有消息事件数据的文件下载导入到数据库中作为流量原始数据。本发明的技术方案采用流式处理实现Netflow流量数据的接收、分析、传送和存储,相比于单一处理方式具有更高的效率。
Description
技术领域
本发明涉及数据处理技术领域,特别涉及一种Netflow流量数据的采集方法和设备。
背景技术
原始流量分析是通过复制网络流量至分析端,然后对其进行分析。此种原始流量分析方法需要分析的流量较大,会造成分析端较大的负载,并不适合进行需要保存历史数据的长期分析,而且当对流量进行深层次分析时会有很大的局限性。
Netflow是Cisco思科公司开发出的一套协议,用于专门解决原始流量分析所产生的问题。当在网络设备或其接口上开启Netflow功能后,网络设备会对需要进行分析的流量进行采样分析,并把采样分析结果发送至分析端进行流量分析。分析端得到的已经不再是原始数据,而是一个初步分析结果,只要对这些初步结果进行二次分析即可获得更多的数据。由于网络设备发送过来的初步分析结果远小于原始数据,因此分析端可以充分利用CPU做更多的历史分析,也就解决了原始数据分析方式所导致的无法分析较长时间数据的问题。
目前针对Netflow协议解析的工具有很多,一般常见的处理方式是对数据包进行解析,然后通过驱动(例如java的jdbc方式)入库到数据库中。但是这种处理方式有一显著的弊端,不能短时间内处理大量入库操作,当Netflow流量数据数据流很大时,易导致程序处理不了,大量数据的堆积,即便采用数据库连接池多线程处理的方式,当流量达到几万或者几十万时,也会出现连接异常、处理超时等问题,严重时可能会因为大量长期占用数据库连接,而导致正常的分析应用无法访问数据。
发明内容
鉴于上述问题,本发明提供了一种Netflow流量数据的采集方法和设备,以解决现有对Netflow流量数据的采集处理方式无法实现快速入库的问题。
为达到上述目的,本发明的技术方案是这样实现的:
一方面,本发明提供了一种Netflow流量数据的采集方法,所述方法包括:
设定接收外部网络设备发送的Netflow流量数据包的端口,并实时监听所述端口;
在监听到Netflow流量数据包时,按照Netflow协议将接收到的所述Netflow流量数据包解析为键值对结构,并将所述键值对结构与配置文件中配置的属性字段匹配,将所述匹配出的键值对数据封装为消息事件数据发送给传输通道进行缓存;
从传输通道中获取所述消息事件数据,并将获取到的消息事件数据写入到配置文件指定目录下的文件中;
将写有消息事件数据的文件下载导入到数据库中作为流量原始数据。
优选地,所述在将匹配出的键值对数据封装为消息事件数据发送给传输通道进行缓存之前,所述采集方法还包括:
确定是否需要将所述匹配出的键值对数据发送给第三方接口进行数据流量实时分析;
在确定需要将匹配出的键值对数据发送给所述第三方接口时,启动一线程将所述匹配出的键值对数据发送给所述第三方接口。
优选地,所述将获取到的消息事件数据写入到配置文件中指定目录下的文件中包括:
在配置文件指定目录的位置处创建文件夹,该文件夹按照创建日期命名;
在所述文件夹中创建一逗号分隔值格式的临时文件.csv.tmp,并向所述临时文件.csv.tmp写入所述消息事件数据;
在写入数据达到设定数量或者超过写入规定时间时,将所述临时文件.csv.tmp改写为.csv文件,并在所述文件夹中创建新的临时文件,将后续获取的消息事件数据写入到新的临时文件中。
优选地,所述将写有消息事件数据的文件下载导入到数据库中包括:
周期性地查询当前日期相应的文件夹中是否存在.csv文件;
在查询到该文件夹中存在.csv文件时,根据查询到的.csv文件的文件名判断数据库中是否存在对应的数据表;
若数据库中存在对应的数据表,将查询到的所述.csv文件直接写入到所述数据表中;若数据库中不存在对应的数据表,在数据库中创建该.csv文件对应的数据表,并将所述.csv文件写入到所述数据表中;
在将所述.csv文件写入到所述数据表中后,删除该.csv文件。
优选地,所述方法还包括:
将数据库中所述原始流量数据按照设定时间粒度进行汇聚,将汇聚后的流量数据存入汇聚数据库中;
或者,将数据库中所述原始流量数据按照源ip字段、目的ip字段、源端口字段、目的端口字段或协议id字段汇聚为主机数据、协议数据或会话数据,并将汇聚得到的主机数据、协议数据或会话数据存入汇聚数据库中。
另一方面,本发明提供了一种Netflow流量数据的采集设备,所述采集设备包括:
监听单元,用于设定接收外部网络设备发送的Netflow流量数据包的端口,并实时监听所述端口;
匹配单元,用于在监听到Netflow流量数据包时,按照Netflow协议将接收到的所述Netflow流量数据包解析为键值对结构,并将所述键值对结构与配置文件中配置的属性字段匹配,将所述匹配出的键值对数据封装为消息事件数据发送给传输通道进行缓存;
写入单元,用于从传输通道中获取所述消息事件数据,并将获取到的消息事件数据写入到配置文件指定目录下的文件中;
入库单元,用于将写有消息事件数据的文件下载导入到数据库中作为流量原始数据。
优选地,所述采集设备还包括:
判断与处理单元,用于判断是否需要将所述匹配出的键值对数据发送给第三方接口进行数据流量实时分析;在确定需要将匹配出的键值对数据发送给所述第三方接口时,启动一线程将所述匹配出的键值对数据发送给所述第三方接口。
优选地,所述写入单元包括:
文件夹创建模块,用于在配置文件指定目录的位置处创建文件夹,该文件夹按照创建日期命名;
临时文件创建模块,用于在所述文件夹中创建一逗号分隔值格式的临时文件.csv.tmp;
数据写入模块,用于向所述临时文件创建模块创建的临时文件.csv.tmp写入所述消息事件数据,在写入数据达到设定数量或者超过写入规定时间时,将所述临时文件.csv.tmp改写为.csv文件;以及用于驱动所述临时文件创建模块在所述文件夹中创建新的临时文件,将后续获取的消息事件数据写入到新的临时文件中。
优选地,所述入库单元包括:
查询模块,用于周期性地执行load.sh脚本查询配置文件中指定目录下的的文件夹;
数据表判断模块,用于在查询到该文件夹中存在.csv文件时,根据查询到的.csv文件的文件名判断数据库中是否存在对应的数据表;
数据表创建模块,用于在数据表判断模块确定数据库中不存在对应的数据表时,在数据库中创建该.csv文件对应的数据表,并驱动文件录入模块将所述.csv文件写入到所述数据表中;
文件录入模块,用于将查询到的.csv文件写入到所述数据表中;
删除模块,用于在将所述.csv文件写入到所述数据表中后,删除该.csv文件。
优选地,所述采集设备还包括汇聚单元;
所述汇聚单元,用于将数据库中所述原始流量数据按照设定时间粒度进行汇聚,将汇聚后的流量数据存入汇聚数据库中;或者,用于将数据库中所述原始流量数据按照源ip字段、目的ip字段、源端口字段、目的端口字段或协议id字段汇聚为主机数据、协议数据或会话数据,并将汇聚得到的主机数据、协议数据或会话数据存入汇聚数据库中。
本发明实施例的有益效果是:本发明实时监听设定的端口,在监听到有Netflow流量数据包时,接收并解析Netflow流量数据包,利用配置文件从解析出的键值对结构中匹配出所需的属性字段,通过将匹配出的属性字段封装为消息事件数据写入到指定的文件中,采用下载文件的方式实现Netflow流量数据的秒级入库。本发明对Netflow流量数据的采集方法能够满足海量流量数据的流畅接收,由于采用流式处理实现Netflow流量数据的接收、分析、传送和存储,将上一环节处理结果直接扔给下一环节,因此相比于单一处理方式具有更高的效率。且本发明通过将网络流量数据解析存储到数据库中,使得方便地根据流量数据了解网络流量构成、协议分布、和用户的行为。
附图说明
图1为实施例一提供的Netflow流量数据的采集方法流程图;
图2为实施例二提供的Netflow流量数据的采集方法流程图;
图3为实施例二提供的消息事件数据写入到文件的流程图;
图4为实施例二提供的将图3中的文件写入到数据库的流程图;
图5为实施例三提供的Netflow流量数据的采集设备流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明的整体构思为:监听交换机或路由器,在监听到有Netflow流量数据发送过来时,对Netflow流量数据进行字段解析和字段过滤,将过滤后的数据作为流量原始数据入库到数据库中,然后根据配置的汇聚参数间隔将流量原始数据汇聚为粒度更大的会话、协议、主机数据存入汇聚数据库。
实施例一:
图1为本发明实施例提供的Netflow流量数据的采集方法流程图,如图1所示,图1中的方法包括:
S110,设定接收外部网络设备发送的Netflow流量数据包的端口,并实时监听该端口。
S120,在监听到Netflow流量数据包时,按照Netflow协议将接收到的Netflow流量数据包解析为键值对结构,并将键值对结构与配置文件中配置的属性字段匹配,将匹配出的键值对数据封装为消息事件数据发送给传输通道进行缓存。
优选地,在将匹配出的键值对数据封装为消息事件数据发送给传输通道进行缓存之前,图1中的方法还包括:
确定是否需要将匹配出的键值对数据发送给第三方接口进行数据流量实时分析;在确定需要将匹配出的键值对数据发送给第三方接口时,启动一线程将匹配出的键值对数据发送给第三方接口,从而为第三方提供了实时的原始粒度数据,方便进行数据流量分析。
S130,从传输通道中获取消息事件数据,并将获取到的消息事件数据写入到配置文件指定目录下的文件中。
本步骤中将获取到的消息事件数据写入到配置文件中指定目录下的文件中具体为:
在配置文件指定目录的位置处创建文件夹,该文件夹按照创建日期命名;
在该文件夹中创建一逗号分隔值格式的临时文件.csv.tmp,并向该临时文件.csv.tmp文件写入消息事件数据;
在写入数据达到设定数量或者超过写入规定时间时,将该临时文件.csv.tmp文件改写为.csv文件,并在文件夹中创建新的临时文件,将后续获取的消息事件数据写入到新的临时文件中。
S140,将写有消息事件数据的文件下载导入到数据库中作为流量原始数据。
本步骤中将写有消息事件数据的文件下载导入到数据库中包括:
周期性地执行load.sh脚本查询配置文件中指定目录下的文件夹;
根据当前日期进入相应的文件夹,在查询到文件夹中存在.csv文件时,根据查询到的.csv文件的文件名判断数据库中是否存在对应的数据表;
若数据库中存在对应的数据表,将查询到的.csv文件直接写入到数据表中;若数据库中不存在对应的数据表,在数据库中创建该.csv文件对应的数据表,并将.csv文件写入到数据表中;
在将.csv文件写入到数据表中后,删除该.csv文件。
为了方便展示流量数据,图1中的方法还包括:
将数据库中原始流量数据按照设定时间粒度进行汇聚,得到汇聚后的大粒度的流量数据,并将汇聚后的流量数据存入汇聚数据库中;
或者,将数据库中所述原始流量数据按照源ip字段、目的ip字段、源端口字段、目的端口字段或协议id字段汇聚为主机数据、协议数据或会话数据,并将汇聚得到的主机数据、协议数据或会话数据存入汇聚数据库中。
本实施例实时监听设定的端口,在监听到有Netflow流量数据包时,接收并解析Netflow流量数据包,利用配置文件从解析出的键值对结构匹配出所需的字段属性,将匹配出的字段属性封装为消息事件数据并写入到指定的文件中,采用下载文件的方式实现Netflow流量数据的秒级入库。本实施例对Netflow流量数据的采集方法能够满足海量流量数据流畅接收,由于采用流式处理实现Netflow流量数据的接收、分析、传送和存储,将上一环节处理结果直接扔给下一环节,因此相比于单一处理方式具有更高的效率。此外,本实施例通过将网络流量数据解析存储到数据库中,使得方便地根据流量数据了解网络流量构成、协议分布、和用户的行为。
实施例二:
为了更好地理解本发明实施例一中的Netflow流量数据的采集方法,本实施例以采集某公司的路由器A的Netflow流量数据为例,通过分析路由器A上的接口流量来展示实时流量动向、分析路由IP访问、分析内部服务器主机的安全状况以及展示接口业务。其中,路由器A为该公司的核心路由器。
图2为本实施例提供的Netflow流量数据的采集方法流程图,具体采集流程如下:
S210,设定接收外部网络设备发送的Netflow流量数据包的端口,并实时监听该端口。
其中,外部网络设备可以为路由器或交换机等支持Netflow协议的网络设备,在本步骤中,设定的端口用于接收路由器A发送的Netflow流量数据包。
S220,在监听到Netflow流量数据包时,按照Netflow协议将接收到的Netflow流量数据包解析为键值对Key-Value结构,并将键值对Key-Value结构与配置文件中配置的属性字段匹配,匹配出所需的键值对数据。
本实施例配置文件中配置的属性字段为(srcaddr|dstaddr|srcport|dstport|src_as|dst_as|input|output|tos|prot|src_mask|dst_mask|tcp_flags|nexthop|count|dPkts|uPkts|dOctets|uOctets|remoteaddress|probeip|timestamp|timestamp),经过匹配处理后,得到所需的有用的数据,且匹配出的键值对数据相对于从设定端口接收到的Netflow流量数据字段少了很多,更加便于后续的入库处理。
S230,确定是否需要将匹配出的键值对数据发送给第三方接口进行数据流量的实时分析,在确定需要将匹配出的键值对数据发送给第三方接口时,执行步骤S240,否则执行步骤S250。
S240,启动一线程将匹配出的键值对数据发送给第三方接口。
由于在从设定的端口接收到Netflow流量数据包时,只需对该Netflow流量数据包进行解析和匹配处理,直接将匹配得到的键值对数据发送给第三方接口,因此能够为第三方提供实时的原始粒度数据,方便进行数据流量的分析,从而实现利用路由器A的接口流量来展示实时流量动向。
S250,将匹配出的键值对数据封装为消息事件数据发送给传输通道进行缓存。
由于数字型字段在数据库中操作性最快,在将匹配出的键值对数据封装为消息事件数据时,本实施例优选地将源ip(sracddr)和目的ip(dstaddr)转换为数字型字段存储。
本实施例中的传输通道仅需提供队列功能即可,利用队列功能对消息事件数据进行简单的缓存。
S260,不断地从传输通道中获取消息事件数据,并将获取到的消息事件数据写入到配置文件指定目录下的.csv文件中。
S270,将写有消息事件数据的.csv文件下载导入到数据库中作为流量原始数据。
本实施例步骤S260将获取到的消息事件数据写入到配置文件指定目录下的.csv文件中的过程参照图3所示,图3为消息事件数据写入到文件的流程图,具体如下:
S310,在配置文件指定目录的位置处创建日期文件夹。
本实施例中的配置文件中指定了日期文件夹的位置,假设配置文件中指定的文件夹路径为…/IBDataLoad/fc,当前日期为2015年12月15日,则在该目录…/IBDataLoad/fc处按照当前日期创建以当前日期为文件名的日期文件夹20151215。
S320,在上述日期文件夹中创建一逗号分隔值格式的临时文件.csv.tmp。
S330,向创建的该临时文件.csv.tmp文件写入获取的消息事件数据。
S340,判断写入数据是否达到设定数量,或者是否超过写入规定时间,在在写入数据达到设定数量或者超过写入规定时间时,执行步骤S350,否则执行步骤S330,继续向临时文件写入消息事件数据。
S350,生成该临时文件.csv.tmp文件对应的.csv文件,并执行步骤S320,在该日期文件夹中创建新的临时文件,并将后续获取的消息事件数据写入到新的临时文件中。
本实施例中按照文件命名规则对创建的逗号分隔值格式的文件进行命名,该命名规则可以为“采集设备ip_yyyyMMdd_序列号.csv”。假设本实施例中路由器A的ip为192.168.1.1,则在日期文件夹20151215中创建的第一个文件的文件名为192_168_1_20151215_001.csv,第二个文件的文件名为192_168_1_20151215_002.csv,依此命名规则为新创建的文件命名。
本实施例步骤S270将写有消息事件数据的文件下载导入到数据库中作为流量原始数据的过程参照图4所示,图4为将图3中的文件写入到数据库的流程图,具体如下:
S410,根据当前日期周期性地进入当前日期相应的文件夹。
由于本实施例中的文件夹是按照创建时间命名的,因此可以根据日期查询相应的文件夹。
S420,判断进入到的文件夹中是否存在.csv文件,当进入到的文件夹中存在.csv文件时执行步骤S430,否则返回步骤S410,按照上述周期进入当前日期相应的文件夹。
S430,根据查询到的.csv文件的文件名分析对应的数据表,并连接数据库。
S440,判断数据库中是否存在对应的数据表,若数据库中不存在对应的数据表执行步骤S450,否则执行步骤S460。
S450,在数据库中创建该.csv文件对应的数据表。
S460,将查询到的.csv文件写入到数据库中相应的数据表中。
本实施例的数据库优选为infobright数据库,该infobright数据库按照日期创建数据表,如创建数据表名为192_168_1_20151215的数据表,该数据表用于存储相应文件夹内的文件,即将文件夹20151215中的文件都写入在数据表192_168_1_20151215中。
S470,在将.csv文件写入到数据表中后,删除该.csv文件,防止数据的重复录入。
在实际应用中,可以通过load.sh脚本实现步骤S410至步骤S470对应的数据入库逻辑,使用Linux下的crontab创建调度命令,通过该调度命令每30秒调度一次load.sh脚本,将生成的.csv文件导入到数据库中,实现数据的秒级入库。
本实施例在实现Netflow流量数据包的接收、高效处理和分析入库,通过对存储在数据库的原始流量数据进行流量分析,可以为多出口的流量负载均衡、重要链路的带宽设置、路由选择和设定QoS等网络优化措施提供数据依据,实现对网络异常通信的检测生成报告,重点防范分布式拒绝服务(DDoS)的攻击和蠕虫病毒发作。
在本实施例的一个应用场景中,通过将数据库中的流量原始数据的目的ip端口与内部字典数据ip对比,将不存在于内部字典数据ip中的路由数据转发给网络管理员,直接修改路由策略,不再内部转发此数据包,以减少流量开销。
在本实施例的另一应用场景中,通过分析数据库中的流量原始数据的目的ip(如192.168.1.100)在设定时间内的访问量,若目的ip在设定时间内出现大量来自不同ip的访问,达到规定的告警上限(如5分钟内访问同一目的ip的源ip达到500个),认定目的ip192.168.1.100受到疑似ddos、蠕虫病毒攻击,从而及时作出应对。
本应用场景通过与网络通信正常基线的比对,管理员对出现的异常通信可以快速定性,即即时的确定是否为网络安全攻击,确定安全攻击的类型,评估本次攻击的危险程度以及可能造成的影响范围,并采用相应技术手段实施事故应急处理。
在本实施例的另一应用场景中,通过分析数据库中的流量原始数据的流入流出端口,可以确定相关业务的流量访问情况,展示TopN流量数据,及时做出调整,利于业务发展。例如,通过对重要应用和大客户的流量进行统计分析,掌握重要应用和大客户的流量状况,进行网络带宽的成本分析,有助于在网络服务质量和网络成本之间取得最佳平衡。
实施例三:
基于与实施例一或实施例二相同的技术构思,本实施例提供了一种高效的Netflow流量数据的采集设备。
图5为本实施例提供的Netflow流量数据的采集设备流程图,如图5所示,图5中的采集设备包括
监听单元51,用于设定接收外部网络设备发送的Netflow流量数据包的端口,并实时监听该端口。
匹配单元52,用于在监听到Netflow流量数据包时,按照Netflow协议将接收到的Netflow流量数据包解析为键值对结构,并将所述键值对结构与配置文件中配置的属性字段匹配,将匹配出的键值对数据封装为消息事件数据发送给传输通道进行缓存。
写入单元53,用于从传输通道中获取所述消息事件数据,并将获取到的消息事件数据写入到配置文件指定目录下的文件中。
本实施例的写入单元53包括:
文件夹创建模块,用于在配置文件指定目录的位置处创建文件夹,该文件夹按照创建日期命名;
临时文件创建模块,用于在所述文件夹中创建一逗号分隔值格式的临时文件.csv.tmp;
数据写入模块,用于向所述临时文件创建模块创建的临时文件.csv.tmp文件写入所述消息事件数据,在写入数据达到设定数量或者超过写入规定时间时,将所述临时文件.csv.tmp文件改写为.csv文件;以及用于驱动所述临时文件创建模块在所述文件夹中创建新的临时文件,将后续获取的消息事件数据写入到新的临时文件中。
入库单元54,用于将写有消息事件数据的文件下载导入到数据库中作为流量原始数据。
本实施例的入库单元54包括:
查询模块,用于周期性地执行load.sh脚本查询配置文件中指定目录下的的文件夹;
数据表判断模块,用于在查询到该文件夹中存在.csv文件时,根据查询到的.csv文件的文件名判断数据库中是否存在对应的数据表;
数据表创建模块,用于在数据表判断模块确定数据库中不存在对应的数据表时,在数据库中创建该.csv文件对应的数据表,并驱动文件录入模块将所述.csv文件写入到所述数据表中;
文件录入模块,用于将查询到的.csv文件写入到所述数据表中;
删除模块,用于在将所述.csv文件写入到所述数据表中后,删除该.csv文件。
在本实施例的一个优选方案中,图5中的采集设备还包括判断与处理单元,用于判断是否需要将匹配出的键值对数据发送给第三方接口进行数据流量实时分析;在确定需要将匹配出的键值对数据发送给第三方接口时,启动一线程将所述匹配出的键值对数据发送给第三方接口。
在本实施例的另一个优选方案中,图5中的采集设备还包括汇聚单元,用于将数据库中所述原始流量数据按照设定时间粒度进行汇聚,将汇聚后的流量数据存入汇聚数据库中;或者,用于将数据库中所述原始流量数据按照源ip字段、目的ip字段、源端口字段、目的端口字段或协议id字段汇聚为主机数据、协议数据或会话数据,并将汇聚得到的主机数据、协议数据或会话数据存入汇聚数据库中。
综上所述,本发明公开了一种Netflow流量数据的采集方法和设备,实时监听设定的端口,在监听到有Netflow流量数据包时,接收并解析Netflow流量数据包,利用配置文件从解析出的键值对结构中匹配出所需的属性字段,通过将匹配出的属性字段封装为消息事件数据写入到指定的文件中,采用下载文件的方式实现Netflow流量数据的秒级入库。本发明对Netflow流量数据的采集方法能够满足海量流量数据的流畅接收,由于采用流式处理实现Netflow流量数据的接收、分析、传送和存储,将上一环节处理结果直接扔给下一环节,因此相比于单一处理方式具有更高的效率。且本发明通过将网络流量数据解析存储到数据库中,使得方便地根据流量数据了解网络流量构成、协议分布、和用户的行为。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种Netflow流量数据的采集方法,其特征在于,所述方法包括:
设定接收外部网络设备发送的Netflow流量数据包的端口,并实时监听所述端口;
在监听到Netflow流量数据包时,按照Netflow协议将接收到的所述Netflow流量数据包解析为键值对结构,并将所述键值对结构与配置文件中配置的属性字段匹配,匹配出所需的键值对数据,将所述匹配出的键值对数据封装为消息事件数据发送给传输通道,利用所述传输通道的队列功能对所述消息事件数据进行缓存;其中,所述匹配出的键值对数据相对从所述端口接收到的Netflow流量数据包字段少;
从传输通道中获取所述消息事件数据,并将获取到的消息事件数据写入到配置文件指定目录下的文件中;
将写有消息事件数据的文件下载导入到数据库中作为流量原始数据。
2.根据权利要求1所述的采集方法,其特征在于,所述在将匹配出的键值对数据封装为消息事件数据发送给传输通道进行缓存之前,所述采集方法还包括:
确定是否需要将所述匹配出的键值对数据发送给第三方接口进行数据流量实时分析;
在确定需要将匹配出的键值对数据发送给所述第三方接口时,启动一线程将所述匹配出的键值对数据发送给所述第三方接口。
3.根据权利要求1所述的采集方法,其特征在于,所述将获取到的消息事件数据写入到配置文件中指定目录下的文件中包括:
在配置文件指定目录的位置处创建文件夹,该文件夹按照创建日期命名;
在所述文件夹中创建一逗号分隔值格式的临时文件.csv.tmp,并向所述临时文件.csv.tmp写入所述消息事件数据;
在写入数据达到设定数量或者超过写入规定时间时,将所述临时文件.csv.tmp改写为.csv文件,并在所述文件夹中创建新的临时文件,将后续获取的消息事件数据写入到新的临时文件中。
4.根据权利要求3所述的采集方法,其特征在于,所述将写有消息事件数据的文件下载导入到数据库中包括:
周期性地查询当前日期相应的文件夹中是否存在.csv文件;
在查询到该文件夹中存在.csv文件时,根据查询到的.csv文件的文件名判断数据库中是否存在对应的数据表;
若数据库中存在对应的数据表,将查询到的所述.csv文件直接写入到所述数据表中;若数据库中不存在对应的数据表,在数据库中创建该.csv文件对应的数据表,并将所述.csv文件写入到所述数据表中;
在将所述.csv文件写入到所述数据表中后,删除该.csv文件。
5.根据权利要求1至4任一项所述的采集方法,其特征在于,所述方法还包括:
将数据库中所述原始流量数据按照设定时间粒度进行汇聚,将汇聚后的流量数据存入汇聚数据库中;
或者,将数据库中所述原始流量数据按照源ip字段、目的ip字段、源端口字段、目的端口字段或协议id字段汇聚为主机数据、协议数据或会话数据,并将汇聚得到的主机数据、协议数据或会话数据存入汇聚数据库中。
6.一种Netflow流量数据的采集设备,其特征在于,所述采集设备包括:
监听单元,用于设定接收外部网络设备发送的Netflow流量数据包的端口,并实时监听所述端口;
匹配单元,用于在监听到Netflow流量数据包时,按照Netflow协议将接收到的所述Netflow流量数据包解析为键值对结构,并将所述键值对结构与配置文件中配置的属性字段匹配,匹配出所需的键值对数据,将所述匹配出的键值对数据封装为消息事件数据发送给传输通道,利用所述传输通道的队列功能对所述消息事件数据进行缓存;其中,所述匹配出的键值对数据相对从所述端口接收到的Netflow流量数据包字段少;
写入单元,用于从传输通道中获取所述消息事件数据,并将获取到的消息事件数据写入到配置文件指定目录下的文件中;
入库单元,用于将写有消息事件数据的文件下载导入到数据库中作为流量原始数据。
7.根据权利要求6所述的采集设备,其特征在于,所述采集设备还包括:
判断与处理单元,用于判断是否需要将所述匹配出的键值对数据发送给第三方接口进行数据流量实时分析;在确定需要将匹配出的键值对数据发送给所述第三方接口时,启动一线程将所述匹配出的键值对数据发送给所述第三方接口。
8.根据权利要求6所述的采集设备,其特征在于,所述写入单元包括:
文件夹创建模块,用于在配置文件指定目录的位置处创建文件夹,该文件夹按照创建日期命名;
临时文件创建模块,用于在所述文件夹中创建一逗号分隔值格式的临时文件.csv.tmp;
数据写入模块,用于向所述临时文件创建模块创建的临时文件.csv.tmp写入所述消息事件数据,在写入数据达到设定数量或者超过写入规定时间时,将所述临时文件.csv.tmp改写为.csv文件;以及用于驱动所述临时文件创建模块在所述文件夹中创建新的临时文件,将后续获取的消息事件数据写入到新的临时文件中。
9.根据权利要求8所述的采集设备,其特征在于,所述入库单元包括:
查询模块,用于周期性地执行load.sh脚本查询配置文件中指定目录下的的文件夹;
数据表判断模块,用于在查询到该文件夹中存在.csv文件时,根据查询到的.csv文件的文件名判断数据库中是否存在对应的数据表;
数据表创建模块,用于在数据表判断模块确定数据库中不存在对应的数据表时,在数据库中创建该.csv文件对应的数据表,并驱动文件录入模块将所述.csv文件写入到所述数据表中;
文件录入模块,用于将查询到的.csv文件写入到所述数据表中;
删除模块,用于在将所述.csv文件写入到所述数据表中后,删除该.csv文件。
10.根据权利要求6至9任一项所述的采集设备,其特征在于,所述采集设备还包括汇聚单元;
所述汇聚单元,用于将数据库中所述原始流量数据按照设定时间粒度进行汇聚,将汇聚后的流量数据存入汇聚数据库中;或者,用于将数据库中所述原始流量数据按照源ip字段、目的ip字段、源端口字段、目的端口字段或协议id字段汇聚为主机数据、协议数据或会话数据,并将汇聚得到的主机数据、协议数据或会话数据存入汇聚数据库中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510959078.0A CN106899443B (zh) | 2015-12-18 | 2015-12-18 | 一种Netflow流量数据的采集方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510959078.0A CN106899443B (zh) | 2015-12-18 | 2015-12-18 | 一种Netflow流量数据的采集方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106899443A CN106899443A (zh) | 2017-06-27 |
CN106899443B true CN106899443B (zh) | 2020-06-26 |
Family
ID=59190489
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510959078.0A Active CN106899443B (zh) | 2015-12-18 | 2015-12-18 | 一种Netflow流量数据的采集方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106899443B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107634848B (zh) * | 2017-08-07 | 2020-10-27 | 上海天旦网络科技发展有限公司 | 一种采集分析网络设备信息的系统和方法 |
CN108509182A (zh) * | 2018-02-27 | 2018-09-07 | 北京航空航天大学 | 将非结构化大数据进行结构化处理并融合的软件技术 |
CN109743223A (zh) * | 2018-12-27 | 2019-05-10 | 北京世纪互联宽带数据中心有限公司 | 流量带宽数据统计方法及其装置、电子设备 |
CN112116730A (zh) * | 2020-09-09 | 2020-12-22 | 天津津航计算技术研究所 | 一种通用的机载数据采集记录装置的数据存储方法 |
CN113726678A (zh) * | 2021-07-28 | 2021-11-30 | 中盈优创资讯科技有限公司 | 一种基于NetFlow负载均衡器的报文分发方法 |
CN114006803B (zh) * | 2021-09-29 | 2024-01-05 | 中盈优创资讯科技有限公司 | 一种基于AS及prefix的netflow流量的突发告警方法 |
CN114172889B (zh) * | 2021-10-18 | 2024-03-22 | 江苏赞奇科技股份有限公司 | 一种实时渲染中小文件高效传输方法及系统 |
CN114598493B (zh) * | 2022-01-14 | 2023-09-05 | 浙江省通信产业服务有限公司 | 一种网络流量采集方法 |
CN115174496B (zh) * | 2022-05-23 | 2024-02-13 | 北京大学 | 一种用于网内聚合传输的处理终端和交换机 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101488925A (zh) * | 2009-03-03 | 2009-07-22 | 中兴通讯股份有限公司 | 一种利用Netflow采集及统计VPN流量的方法 |
CN102447596A (zh) * | 2011-12-27 | 2012-05-09 | 成都众询科技有限公司 | 一种高速网络流量监测系统 |
CN102611626A (zh) * | 2012-03-30 | 2012-07-25 | 北京英诺威尔科技股份有限公司 | 网络流量解析系统及方法 |
CN103345521A (zh) * | 2013-07-17 | 2013-10-09 | 腾讯科技(深圳)有限公司 | 一种在哈希表数据库中处理键值的方法和装置 |
CN105022739A (zh) * | 2014-04-21 | 2015-11-04 | 腾讯科技(北京)有限公司 | 数据的存储方法及装置 |
-
2015
- 2015-12-18 CN CN201510959078.0A patent/CN106899443B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101488925A (zh) * | 2009-03-03 | 2009-07-22 | 中兴通讯股份有限公司 | 一种利用Netflow采集及统计VPN流量的方法 |
CN102447596A (zh) * | 2011-12-27 | 2012-05-09 | 成都众询科技有限公司 | 一种高速网络流量监测系统 |
CN102611626A (zh) * | 2012-03-30 | 2012-07-25 | 北京英诺威尔科技股份有限公司 | 网络流量解析系统及方法 |
CN103345521A (zh) * | 2013-07-17 | 2013-10-09 | 腾讯科技(深圳)有限公司 | 一种在哈希表数据库中处理键值的方法和装置 |
CN105022739A (zh) * | 2014-04-21 | 2015-11-04 | 腾讯科技(北京)有限公司 | 数据的存储方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106899443A (zh) | 2017-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106899443B (zh) | 一种Netflow流量数据的采集方法和设备 | |
US10904203B2 (en) | Augmenting network flow with passive DNS information | |
US10079843B2 (en) | Streaming method and system for processing network metadata | |
US10397260B2 (en) | Network system | |
US7623466B2 (en) | Symmetric connection detection | |
JP4774357B2 (ja) | 統計情報収集システム及び統計情報収集装置 | |
US11546266B2 (en) | Correlating discarded network traffic with network policy events through augmented flow | |
EP2933954B1 (en) | Network anomaly notification method and apparatus | |
US9806968B2 (en) | Integrated network data collection arrangement and methods thereof | |
CN103152352A (zh) | 一种基于云计算环境的全信息安全取证监听方法和系统 | |
US9614766B2 (en) | System and method to analyze congestion in low latency network | |
US20170295193A1 (en) | Adaptive anomaly context description | |
US11683343B2 (en) | Distributed network and security operations platform | |
WO2015131597A1 (zh) | 一种实现流量分析的方法及装置 | |
EP3791543B1 (en) | Packet programmable flow telemetry profiling and analytics | |
KR101602189B1 (ko) | 10기가급 패킷 캡쳐링에 의한 트래픽 분석 및 망 감시 시스템 | |
US8826296B2 (en) | Method of supervising a plurality of units in a communications network | |
CN113377051B (zh) | 一种基于fpga的网络安全防护设备 | |
US20240022486A1 (en) | Streaming complex endpoint events | |
CN116319468A (zh) | 网络遥测方法、装置、交换机、网络、电子设备和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP02 | Change in the address of a patent holder | ||
CP02 | Change in the address of a patent holder |
Address after: Room 818, 8 / F, 34 Haidian Street, Haidian District, Beijing 100080 Patentee 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 Patentee before: BEIJING ULTRAPOWER SOFTWARE Co.,Ltd. |