CN105162622B - 一种存储方法和*** - Google Patents
一种存储方法和*** Download PDFInfo
- Publication number
- CN105162622B CN105162622B CN201510481866.3A CN201510481866A CN105162622B CN 105162622 B CN105162622 B CN 105162622B CN 201510481866 A CN201510481866 A CN 201510481866A CN 105162622 B CN105162622 B CN 105162622B
- Authority
- CN
- China
- Prior art keywords
- time period
- data table
- flow information
- preset
- protocol
- 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
- 238000000034 method Methods 0.000 title claims abstract description 45
- 230000015654 memory Effects 0.000 claims abstract description 43
- 230000002159 abnormal effect Effects 0.000 claims description 10
- 230000001186 cumulative effect Effects 0.000 description 9
- 238000004458 analytical method Methods 0.000 description 4
- 238000011217 control strategy Methods 0.000 description 4
- 239000002184 metal Substances 0.000 description 4
- 238000011056 performance test Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 208000013651 non-24-hour sleep-wake syndrome Diseases 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- APTZNLHMIGJTEW-UHFFFAOYSA-N pyraflufen-ethyl Chemical compound C1=C(Cl)C(OCC(=O)OCC)=CC(C=2C(=C(OC(F)F)N(C)N=2)Cl)=C1F APTZNLHMIGJTEW-UHFFFAOYSA-N 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000005406 washing Methods 0.000 description 1
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/14—Network analysis or design
- H04L41/142—Network analysis or design using statistical or mathematical methods
Landscapes
- Physics & Mathematics (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Pure & Applied Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种存储方法和***,包括:定时从内核中采集网关设备产生的流量信息。建立用于存储预设的不同时间段内的流量信息的多个不同的数据表。将采集的流量信息根据预设的时间段存入相应的数据表中。通过本发明的方案,能够解决当前技术中存在的只使用一张大表来存储累计流量信息,从而需要大量的存储容量的问题。
Description
技术领域
本发明涉及网络流量统计技术,尤其涉及一种存储方法和***。
背景技术
网站流量统计是一种可以准确的分析访客用户的来源,便于网站管理者根据访客的需求增加或者修改网站的相关内容,便于更好的提升网站转换率,提高网站流量。网站流量统计可以精确的统计访客的具体来源地区和ip地址,目前网站在线多少人,具体访问了哪些页面,访客是通过哪些页面,搜索关键词访客的网站,访客浏览的是哪些页面,访客的浏览器是什么版本,ie6、ie7还是火狐,网站的分时统计,分日统计,分月统计,实时统计,在线访问哪个页面,访客的操作***是什么,分辨率是多少。在这些诸多的事件中,就涉及到怎么存储这些事件,然后方便、快捷的显示给用户,使用户能够很好的分析和使用。
针对前期的统计模块中,页面显示的累计流量信息只是从内核中直接取出,这样设备重启后,累计的流量信息将会消失为0。同时只支持10分钟,1小时,24小时的查询条件,这样扩展性不好也不能支持二级查询的功能。并且用户需要显示累计流量信息时,只是从内核中直接取出或者是只使用一张大表来存储累计流量信息,这样不能达到累计流量的效果或者是需要大量的存储容量来存储累计流量信息的问题。
发明内容
为了解决上述问题,本发明提出了一种存储方法和***,能够解决当前技术中存在的只使用一张大表来存储累计流量信息,从而需要大量的存储容量的问题。
为了达到上述目的,本发明提出了一种存储方法,该方法包括:
定时从内核中采集网关设备产生的流量信息。
建立用于存储预设的不同时间段内的流量信息的多个不同的数据表。
将采集的流量信息根据预设的时间段存入相应的数据表中。
优选地,
该方法还包括:对采集的流量信息进行分类;将分类后的流量信息根据该分类存入数据库,并建立与分类相对应的数据库索引。
对采集的流量信息进行分类包括:依据源网络协议IP地址和/或协议对流量信息进行分类。
其中,该协议包括:网络web协议、对等网络p2p协议和即时通讯协议。
优选地,建立用于存储预设的不同时间段内的流量信息的多个不同的数据表包括:
建立与不同的时间段相对应的时间段数据表,和/或建立在不同的时间段下与分类相对应的时间段分类数据表。
优选地,将采集的流量信息根据预设的时间段存入相应的数据表中包括:
每间隔预设的第一时间周期,将从内核中采集的预设的第一时间周期内的流量信息存入第一时间段数据表中;并将第一时间段数据表中的以当前时刻为基准的非第一时间段内的所述流量信息删除。
每间隔预设的第二时间周期,将第一时间段数据表中存储的预设的第二时间周期内的流量信息存入第二时间段数据表中;并将第二时间段数据表中的以当前时刻为基准的非第二时间段内的流量信息删除。
每间隔预设的第三时间周期,将第二时间段数据表中存储的预设的第三时间周期内的流量信息存入第三时间段数据表中;并将第三时间段数据表中的以当前时刻为基准的非第三时间段内的流量信息删除。
其中,第一时间周期和第二时间周期小于第一时间段;第三时间周期小于第二时间段;第一时间段小于第二时间段;第二时间段小于第三时间段。
优选地,将采集的流量信息根据预设的时间段存入相应的数据表中还包括:
每间隔预设的第x时间周期,将从内核中采集的预设的第x时间周期内的与源IP地址相关的流量信息存入第a时间段第m分类数据表中,并将第a时间段第m分类数据表中的以当前时刻为基准的非第a时间段内的与源IP地址相关的流量信息删除;和/或将从内核中采集的预设的第x时间周期内的与协议相关的流量信息存入第a时间段第n分类数据表中,并将第a时间段第n分类数据表中的以当前时刻为基准的非第a时间段内的与协议相关的流量信息删除。
每间隔预设的第y时间周期,将数据库中存储的预设的第y时间周期内的与源IP地址相关的流量信息存入第b时间段第m分类数据表中,并将第b时间段第m分类数据表中的以当前时刻为基准的非第b时间段内的与源IP地址相关的流量信息删除;和/或将数据库中存储的预设的第y时间周期内的与协议相关的流量信息存入第b时间段第n分类数据表中,并将第b时间段第n分类数据表中的以当前时刻为基准的非第b时间段内的与协议相关的流量信息删除。
每间隔预设的第z时间周期,将数据库中存储的预设的第z时间周期内的与源IP地址相关的流量信息存入第c时间段第m分类数据表中,并将第c时间段第m分类数据表中的以当前时刻为基准的非第c时间段内的与源IP地址相关的流量信息删除;和/或将数据库中存储的预设的第z时间周期内的与协议相关的流量信息存入第c时间段第n分类数据表中,并将第c时间段第n分类数据表中的以当前时刻为基准的非第c时间段内的与协议相关的流量信息删除。
其中,第x时间周期和第y时间周期小于第a时间段;第z时间周期小于第b时间段;第a时间段小于第b时间段;第b时间段小于第c时间段。
优选地,该方法还包括:
当仅建立了用于存储预设的不同时间段内的与源IP地址相关的流量信息的第m分类数据表时,将第m分类数据表中存储的与源IP地址相关的流量信息转化为与源IP地址相对应的与协议相关的流量信息。或者,
当仅建立了用于存储预设的不同时间段内的与所述协议相关的流量信息的第n分类数据表时,将所述第n分类数据表中存储的与所述协议相关的流量信息转化为与所述协议相对应的与所述源IP地址相关的流量信息。
优选地,该方法还包括:每间隔预设的第四时间周期,将内存中的数据库中的流量信息进行压缩,并将压缩后的流量信息存储到外存中;在设备出现异常并重启后,将外存中存储的流量信息放入内存中,并将流量信息解压缩后显示在设备显示页面上。
为了达到上述目的,本发明还提出了一种存储***,该***包括:采集模块、数据表建立模块和第一存储模块。
采集模块,用于定时从内核中采集网关设备产生的流量信息。
数据表建立模块,用于建立用于存储预设的不同时间段内的流量信息的多个不同的数据表。
第一存储模块,用于将采集的流量信息根据预设的时间段存入相应的数据表中。
优选地,
该***还包括:分类模块、第二存储模块和索引建立模块。
分类模块,用于对采集的流量信息进行分类。
第二存储模块,用于将分类后的流量信息根据分类存入数据库。
索引建立模块,用于建立与分类相对应的数据库索引。
分类模块对采集的流量信息进行分类是指:依据源网络协议IP地址和/或协议对流量信息进行分类。
其中,该协议包括:网络web协议、对等网络p2p协议和即时通讯协议。
优选地,数据表建立模块建立用于存储预设的不同时间段内的流量信息的多个不同的数据表是指:
建立与不同的时间段相对应的时间段数据表,和/或建立在不同的时间段下与分类相对应的时段分类数据表。
优选地,第一存储模块将采集的流量信息根据预设的时间段存入相应的数据表中是指:
每间隔预设的第一时间周期,将从内核中采集的预设的第一时间周期内的流量信息的存入第一时间段数据表中;并将第一时间段数据表中的以当前时刻为基准的非第一时间段内的流量信息删除。
每间隔预设的第二时间周期,将第一时间段数据表中存储的预设的第二时间周期内的流量信息存入第二时间段数据表中;并将第二时间段数据表中的以当前时刻为基准的非第二时间段内的流量信息删除。
每间隔预设的第三时间周期,将第二时间段数据表中存储的预设的第三时间周期内的流量信息存入第三时间段数据表中;并将第三时间段数据表中的以当前时刻为基准的非第三时间段内的流量信息删除。
其中,第一时间周期和第二时间周期小于第一时间段;第三时间周期小于第二时间段;第一时间段小于第二时间段;第二时间段小于第三时间段。
优选地,第一存储模块将采集的所述流量信息根据预设的所述时间段存入相应的数据表中还指:
每间隔预设的第x时间周期,将从内核中采集的预设的第x时间周期内的与源IP地址相关的流量信息存入第a时间段第m分类数据表中,并将第a时间段第m分类数据表中的以当前时刻为基准的非第a时间段内的与源IP地址相关的流量信息删除;和/或将从内核中采集的预设的第x时间周期内的与协议相关的流量信息存入第a时间段第n分类数据表中,并将第a时间段第n分类数据表中的以当前时刻为基准的非第a时间段内的与协议相关的流量信息删除。
每间隔预设的第y时间周期,将数据库中存储的预设的第y时间周期内的与源IP地址相关的流量信息存入第b时间段第m分类数据表中,并将第b时间段第m分类数据表中的以当前时刻为基准的非第b时间段内的与源IP地址相关的流量信息删除;和/或将数据库中存储的预设的第y时间周期内的与协议相关的流量信息存入第b时间段第n分类数据表中,并将第b时间段第n分类数据表中的以当前时刻为基准的非第b时间段内的与协议相关的流量信息删除。
每间隔预设的第z时间周期,将数据库中存储的预设的第z时间周期内的与源IP地址相关的流量信息存入第c时间段第m分类数据表中,并将第c时间段第m分类数据表中的以当前时刻为基准的非第c时间段内的与源IP地址相关的流量信息删除;和/或将数据库中存储的预设的第z时间周期内的与协议相关的流量信息存入第c时间段第n分类数据表中,并将第c时间段第n分类数据表中的以当前时刻为基准的非第c时间段内的与协议相关的流量信息删除。
其中,第x时间周期和第y时间周期小于第a时间段;第z时间周期小于第b时间段;第a时间段小于第b时间段;第b时间段小于第c时间段。
优选地,数据表建立模块还用于:
当仅建立了用于存储预设的不同时间段内的与源IP地址相关的流量信息的第m分类数据表时,将第m分类数据表中存储的与源IP地址相关的流量信息转化为与源IP地址相对应的与协议相关的流量信息。或者,
当仅建立了用于存储预设的不同时间段内的与协议相关的流量信息的第n分类数据表时,将第n分类数据表中存储的与协议相关的流量信息转化为与协议相对应的与源IP地址相关的流量信息。
优选地,该***还包括:第三存储模块和显示模块。
第三存储模块,用于每间隔预设的第四时间周期,将内存中的数据库中的流量信息进行压缩,并将压缩后的流量信息存储到外存中;在设备出现异常并重启后,将外存中存储的流量信息放入内存中。
显示模块,用于将流量信息解压缩后显示在设备显示页面上。
与现有技术相比,本发明包括:定时从内核中采集网关设备产生的流量信息。建立用于存储预设的不同时间段内的流量信息的多个不同的数据表。将采集的流量信息根据预设的时间段存入相应的数据表中。通过本发明的方案,能够解决当前技术中存在的只使用一张大表来存储累计流量信息,从而需要大量的存储容量的问题。
附图说明
下面对本发明实施例中的附图进行说明,实施例中的附图是用于对本发明的进一步理解,与说明书一起用于解释本发明,并不构成对本发明保护范围的限制。
图1为本发明的存储方法流程图;
图2为本发明的存储***组成框图;
图3为本发明实施例的10分钟_源ip.db的数据表示意图;
图4为本发明实施例的10分钟_proto.db的数据表示意图;
图5为本发明实施例的24小时的累计流量信息趋势示意图。
具体实施方式
为了便于本领域技术人员的理解,下面结合附图对本发明作进一步的描述,并不能用来限制本发明的保护范围。
本发明方案主要解决用户需要显示累计流量信息时,只是从内核中直接取出或者是只使用一张大表来存储累计流量信息,这样不能达到累计流量的效果或者是需要大量的存储容量来存储累计流量信息的问题。
为了解决上述的当前技术中存在的只使用一张大表来存储累计流量信息,从而需要大量的存储容量的问题,本发明通过使用多张数据表的方法来存储设备产生的累计流量信息。
具体地,为了达到上述目的,本发明提出了一种存储方法,如图1所示,该方法包括:
S101、定时从内核中采集网关设备产生的流量信息。
在本发明实施例中,可以设定一个定时器,每隔一定的时间间隔采集一次网关设备产生的流量信息,这个时间间隔可以根据具体的应用场景进行自定义。
对于采集到的流量信息,在存储到内存的数据库中之前,先对其进行分类。
优选地,
该方法还包括:对采集的流量信息进行分类;将分类后的流量信息根据该分类存入数据库,并建立与分类相对应的数据库索引。
对采集的流量信息进行分类包括:依据源网络协议IP地址和/或协议对流量信息进行分类。
其中,该协议包括:网络web协议、对等网络p2p协议和即时通讯协议。
Web协议类包含http和https;p2p协议类包含迅雷、bt、edonkey、QQ超级旋风……;即时通讯协议包含QQ、微信、飞信、淘宝旺旺……等等这里不再一一列举。
源IP地址,例如,10.10.25.251、10.10.25.80、10.10.25.6……等。
在对采集的流量信息进行分类时,我们可以仅依据源IP地址进行分类,也可以仅依据协议进行分类,还可以同时依据源IP地址和协议进行分类。并且在其他的实施例中,还可以依据不同的应用场景针对其他分类依据进行分类。
在本发明实施例中,预先对采集的流量信息进行分类,以便在后续操作中对需要的流量信息进行快速查找。
下面将介绍如何将分类后的流量信息根据分类存入数据库,并建立与分类相对应的数据库索引。
在本发明实施例中,通过上述内容对流量信息进行分类之后,我们将分类后的流量信息存储到数据库中,并为方便查找,在存储时依据上述的分类情况建立数据库的索引。
在存储时,每个数据表的字段可以是以下形式:
时间:4字节、源IP:4字节、协议:4字节、上传数据:4字节、下载数据:4字节。
或者,将每个数据表的字段扩展为:
时间:4字节、源IP:4字节、协议大类:4字节、上传数据:4字节、下载数据:4字节。
在本发明实施例中,还可以对字段做其他的扩展,并不仅限于此扩展。
通过数据表的字段,我们可以建立关于所存储的流量信息的数据库的索引,具体建立方法在本发明实施例中不做限定,可以采用常规的任意一种可实现的建立方法建立该数据库索引。
S102、建立用于存储预设的不同时间段内的流量信息的多个不同的数据表。
在现有累积流量存储技术中,都是将全部累计流量都统计在一个大表中,这一做法需要大量的存储容量。在本发明实施例中,为了解决现有技术中存在的问题,通过使用多张数据表的方法来存储设备产生的累计流量信息。并且为了方便用户的二次查询,可以根据用户的查询需求,建立多种形式的多张数据表。
优选地,建立用于存储预设的不同时间段内的流量信息的多个不同的数据表包括:
建立与不同的时间段相对应的时间段数据表,和/或建立在不同的时间段下与分类相对应的时间段分类数据表。
下面将通过具体实施例详细介绍如何建立各种形式的多张数据表。
首先,建立与不同的时间段相对应的时间段数据表
在现实应用中,用户通常需要查询10分钟之内,或者1小时之内,或者24小时之内的累计流量信息,或者其他任意时段内的流量信息,根据用户的不同需求,我们可以分别建立与该时段对应的数据表,例如,10分钟数据表、1小时数据表、24小时数据表……,将当前时刻10分钟之内的累计流量信息、1小时之内的累计流量信息、24小时之内的累计流量信息等分别存入该10分钟数据表、1小时数据表和24小时数据表中。
其次,建立在不同的时间段下与分类相对应的时间段分类数据表
在现实应用中,用户也通常需要针对某一时间段内的某一类型的流量信息进行查询,因此,我们可以分别建立在不同的时间段内与分类相对应的时间段分类数据表。例如,如果已经建立了3个数据表分别为10分钟数据表、1小时数据表、24小时数据表。如果用户在上述的时间段数据表的基础上需要显示仅针对源ip地址的数据流量信息时,那么在向上述的3个数据表中收集信息之前,可以按每个时间段的每个源ip地址分别建立一个数据库,如图3所示,建立的是10分钟时间段内针对不同源ip地址的数据库,我们可以把该数据库命名为10分钟_源ip.db,对于1小时、24小时时间段内对不同源ip地址的数据表与图3的建立方式相同,可以依此类推。同理,如果用户在上述的时间段数据表的基础上需要显示仅针对协议的数据流量信息时,那么在向上述的3个数据表中收集信息之前,可以按每个时间段的不同协议分别建立一个数据库,如图4所示,建立的是10分钟时间段内针对不同协议的数据库,我们可以把该数据库命名为10分钟_proto.db,对于1小时、24小时时间段内对不同协议的数据库与图4的建立方式相同,可以依此类推。需要说明的是,在源ip的数据库中建表时也可以根据ip网段来建表,如图3中的数据表也可以建为192.168.1_table、192.168.2_table……。在协议的数据库中也可以按每个协议分类来建表为web_table(web包含http和https)、即时通讯_table(即时通讯包含qq、msn、微信等)……。
通过上述方案,如果用户需要查询源IP的流量信息时那么数据库中就按照每个源ip建多个数据表来存储。如果用户需要查询协议的流量信息时那么数据库中就按照每种协议建多个数据表。在开始存储时也可以源ip和协议这两种数据表都同时建立并存储数据。这样用户在按照源ip或者协议来查询数据的时候就可以很方便的查询出所需要的数据信息,大大的提高了查询效率。
S103、将采集的流量信息根据预设的时间段存入相应的数据表中。
通过上述内容我们详细了解了如何建立多个数据表,下面将详细介绍如何将流量信息填入建立的多个数据表中。根据建立的表格形式不同,可以分为两种方案:
方案一
优选地,将采集的流量信息根据预设的时间段存入相应的数据表中包括:
每间隔预设的第一时间周期,将从内核中采集的预设的第一时间周期内的流量信息存入第一时间段数据表中;并将第一时间段数据表中的以当前时刻为基准的非第一时间段内的所述流量信息删除。
每间隔预设的第二时间周期,将第一时间段数据表中存储的预设的第二时间周期内的流量信息存入第二时间段数据表中;并将第二时间段数据表中的以当前时刻为基准的非第二时间段内的流量信息删除。
每间隔预设的第三时间周期,将第二时间段数据表中存储的预设的第三时间周期内的流量信息存入第三时间段数据表中;并将第三时间段数据表中的以当前时刻为基准的非第三时间段内的流量信息删除。
其中,第一时间周期和第二时间周期小于第一时间段;第三时间周期小于第二时间段;第一时间段小于第二时间段;第二时间段小于第三时间段。
这里需要说明的是,在上述方案中,虽然仅列举了三个数据表的流量存储方法,但在实际应用中不限于三个数据表,用户也可以仅建立2个,或者建立4个、5个,甚至更多,具体数量可以依据用户的具体需要而定,并且依据用户建立的数据表的个数多少,上述方案可以扩展,如,当用户建立4个数据表时,本发明方案可以延续为:每间隔预设的第四时间周期,将第三时间段数据表中存储的预设的第四时间段内的流量信息存入第四时间段数据表中;并将第四时间段数据表中的以当前时刻为基准的非第四时间段内的流量信息删除。当建立了更多的数据表时,方案以此类推。
另外,上述方案中的第一时间周期、第二时间周期和第三时间周期可以根据用户设置的不同时段来自行定义,即,用户可以自定义间隔多长时间向建立的数据表中存储流量信息。但需要注意的是,第一时间周期必须小于第一时间段,因为第一周期小于第一时间段时才能采集到第一时间段内的流量信息,例如,每隔1分钟到内核中采集一次信息,放到10分钟数据表中,这样才能保证10分钟数据表中存储的是10分钟内的流量,如果是15分钟采集一次,不能保证该10分钟数据表中实时存储近10分钟内的信息。第二时间周期也必须小于第一时间段,因为第二时间段数据表中的流量信息是从第一时间段数据表中获取的,如果第二时间周期的时长大于第一时间段的时长,则不可能从第一时间段数据表中获取到流量信息,例如,为了建立1小时数据表,每隔5分钟到10分钟数据表中采集一次信息,放到1小时数据表中,这里的1小时数据表即为第二时间段数据表,5分钟即为第二时间周期,10分钟数据表即为第一时间段数据表,10分钟即为第一时间段,只有第二时间周期5分钟小于第一时间段10分钟,我们才可以从第一时间段数据表中采集到数据,如果第二时间周期为15分钟,我们不可能从十分钟数据表中采集到数据。理由同上,第三时间周期必须小于第二时间段,可以以此类推,当存在第四时间周期、第五时间周期……,第四时间周期小于第三时间段,第五时间周期小于第四时间段。
下面将通过具体实施例来介绍上述方案。在本发明实施例中,这里仍以10分钟数据表、1小时数据表、24小时数据表进行说明。这里的10分钟、1小时和24小时即上述的第一时间段、第二时间段和第三时间段;10分钟数据表、1小时数据表和24小时数据表即上述的第一时间段数据表、第二时间段数据表和第三时间段数据表。首先,我们往10分钟数据表中填入数据,这里我们将第一时间周期定为1分钟,即,每隔1分钟将内核中的1分钟内的流量信息存入10分钟数据表中;并将10分钟数据表中的以当前时刻为基准的非10分钟内的流量信息删除。下面,我们往1小时数据表中填入数据,这里我们将第二时间周期定为5分钟,并且,我们采集数据时是从10分钟数据表中采集数据,即,每隔5分钟将10分钟数据表中存储的5分钟内的流量信息存入1小时数据表中;并将1小时数据表中的以当前时刻为基准的非1小时之内的流量信息删除。最后,我们往24小时数据表中填入数据,这里我们将第二时间周期定为20分钟,并且,我们采集数据时是从1小时数据表中采集数据,即,每隔20分钟将1小时数据表中存储的20分钟内的流量信息存入24小时数据表中;并将24小时数据表中的以当前时刻为基准的非24小时之内的流量信息删除。
通过上述方案,我们建立了多张时间段数据表,即10分钟数据表、1小时数据表和24小时数据表,并且将相应的流量信息填入了不同的时间段数据表中。如果用户需要更长时间的累计流量信息,那么可以根据用户的需求合适的扩展多个数据表或者减少几个数据表。需要注意的是,例如,10分钟数据表中收集信息的时间只要在小于10分钟内就可以了,1小时数据表的收集时间也是小于10分钟就可以了,因为是到10分钟表里收集信息的;24小时的收集时间小于1小时就可以了,因为是到1小时的表里收集信息的。最终达到存储累计流量信息使用最少的存储容量的目的。
用户可以根据不同的时间要求到不同的数据表中查询。如果需要显示近10分钟内的数据,那么到10分钟数据表中将数据查询出来;如果需要显示近1小时内的数据,那么到1小时数据表中将数据查询出来;如果需要显示近24小时内的数据,那么到24小时的数据表中将数据查询出来。
下面我们将通过本发明方案与现有技术方案的具体数据比较来说明本发明方案的优越性。
在现有技术方案中,假设通过一张数据表记录了24小时的流量信息,每10秒记录一次数据,数据表的字段有时间:4字节、源IP:4字节、协议:4字节、上传数据:4字节、下载数据:4字节;那么一条记录4+4+4+4+4=20字节。现在有50个源IP,平均每个IP有50个应用。那么10分钟的存储容量:60*20*50*50=3M;一小时的存储容量:60*20*50*50*6=18M;24小时的存储容量:60*20*50*50*6*24=432M。
在本发明方案的具体实施例中,如果将上述的一张24小时的数据表分为三张表,一个10分钟数据表,用来存储10分钟内的流量信息;一个1小时数据表,用来存储1小时内的流量信息;一个24小时数据表,用来存储24小时内的流量信息。在10分钟数据表中,每隔10秒钟到内核中提取一次数据,那么10分钟后10分钟数据表中的存储容量为:60*20*50*50=3M。在1小时数据表中,每隔一分钟到10分钟数据表中取出近1分钟内的数据计算出1分钟的总流量***1小时数据表中,由于一条记录4+4+4+4+4=20字节,现在有50个源IP,平均每个IP有50个应用,那么1小时后会存储60条记录的流量信息,1小时数据表中的存储容量为:60*20*50*50=3M。同理,在24小时数据表中,每隔20分钟到1小时数据表中取出近20分钟内的数据计算出20分钟的总流量***24小时数据表中,由于一条记录4+4+4+4+4=20字节,现在有50个源IP,平均每个IP有50个应用,那么24小时后会存储72条记录的流量信息,24小时数据表中的存储容量为:72*20*50*50=3.6M。
根据以上数据得到,存储24小时的流量信息如果只用一个表的话需要432M的容量大小,如果分多表存储的话需要3M+3M+3.6M=9.6M的容量大小。
下面进一步通过查询时间耗时分析来说明本发明方案的优越性。在本发明实施例中,以sqlite数据库为例来进行分析。
sqlite数据库性能测试如表一:
表一
Sqlite | |
***10000条记录耗时 | 0.42秒 |
***100000条记录耗时 | 3.81秒 |
***7200000条记录耗时 | 249秒 |
***57600000条记录耗时 | 2155.14秒 |
***172800000条记录耗时 | 6352.06秒 |
10000条记录查1记录耗时 | 少于0.01秒 |
100000条记录查1记录耗时 | 少于0.01秒 |
7200000条记录查1记录耗时 | 少于0.01秒 |
57600000条记录查1记录耗时 | 0.16秒 |
172800000条记录查1记录耗时 | 0.09秒 |
在上述实施例中,如果使用一张表来存储24小时流量的话,有记录的条数:432M/20=21600000条。在性能测试表中最接近的是“***57600000条记录耗时2155.14秒”和“57600000条记录查1记录耗时0.16秒”。如果使用三张表来存储24小时流量的话,那么10分钟数据表和1小时数据表中有记录3M/20=150000条,24小时的数据表中有记录3.6M/20=180000条。在性能测试表中最接近的是“***100000条记录耗时3.81秒”和“100000条记录查1记录耗时少于0.01秒”
根据上面的分析很容易看出来存储24小时流量信息使用三张表的方法比使用一张表的方法大大减少了***数据和查询数据的时间。
图5是一个24小时的累计流量信息趋势图,该图是根据24小时表内的72点的数据信息画出来的。查询数据时是根据协议来计算流量的。需要说明的是,如果采用一张表来存储24小时的流量信息,那么根据sqlite数据库性能测试表分析显示出来,图5至少需要0.16*72=8.64秒,而使用三张表累计存储的话显示出来,图5需要的时间是0.01*72=0.72秒。很显然8.64秒>0.72秒,能看出来采用三张表累计存储流量信息的方法比一张表存储流量信息的方法显示图5的时间快很多。
方案二
优选地,将采集的流量信息根据预设的时间段存入相应的数据表中还包括:
每间隔预设的第x时间周期,将从内核中采集的预设的第x时间周期内的与源IP地址相关的流量信息存入第a时间段第m分类数据表中,并将第a时间段第m分类数据表中的以当前时刻为基准的非第a时间段内的与源IP地址相关的流量信息删除;和/或将从内核中采集的预设的第x时间周期内的与协议相关的流量信息存入第a时间段第n分类数据表中,并将第a时间段第n分类数据表中的以当前时刻为基准的非第a时间段内的与协议相关的流量信息删除。
每间隔预设的第y时间周期,将数据库中存储的预设的第y时间周期内的与源IP地址相关的流量信息存入第b时间段第m分类数据表中,并将第b时间段第m分类数据表中的以当前时刻为基准的非第b时间段内的与源IP地址相关的流量信息删除;和/或将数据库中存储的预设的第y时间周期内的与协议相关的流量信息存入第b时间段第n分类数据表中,并将第b时间段第n分类数据表中的以当前时刻为基准的非第b时间段内的与协议相关的流量信息删除。
每间隔预设的第z时间周期,将数据库中存储的预设的第z时间周期内的与源IP地址相关的流量信息存入第c时间段第m分类数据表中,并将第c时间段第m分类数据表中的以当前时刻为基准的非第c时间段内的与源IP地址相关的流量信息删除;和/或将数据库中存储的预设的第z时间周期内的与协议相关的流量信息存入第c时间段第n分类数据表中,并将第c时间段第n分类数据表中的以当前时刻为基准的非第c时间段内的与协议相关的流量信息删除。
其中,第x时间周期和第y时间周期小于第a时间段;第z时间周期小于第b时间段;第a时间段小于第b时间段;第b时间段小于第c时间段。
这里需要说明的是,与方案一中相同,在上述方案中,虽然仅列举了三个数据表的流量存储方法,但在实际应用中不限于三个数据表,用户也可以仅建立2个,或者建立4个、5个,甚至更多,具体数量可以依据用户的具体需要而定,并且依据用户建立的数据表的个数多少,上述方案可以扩展,如,当用户建立4个数据表时,本发明方案可以延续为:每间隔预设的第h时间周期,将数据库中存储的预设的第h时间周期内的与源IP地址相关的流量信息存入第d时间段第m分类数据表中,并将第d时间段第m分类数据表中的以当前时刻为基准的非第d时间段内的与源IP地址相关的流量信息删除;和/或将数据库中存储的预设的第h时间周期内的与协议相关的流量信息存入第d时间段第n分类数据表中,并将第d时间段第n分类数据表中的以当前时刻为基准的非第d时间段内的与协议相关的流量信息删除。当建立了更多的数据表时,方案以此类推。
另外,上述方案中的第x时间周期、第y时间周期和第z时间周期,以及后续的第h周期等可以根据用户设置的不同时段来自行定义,即,用户可以自定义间隔多长时间向建立的数据表中存储流量信息。但需要注意的是,第x时间周期必须小于第a时间段,因为第x周期小于第a时间段时才能采集到第a时间段内的流量信息,例如,每隔1分钟到内核中采集一次信息,放到10分钟数据表中,这样才能保证10分钟数据表中存储的是10分钟内的流量,如果是15分钟采集一次,不能保证该10分钟数据表中实时存储近10分钟内的信息。第y时间周期也必须小于第a时间段,因为第b时间段数据表中的流量信息是从第a时间段数据表中获取的,如果第y时间周期的时长大于第a时间段的时长,则不可能从第a时间段数据表中获取到流量信息,例如,为了建立1小时数据表,每隔5分钟到10分钟数据表中采集一次信息,放到1小时数据表中,这里的1小时数据表即为第b时间段数据表,5分钟即为第y时间周期,10分钟数据表即为第a时间段数据表,10分钟即为第a时间段,只有第y时间周期5分钟小于第a时间段10分钟,我们才可以从第a时间段数据表中采集到数据,如果第y时间周期为15分钟,我们不可能从十分钟数据表中采集到数据。理由同上,第z时间周期必须小于第b时间段,可以以此类推,当存在第h时间周期、第j时间周期……,第h时间周期小于第c时间段,第j时间周期小于第d时间段。
并且,在本发明实施例中仅进行了源IP地址和协议两种分类,在其他实施方式中,还可以针对不同的情况对分类进行扩展,并不限于源IP地址和协议两种。
下面将通过具体实施例来介绍上述方案。在本发明实施例中,这里仍以10分钟数据表、1小时数据表、24小时数据表进行说明,并且分类以源IP地址和协议进行说明。这里的10分钟_源ip.db、1小时_源ip.db和24小时_源ip.db里面的数据表即上述的第a时间段第m分类数据表、第b时间段第m分类数据表和第c时间段第m分类数据表。10分钟_proto.db、1小时_proto.db和24小时_proto.db里面的数据表即上述的第a时间段第n分类数据表、第b时间段第n分类数据表和第c时间段第n分类数据表。
首先,我们往10分钟_源ip.db的数据表中填入数据,这里我们将第x时间周期定为1分钟,即,每隔1分钟将收集到的1分钟内的与源IP地址相关的流量信息存入10分钟_源ip.db的数据表中;并将10分钟_源ip.db的数据表中的以当前时刻为基准的非10分钟内的与源IP地址相关的流量信息删除。下面,我们往1小时_源ip.db的数据表中填入数据,这里我们将第y时间周期定为5分钟,并且,我们采集数据时是从10分钟_源ip.db的数据表中采集数据,即,每隔5分钟将10分钟_源ip.db的数据表中存储的5分钟内的与源IP地址相关的流量信息存入1小时_源ip.db的数据表中;并将1小时_源ip.db数据表中的以当前时刻为基准的非1小时之内的流量信息删除。最后,我们往24小时_源ip.db的数据表中填入数据,这里我们将第y时间周期定为20分钟,并且,我们采集数据时是从1小时_源ip.db的数据表中采集数据,即,每隔20分钟将1小时_源ip.db的数据表中存储的20分钟内的与源IP地址相关的流量信息存入24小时_源ip.db的数据表中;并将24小时_源ip.db的数据表中的以当前时刻为基准的非24小时之内的流量信息删除。
10分钟_proto.db的数据表、1小时_proto.db的数据表和24小时_proto.db的数据表的填充方法与10分钟_源ip.db的数据表、1小时_源的ip.db数据表和24小时_源ip.db的数据表的填充方法相同,这里不再赘述。
通过上述方案,我们建立了多张时间段分类数据表,即10分钟_proto.db的数据表、1小时_proto.db的数据表、24小时_proto.db的数据表、10分钟_源ip.db的数据表、1小时_源ip.db的数据表和24小时_源ip.db的数据表,并且将相应的流量信息填入了不同的时间段分类数据表中。如果用户需要更多分类的累计流量信息,那么可以根据用户的需求合适的扩展多个分类数据表或者减少几个分类数据表。并且,需要注意的是,在时间段的信息采集中如同方案一中一样,例如,10分钟源ip.db的数据表中收集信息的时间只要在小于10分钟内就可以了,1小时源ip.db的数据表的收集时间也是小于10分钟就可以了,因为是到10分钟源ip.db的数据表里收集信息的;24小时_源ip.db的数据表的收集时间小于1小时就可以了,因为是到1小时_源ip.db的数据表里收集信息的。最终达到存储累计流量信息使用最少的存储容量的目的。
用户可以根据不同的时间要求以及不同的分类要求到不同的数据表中查询。如果需要显示近10分钟内源ip的数据,那么到10分钟_源ip.db的数据表中将数据查询出来;如果需要显示近1小时内协议的数据,那么到1小时_proto.db的数据表中将数据查询出来;如果需要显示近24小时内源ip的数据,那么到24小时_源ip.db的数据表中将数据查询出来。
这里需要说明的是,在方案二中,这里的第x、y、z时间周期与方案一中的第一、二、三时间周期可以相同也可以不同,并且这里的第a、b、c时间周期与方案一中的第一、二、三时间段可以相同也可以不同,即,方案二可以在方案一的基础上建立,也可以不依赖于方案一重新确定时间周期和时间段而建立。
下面我们将通过附图来说明本发明上述方案的优越性。
首先,从图5中可以看出来在24小时内流量信息中,在9:00-16:30这个时间范围内应用协议的流量比较多,因为在这个时间内大多是公司上班时间,员工们在工作的同时在做网页浏览,p2p下载资源,观看些视频等,这样可能会影响员工们的工作效率。为了能够充分提高员工的工作效率或者是监督员工们在工作时间都做些什么,我们可以在这个时间段内把某些协议禁止掉,使员工们能够一心一意的工作,或者是开启审计功能把员工们的网络行为详细的记录下来。除此之外,我们还可以通过这个趋势图来判断某段时间内是否有流量攻击。假如在9:00-16:30这段时间范围内http协议的流量迅速增加到很高。我们再查一下源ip的流量信息,如果某个或几个源ip的http协议的流量也是迅速增加到很高,那么我们就可以判断这几个源ip是在做http协议的流量攻击。
另外,通过下述表二中的显示,很显然,在近十分钟内的源ip的累计流量信息表中10.10.25.251的总流量使用的是比较多的流量,如果觉得该ip使用的流量信息有问题或者不应该让该ip使用这么多的流量信息,我们就可以根据表二的流量信息对该源ip地址进行完全阻断或者采用限速限流,例如,可以添加控制策略将10.10.25.251通过的流量进行控制,使通过该ip的流量信息被阻断不能通过设备,即,把该源ip的流量都扔掉。过段时间,如果用户想要恢复该源ip的流量,那么将添加的控制策略删除掉就可以了;或者,对10.10.25.251进行限速限流,直到该ip的流量恢复到用户希望的流量速度,过段时间,如果用户觉得该流量速度已经不够满足需求了,那么就将限速限流的策略删除掉就可以了。
表二
源IP | 上行流量(KB) | 下行流量(KB) | 总流量(KB) |
10.10.25.251 | 20581 | 47493 | 68074 |
10.10.25.80 | 3968 | 53052 | 57020 |
10.10.25.6 | 1127 | 10215 | 11342 |
10.10.25.11 | 1235 | 7398 | 8633 |
其次,通过表三的显示,很显然,在近十分钟内的协议的累计流量信息表中迅雷的总流量使用的是比较多的流量,如果觉得该网段内不应该让用户使用迅雷协议,我们就可以根据表三的流量信息对该协议进行添加控制策略,将迅雷协议通过的流量进行控制,例如,使通过迅雷协议的流量信息都被阻断不能通过设备,即,把迅雷协议的流量都扔掉,过段时间,如果用户想要恢复迅雷协议的流量那么将添加的控制策略删除掉就可以了;或者,对迅雷协议进行限速限流,直到迅雷协议的流量恢复到用户希望的流量速度,过段时间,如果用户觉得该流量速度已经不够满足需求了,那么就将限速限流的策略删除掉就可以了。
表三
协议 | 上行流量(KB) | 下行流量(KB) | 总流量(KB) |
迅雷 | 24042 | 41116 | 65158 |
QQ音乐 | 11 | 312 | 323 |
淘宝网 | 33 | 59 | 92 |
优酷 | 12 | 23 | 35 |
因此,通过以上内容可知,采用本发明的方案,可以直观地判断流量攻击,以便用户及时采取措施,并且用户可以更加直观、灵活地控制某一个源ip或协议的流量,方便用户对网络流量信息的管理。
在本发明方案中,根据上述实施方案的表述,我们在以上方案的基础上又做了进一步的扩展,既,可以根据需求的动态变换来动态变换存储方法。例如,如果用户开始是需要显示源ip来查询数据信息,过一段时间又变换了需求,需要显示协议来查询数据信息,但一开始我们建立了依据源ip的数据表,没有建立依据协议的数据表,那么根据这个需求我们需要采用一种动态的变换分类信息来存储流量信息。具体方案如下:
优选地,该方法还包括:
当仅建立了用于存储预设的不同时间段内的与源IP地址相关的流量信息的第m分类数据表时,将第m分类数据表中存储的与源IP地址相关的流量信息转化为与源IP地址相对应的与协议相关的流量信息。或者,
当仅建立了用于存储预设的不同时间段内的与所述协议相关的流量信息的第n分类数据表时,将所述第n分类数据表中存储的与所述协议相关的流量信息转化为与所述协议相对应的与所述源IP地址相关的流量信息。
在本发明实施例中,开始可以按照源ip地址来存储流量信息,即,数据库中的每个表是按照每个源ip的ip地址信息建立的,例如,仅建立了10分钟_源ip.db的数据表、1小时_源ip.db的数据表和24小时_源ip.db的数据表,如果用户改变了需求,需要按照协议的信息查询信息时,那么把原来按照源ip收集到的信息变换为按照协议的类型建立数据库表,并把信息转存到协议的数据库表中;即,将图3的形式表变换为图4的形式表;将10分钟_源ip.db数据表、1小时_源ip.db的数据表和24小时_源ip.db的数据表分别变换为10分钟_proto.db的数据表、1小时_proto.db的数据表和24小时_proto.db的数据表。这样用户就可以按照协议很方便、快捷地删除和查询所需的信息了。
针对上述的实施方案,在现有技术中通常都是在设备的内存中处理的,一旦设备出现异常,全部流量信息将会丢失。因此,为了设备重启后能够正常显示流量信息,我们可以将流量信息转存到外存中,具体方案如下。
优选地,该方法还包括:每间隔预设的第四时间周期,将内存中的数据库中的流量信息进行压缩,并将压缩后的流量信息存储到外存中;在设备出现异常并重启后,将外存中存储的流量信息放入内存中,并将流量信息解压缩后显示在设备显示页面上。
需要说明的是,这里的第四时间周期仅是为了与上述的时间周期进行区分,并没有任何排序或表示大小的目的,该第四时间周期可以依据具体应用场景自行定义。
在本发明实施例中,可以添加一个时间定时器,例如,每隔5分钟将内存数据库中的流量信息压缩后转存到外存中,当设备出现异常,故障重启时,将外存中的流量信息取回内存后,解压显示到页面。这时在设备重启时就要消耗一段时间,而这段时间内的流量信息是没有的,我们可以填0,将10分钟、1小时或24小时的流量信息补全。扩展到刚刚开启流量信息监控时,如果收集的信息没到10分钟那么没到的时间段内的流量信息也填0补充完全,同理1小时、24小时也是一样的。
为了达到上述目的,本发明还提出了一种存储***01,如图2所示,该***包括:采集模块02、数据表建立模块03和第一存储模块04。
采集模块02,用于定时从内核中采集网关设备产生的流量信息。
数据表建立模块03,用于建立用于存储预设的不同时间段内的流量信息的多个不同的数据表。
第一存储模块04,用于将数据库中存储的流量信息根据预设的时间段存入相应的数据表中。
优选地,
该***还包括:分类模块05、第二存储模块06和索引建立模块07。
分类模块05,用于对采集的流量信息进行分类。
第二存储模块06,用于将分类后的流量信息根据分类存入数据库。
索引建立模块07,用于建立与分类相对应的数据库索引。
分类模块05对采集的流量信息进行分类是指:依据源网络协议IP地址和/或协议对流量信息进行分类。
其中,该协议包括:网络web协议、对等网络p2p协议和即时通讯协议。
优选地,数据表建立模块03建立用于存储预设的不同时间段内的流量信息的多个不同的数据表是指:
建立与不同的时间段相对应的时间段数据表,和/或建立在不同的时间段下与分类相对应的时段分类数据表。
优选地,第一存储模块04将采集的流量信息根据预设的时间段存入相应的数据表中是指:
每间隔预设的第一时间周期,从内核中采集的第一时间周期内的流量信息的存入第一时间段数据表中;并将第一时间段数据表中的以当前时刻为基准的非第一时间段内的流量信息删除。
每间隔预设的第二时间周期,将第一时间段数据表中存储的预设的第二时间周期内的流量信息存入第二时间段数据表中;并将第二时间段数据表中的以当前时刻为基准的非第二时间段内的流量信息删除。
每间隔预设的第三时间周期,将第二时间段数据表中存储的预设的第三时间周期内的流量信息存入第三时间段数据表中;并将第三时间段数据表中的以当前时刻为基准的非第三时间段内的流量信息删除。
其中,第一时间周期和第二时间周期小于第一时间段;第三时间周期小于第二时间段;第一时间段小于第二时间段;第二时间段小于第三时间段。
优选地,第一存储模块04将采集的流量信息根据预设的时间段存入相应的数据表中还指:
每间隔预设的第x时间周期,将从内核中采集的预设的第x时间周期内的与源IP地址相关的流量信息存入第a时间段第m分类数据表中,并将第a时间段第m分类数据表中的以当前时刻为基准的非第a时间段内的与源IP地址相关的流量信息删除;和/或将从内核中采集的预设的第x时间周期内的与协议相关的流量信息存入第a时间段第n分类数据表中,并将第a时间段第n分类数据表中的以当前时刻为基准的非第a时间段内的与协议相关的流量信息删除。
每间隔预设的第y时间周期,将数据库中存储的预设的第y时间周期内的与源IP地址相关的流量信息存入第b时间段第m分类数据表中,并将第b时间段第m分类数据表中的以当前时刻为基准的非第b时间段内的与源IP地址相关的流量信息删除;和/或将数据库中存储的预设的第y时间周期内的与协议相关的流量信息存入第b时间段第n分类数据表中,并将第b时间段第n分类数据表中的以当前时刻为基准的非第b时间段内的与协议相关的流量信息删除。
每间隔预设的第z时间周期,将数据库中存储的预设的第z时间周期内的与源IP地址相关的流量信息存入第c时间段第m分类数据表中,并将第c时间段第m分类数据表中的以当前时刻为基准的非第c时间段内的与源IP地址相关的流量信息删除;和/或将数据库中存储的预设的第z时间周期内的与协议相关的流量信息存入第c时间段第n分类数据表中,并将第c时间段第n分类数据表中的以当前时刻为基准的非第c时间段内的与协议相关的流量信息删除。
其中,第x时间周期和第y时间周期小于第a时间段;第z时间周期小于第b时间段;第a时间段小于第b时间段;第b时间段小于第c时间段。
优选地,数据表建立模块03还用于:
当仅建立了用于存储预设的不同时间段内的与源IP地址相关的流量信息的第m分类数据表时,将第m分类数据表中存储的与源IP地址相关的流量信息转化为与源IP地址相对应的与协议相关的流量信息。或者,
当仅建立了用于存储预设的不同时间段内的与协议相关的流量信息的第n分类数据表时,将第n分类数据表中存储的与协议相关的流量信息转化为与协议相对应的与源IP地址相关的流量信息。
优选地,该***还包括:第三存储模块08和显示模块09。
第三存储模块08,用于每间隔预设的第四时间周期,将内存中的数据库中的流量信息进行压缩,并将压缩后的流量信息存储到外存中;在设备出现异常并重启后,将外存中存储的流量信息放入内存中。
显示模块09,用于将流量信息解压缩后显示在设备显示页面上。
本发明提出了通过使用多张数据表,并可以适度的扩展多张数据表的存储累计流量信息的方法。通常的方法是设计一个大表来存储所有的累计流量信息,这样存储完用户所需要的信息后需要大量的存储容量,在***和查询累计流量信息时也浪费不少的时间。或者是只把累计流量的信息保存在内存中,这样设备重新启动后累计流量信息就没有了,根本达不到累计的效果。根据用户的需求来设置不同的多个数据表的方法,不但可以解决存储累计流量信息的问题,还可以减少存储累计流量信息的存储容量和减少***和删除累计流量信息数据的时间。从而就减少了大量的存储器的成本,大大的降低了设备本身的成本,也提高了对数据操作的速度。
同时,本发明方案又扩展了在每种数据库中按用户的需求建立数据表,这样不但可以整洁的存储流量信息还能够大大的提高数据库表***、删除和查询信息的速度,因为每个数据表里面的信息数据量比原来混着存的信息量变小了很多,这样操作数据信息的时间就缩短了,大大的提高了操作效率。
进一步第,本发明方案扩展了根据需求的动态变换,来动态变换存储方法的实施方案。例如,根据需求将源ip类型的存储方式转换为协议类型的存储方式,这一方案也能够方便快捷的删除和查询到所需的信息。大大的提高了操作效率。
最后,本发明方案增加了设备出现异常后将流量信息转存到外存,设备启动后再将外存的信息转存回内存的实施方案,这样就可以避免了当设备出现异常后重启时,累计流量信息丢失的错误。并且将重启这段时间的流量信息用零填充,这样就可以得到一个完整的累计流量信息趋势图了。
综上所述,本发明具有以下优势:
1、分多表来存储累计流量信息的方法,不但可以减少存储容量的大小还可以降低查询和***流量信息的速度,从而大大提高了设备的性能。
2、可以根据用户的需求来适当地按类型扩展多个存储数据库表,最终达到降低大量存储容量的目的和大大提高操作效率的目的。
3、进一步扩展到根据用户的需求来转换存储方式,做到更合适的按类型扩展多个存储数据表,最终达到降低大量存储容量的目的和大大提高操作效率的目的。
4、增加了设备出现异常重启后流量信息转存到外存,设备启动后再将外存的信息转存回内存,并且将重启这段时间的流量信息用零填充。最终能够得到一个完整的累计流量信息数据库表和趋势图。
需要说明的是,以上所述的实施例仅是为了便于本领域的技术人员理解而已,并不用于限制本发明的保护范围,在不脱离本发明的发明构思的前提下,本领域技术人员对本发明所做出的任何显而易见的替换和改进等均在本发明的保护范围之内。
Claims (14)
1.一种存储方法,其特征在于,所述方法包括:
定时从内核中采集网关设备产生的流量信息;
建立用于存储预设的不同时间段内的流量信息的多个不同的数据表;所述不同时间段为依次递增的不同时长;
将采集的所述流量信息根据预设的所述时间段存入相应的数据表中,其中,最短时长的时间段相应的数据表中的数据从采集的流量信息中获取,非最短时长的时间段相应的数据表中的数据从上一时长的时间段相应的数据表中获取。
2.如权利要求1所述的存储方法,其特征在于,
所述方法还包括:对采集的所述流量信息进行分类;将分类后的所述流量信息根据所述分类存入数据库,并建立与所述分类相对应的数据库索引;
所述对采集的所述流量信息进行分类包括:依据源网络协议IP地址和/或协议对所述流量信息进行分类;
其中,所述协议包括:网络web协议、对等网络p2p协议和即时通讯协议。
3.如权利要求2所述的存储方法,其特征在于,所述建立用于存储预设的不同时间段内的流量信息的多个不同的数据表包括:
建立与所述不同的时间段相对应的时间段数据表,和/或建立在所述不同的时间段下与所述分类相对应的时间段分类数据表。
4.如权利要求3所述的存储方法,其特征在于,所述将采集的所述流量信息根据预设的所述时间段存入相应的数据表中包括:
每间隔预设的第一时间周期,将从所述内核中采集的预设的第一时间周期内的所述流量信息存入第一时间段数据表中;并将所述第一时间段数据表中的以当前时刻为基准的非第一时间段内的所述流量信息删除;
每间隔预设的第二时间周期,将所述第一时间段数据表中存储的预设的第二时间周期内的所述流量信息存入第二时间段数据表中;并将所述第二时间段数据表中的以当前时刻为基准的非第二时间段内的所述流量信息删除;
每间隔预设的第三时间周期,将所述第二时间段数据表中存储的预设的第三时间周期内的所述流量信息存入第三时间段数据表中;并将所述第三时间段数据表中的以当前时刻为基准的非第三时间段内的所述流量信息删除;
其中,所述第一时间周期和所述第二时间周期小于所述第一时间段;所述第三时间周期小于所述第二时间段;所述第一时间段小于所述第二时间段;所述第二时间段小于所述第三时间段。
5.如权利要求3所述的存储方法,其特征在于,所述将采集的所述流量信息根据预设的所述时间段存入相应的数据表中还包括:
每间隔预设的第x时间周期,将从所述内核中采集的预设的所述第x时间周期内的与所述源IP地址相关的所述流量信息存入第a时间段第m分类数据表中,并将所述第a时间段第m分类数据表中的以当前时刻为基准的非第a时间段内的与所述源IP地址相关的所述流量信息删除;和/或将从所述内核中采集的预设的第x时间周期内的与所述协议相关的所述流量信息存入第a时间段第n分类数据表中,并将所述第a时间段第n分类数据表中的以当前时刻为基准的非第a时间段内的与所述协议相关的所述流量信息删除;
每间隔预设的第y时间周期,将所述第a时间段第m分类数据表中存储的预设的所述第y时间周期内的与所述源IP地址相关的所述流量信息存入第b时间段第m分类数据表中,并将所述第b时间段第m分类数据表中的以当前时刻为基准的非第b时间段内的与所述源IP地址相关的所述流量信息删除;和/或将所述第a时间段第n分类数据表中存储的预设的第y时间周期内的与所述协议相关的所述流量信息存入第b时间段第n分类数据表中,并将所述第b时间段第n分类数据表中的以当前时刻为基准的非第b时间段内的与所述协议相关的所述流量信息删除;
每间隔预设的第z时间周期,将所述第b时间段第m分类数据表中存储的预设的所述第z时间周期内的与所述源IP地址相关的所述流量信息存入第c时间段第m分类数据表中,并将所述第c时间段第m分类数据表中的以当前时刻为基准的非第c时间段内的与所述源IP地址相关的所述流量信息删除;和/或将所述第b时间段第n分类数据表中存储的预设的第z时间周期内的与所述协议相关的所述流量信息存入第c时间段第n分类数据表中,并将所述第c时间段第n分类数据表中的以当前时刻为基准的非第c时间段内的与所述协议相关的所述流量信息删除;
其中,所述第x时间周期和所述第y时间周期小于所述第a时间段;所述第z时间周期小于所述第b时间段;所述第a时间段小于所述第b时间段;所述第b时间段小于所述第c时间段。
6.如权利要求5所述的存储方法,其特征在于,所述方法还包括:
当仅建立了用于存储预设的不同时间段内的与所述源IP地址相关的流量信息的第m分类数据表时,将所述第m分类数据表中存储的与所述源IP地址相关的流量信息转化为与所述源IP地址相对应的与所述协议相关的流量信息;或者,
当仅建立了用于存储预设的不同时间段内的与所述协议相关的流量信息的第n分类数据表时,将所述第n分类数据表中存储的与所述协议相关的流量信息转化为与所述协议相对应的与所述源IP地址相关的流量信息。
7.如权利要求1所述的存储方法,其特征在于,所述方法还包括:每间隔预设的第四时间周期,将内存中的所述数据库中的流量信息进行压缩,并将压缩后的所述流量信息存储到外存中;在设备出现异常并重启后,将所述外存中存储的所述流量信息放入所述内存中,并将所述流量信息解压缩后显示在设备显示页面上。
8.一种存储***,其特征在于,所述***包括:采集模块、数据表建立模块和第一存储模块;
所述采集模块,用于定时从内核中采集网关设备产生的流量信息;
所述数据表建立模块,用于建立用于存储预设的不同时间段内的流量信息的多个不同的数据表;所述不同时间段为依次递增的不同时长;
所述第一存储模块,用于将采集的所述流量信息根据预设的所述时间段存入相应的数据表中,其中,最短时长的时间段相应的数据表中的数据从采集的流量信息中获取,非最短时长的时间段相应的数据表中的数据从上一时长的时间段相应的数据表中获取。
9.如权利要求8所述的存储***,其特征在于,所述***还包括:分类模块、第二存储模块和索引建立模块;
所述分类模块,用于对采集的所述流量信息进行分类;
所述第二存储模块,用于将分类后的所述流量信息根据所述分类存入数据库;
所述索引建立模块,用于建立与所述分类相对应的数据库索引;
所述分类模块对采集的所述流量信息进行分类是指:依据源网络协议IP地址和/或协议对所述流量信息进行分类;
其中,所述协议包括:网络web协议、对等网络p2p协议和即时通讯协议。
10.如权利要求9所述的存储***,其特征在于,所述数据表建立模块建立用于存储预设的不同时间段内的流量信息的多个不同的数据表是指:
建立与所述不同的时间段相对应的时间段数据表,和/或建立在所述不同的时间段下与所述分类相对应的时段分类数据表。
11.如权利要求10所述的存储***,其特征在于,所述第一存储模块将采集的所述流量信息根据预设的所述时间段存入相应的数据表中是指:
每间隔预设的第一时间周期,将从所述内核中采集的预设的第一时间周期内的所述流量信息存入第一时间段数据表中;并将所述第一时间段数据表中的以当前时刻为基准的非第一时间段内的所述流量信息删除;
每间隔预设的第二时间周期,将所述第一时间段数据表中存储的预设的第二时间周期内的所述流量信息存入第二时间段数据表中;并将所述第二时间段数据表中的以当前时刻为基准的非第二时间段内的所述流量信息删除;
每间隔预设的第三时间周期,将所述第二时间段数据表中存储的预设的第三时间周期内的所述流量信息存入第三时间段数据表中;并将所述第三时间段数据表中的以当前时刻为基准的非第三时间段内的所述流量信息删除;
其中,所述第一时间周期和所述第二时间周期小于所述第一时间段;所述第三时间周期小于所述第二时间段;所述第一时间段小于所述第二时间段;所述第二时间段小于所述第三时间段。
12.如权利要求10所述的存储***,其特征在于,所述第一存储模块将采集的所述流量信息根据预设的所述时间段存入相应的数据表中还包括:
每间隔预设的第x时间周期,将从所述内核中采集的预设的所述第x时间周期内的与所述源IP地址相关的所述流量信息存入第a时间段第m分类数据表中,并将所述第a时间段第m分类数据表中的以当前时刻为基准的非第a时间段内的与所述源IP地址相关的所述流量信息删除;和/或将从所述内核中采集的预设的第x时间周期内的与所述协议相关的所述流量信息存入第a时间段第n分类数据表中,并将所述第a时间段第n分类数据表中的以当前时刻为基准的非第a时间段内的与所述协议相关的所述流量信息删除;
每间隔预设的第y时间周期,将所述第a时间段第m分类数据表中存储的预设的所述第y时间周期内的与所述源IP地址相关的所述流量信息存入第b时间段第m分类数据表中,并将所述第b时间段第m分类数据表中的以当前时刻为基准的非第b时间段内的与所述源IP地址相关的所述流量信息删除;和/或将所述第a时间段第n分类数据表中存储的预设的第y时间周期内的与所述协议相关的所述流量信息存入第b时间段第n分类数据表中,并将所述第b时间段第n分类数据表中的以当前时刻为基准的非第b时间段内的与所述协议相关的所述流量信息删除;
每间隔预设的第z时间周期,将所述第b时间段第m分类数据表中存储的预设的所述第z时间周期内的与所述源IP地址相关的所述流量信息存入第c时间段第m分类数据表中,并将所述第c时间段第m分类数据表中的以当前时刻为基准的非第c时间段内的与所述源IP地址相关的所述流量信息删除;和/或将所述第b时间段第n分类数据表中存储的预设的第z时间周期内的与所述协议相关的所述流量信息存入第c时间段第n分类数据表中,并将所述第c时间段第n分类数据表中的以当前时刻为基准的非第c时间段内的与所述协议相关的所述流量信息删除;
其中,所述第x时间周期和所述第y时间周期小于所述第a时间段;所述第z时间周期小于所述第b时间段;所述第a时间段小于所述第b时间段;所述第b时间段小于所述第c时间段。
13.如权利要求12所述的存储***,其特征在于,所述数据表建立模块还用于:
当仅建立了用于存储预设的不同时间段内的与所述源IP地址相关的流量信息的第m分类数据表时,将所述第m分类数据表中存储的与所述源IP地址相关的流量信息转化为与所述源IP地址相对应的与所述协议相关的流量信息;或者,
当仅建立了用于存储预设的不同时间段内的与所述协议相关的流量信息的第n分类数据表时,将所述第n分类数据表中存储的与所述协议相关的流量信息转化为与所述协议相对应的与所述源IP地址相关的流量信息。
14.如权利要求8所述的存储***,其特征在于,所述***还包括:第三存储模块和显示模块;
所述第三存储模块,用于每间隔预设的第四时间周期,将内存中的所述数据库中的流量信息进行压缩,并将压缩后的所述流量信息存储到外存中;在设备出现异常并重启后,将所述外存中存储的所述流量信息放入所述内存中;
所述显示模块,用于将所述流量信息解压缩后显示在设备显示页面上。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510481866.3A CN105162622B (zh) | 2015-08-03 | 2015-08-03 | 一种存储方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510481866.3A CN105162622B (zh) | 2015-08-03 | 2015-08-03 | 一种存储方法和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105162622A CN105162622A (zh) | 2015-12-16 |
CN105162622B true CN105162622B (zh) | 2019-02-12 |
Family
ID=54803385
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510481866.3A Active CN105162622B (zh) | 2015-08-03 | 2015-08-03 | 一种存储方法和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105162622B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108108402B (zh) * | 2017-12-07 | 2020-07-17 | 泰康保险集团股份有限公司 | 数据项释义更新方法和装置 |
CN110347661A (zh) * | 2019-07-05 | 2019-10-18 | 北京红山信息科技研究院有限公司 | 数据源准实时入库的方法、装置、服务器和存储介质 |
CN110795427B (zh) * | 2019-09-27 | 2022-10-11 | 苏宁云计算有限公司 | 数据分离存储方法、装置、计算机设备和存储介质 |
CN111625541A (zh) * | 2020-05-11 | 2020-09-04 | 紫光云技术有限公司 | 一种弹性公网ip按流量计量的方法 |
CN111897816B (zh) * | 2020-07-16 | 2024-04-02 | 中国科学院上海微***与信息技术研究所 | 卫星间计算信息的交互方法及其应用的信息表的生成方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101247271A (zh) * | 2008-03-24 | 2008-08-20 | 中兴通讯股份有限公司 | 性能数据的存储方法和装置 |
CN101739455A (zh) * | 2009-12-24 | 2010-06-16 | 北京世纪互联宽带数据中心有限公司 | 一种流媒体点播的信息分析方法和装置 |
CN101790257A (zh) * | 2009-01-22 | 2010-07-28 | 大唐移动通信设备有限公司 | 一种存储数据的方法和网管*** |
CN103458456A (zh) * | 2013-08-27 | 2013-12-18 | 中国科学院信息工程研究所 | 基于移动终端Wi-Fi数据的用户行为检测方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8850137B2 (en) * | 2010-10-11 | 2014-09-30 | Cisco Technology, Inc. | Memory subsystem for counter-based and other applications |
-
2015
- 2015-08-03 CN CN201510481866.3A patent/CN105162622B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101247271A (zh) * | 2008-03-24 | 2008-08-20 | 中兴通讯股份有限公司 | 性能数据的存储方法和装置 |
CN101790257A (zh) * | 2009-01-22 | 2010-07-28 | 大唐移动通信设备有限公司 | 一种存储数据的方法和网管*** |
CN101739455A (zh) * | 2009-12-24 | 2010-06-16 | 北京世纪互联宽带数据中心有限公司 | 一种流媒体点播的信息分析方法和装置 |
CN103458456A (zh) * | 2013-08-27 | 2013-12-18 | 中国科学院信息工程研究所 | 基于移动终端Wi-Fi数据的用户行为检测方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105162622A (zh) | 2015-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105162622B (zh) | 一种存储方法和*** | |
CN102761627B (zh) | 基于终端访问统计的云网址推荐方法及***及相关设备 | |
CN105608117B (zh) | 一种信息推荐方法及装置 | |
US10747951B2 (en) | Webpage template generating method and server | |
CN109002484B (zh) | 一种用于顺序消费数据的方法及*** | |
JP4832061B2 (ja) | コンテンツ収集装置およびコンテンツ収集システム | |
CN103942210A (zh) | 海量日志信息的处理方法、装置与*** | |
US20130185429A1 (en) | Processing Store Visiting Data | |
CN111782692B (zh) | 一种频率控制方法及装置 | |
CN101247271A (zh) | 性能数据的存储方法和装置 | |
CN110674101B (zh) | 文件***的数据处理方法、装置和云服务器 | |
CN106326280B (zh) | 数据处理方法、装置及*** | |
CN111143158A (zh) | 一种监控数据实时存储方法、***、电子设备及存储介质 | |
CN111258973A (zh) | Redis慢日志的存储、展示方法、装置、设备和介质 | |
CN113961573B (zh) | 一种时序数据库查询方法和查询*** | |
CN105279226A (zh) | 一种基于大数据的数据监控方法和设备 | |
CN114398520A (zh) | 数据检索方法、***、装置、电子设备及存储介质 | |
CN110543410A (zh) | 一种处理集群指标的方法、查询集群指标的方法和装置 | |
CN104915376A (zh) | 一种云存储中文件的归档压缩方法 | |
CN115525603A (zh) | 存储统计方法、装置、计算机可读存储介质与ai设备 | |
KR20160097502A (ko) | 이엠에스 서버 및 이의 로그 데이터 관리 방법 | |
CN106599005A (zh) | 一种数据归档方法及装置 | |
CN114969058A (zh) | 一种数据更新方法、装置、设备、存储介质 | |
JP4717106B2 (ja) | フロー情報処理装置及びネットワークシステム | |
CN114417200A (zh) | 网络数据的采集方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |