一种基于中间表的分布式报表系统的制作方法

xiaoxiao2020-7-23  4

【知识产权代理】【专利服务】Tel:18215660330

专利名称:一种基于中间表的分布式报表系统的制作方法
技术领域
本发明是一种基于中间表的分布式报表系统,属于计算机系统集成及应用技术领域,用于网络安全集中管理平台软件中大事件量报表处理技术。
背景技术
随着网络环境的发展,规模的扩大,网络安全集中管理平台软件系统的应用也越来越广泛和深入。这类软件系统通常都会通过收取网络环境中各种设备的运行、访问或告警日志,包括各种路由器、交换机、防火墙、VPN、存储设备等,来分析、预告和展现网络环境中的安全程度。而由于网络环境各种设备的不断增加,设备类型的不断丰富,网络安全集中管理平台软件系统所需要收集的日志记录数量也快速增长。由于日志记录数量之大,不可能要求管理员逐一对每一条日志都进行查看分析, 那么作为管理员如何能够掌握日志的基本情况从而了解网络环境的状态和安全水平呢?查看统计分析报表就是一个必然的需求。所谓统计分析报表,也就是说并不是对日志记录的简单罗列的明细报表,而是根据管理员指定的一些条件(分组统计、排序、过滤条件等),对原始的日志记录进行分析,之后呈现出统计结果的报表才是有意义的。对近似海量数据的统计分析从来都不是一件轻松的任务,对日志记录的分析同样如此。由于日志记录的数量巨大,以往对原始记录的统计分析总是会有诸多的限制,往往在统计的速度与实时性之间不能兼顾。如果要求尽快得到统计结果,那么分析的原始数据时间范围就不能太大,往往只能是几小时内的数据;如果要求实时性尽量高,那么可能就需要较长的时间进行统计,如果分析的字段较多这个时间往往可能会超过一天。另外,由于日志记录往往都具有较多的字段,在统计分析时也往往会限制使用的字段,通常不会将事件所有的字段作为可选择统计字段,而仅是将若干通用和普遍认为重要的字段纳入可统计的范围,从而保证一定的统计效率和时间。

发明内容
本发明正是针对上述现有技术状况而设计提供了一种基于中间表的分布式报表系统,其目的是提高在大规模事件处理的环境下报表系统的处理效率。本发明通过采用引入中间表对原始的大规模事件进行实时的分阶段统计的方式解决在大规模事件处理环境下对原始事件生成统计报表性能不佳的问题。通过预定义一些通用的中间表,对原始事件进行分类和实时统计,在生成统计报表时直接使用中间表中的统计数据,通过减少输入数据的规模,从而大大减少生成报表的时间和对系统资源的占用。本发明的目的是通过以下技术方案来实现的该种基于中间表的分布式报表系统,包括作为宿主的服务器和网络设备,其特征在于该系统包括中间表管理单元A、报表运行管理单元B和管理平台服务单元C,其中中间表管理单元A包括中间表文件管理模块,本模块负责对存储于文件系统中的中间表描述文件进行读取,并存储于内存中,以供其他模块使用; 中间表初始化模块,本模块由报表运行管理单元触发,负责将中间表文件管理模块加载的所有中间表描述文件的内容转化为计算机能够理解的对象形式,逐个初始化,本丰吴块会将初始化后的所有的中间表对象保存在内存中,在系统运彳丁中随时调用;中间表对象中定义如下内容属性说明表名中间表在数据库中建表使用的名称;名称在管理中心系统平台中识别中间表的名称;运行间隔中间表进行一次统计与下一次统计之间的时间,单位为分钟,最小值为 I分钟;包含的字段中间表中所包含的全部字段,管理中心系统平台根据中间表制作报表时,所能使用的字段范围;所有选择作为中间表的字段都会在组装统计SQL语句时被用作分组字段,并创建索引;每个中间表会自动包括事件量、发送流量、接收流量和总流量作为每次统计的统计值保存在中间表中,并提供给制作报表时使用;条件中间表进行统计时选择的事件范围;中间表建表模块,本模块负责组装中间表定义的建表SQL语句,并执行建表过程,也即执行创建表SQL语句,在数据库中创建对应的数据表;中间表统计模块,本模块负责组装中间表的统计SQL语句,在报表系统的调度过程中,被报表运行管理单元调用,执行统计工作,并将统计结果写入中间表对应的数据库中的数据表中,也即执行统计SQL语句;管理平台服务单元B作为报表系统的支撑单元存在,并不直接完成报表系统的功能,而是提供报表系统所需要的部分基础功能,它包括文件系统访问模块,本模块提供访问计算机文件系统的统一接口和方法,提供的方法有读取文件、存储文件和删除文件;本模块用于中间表文件管理模块调用文件系统中的中间表表述文件,以规范报表系统对文件系统的使用;数据库访问模块,本模块提供访问数据库的统一接口和方法,避免将获取数据库连接的信息(用户名、密码、地址等)散落在报表系统的各处,造成保密信息的泄露和更改数据库信息时的不便,提供的方法有创建数据库表和向数据库表中插入数据;报表运行管理单元C是报表系统的核心组成部分,通过调度中间表管理单元A中的中间表初始化管理模块、中间表建表模块、中间表统计模块和管理平台服务单元B的数据库访问模块,完成调用中间表管理单元进行初始化、周期性调用中间表管理单元的中间表统计模块执行中间表统计动作、通过管理平台服务单元访问中间表对应的数据库表提供报表数据。报表运行管理单兀C包含一个分布式部署管理模块,该模块用于注册和管理分布部署的局部报表系统。该种分布式报表处理机制,即可以通过将各个不同的中间表分布部署在不同的服务器上进行处理和统计,从而将负载分摊到各个不同的服务器上,从而在不降低报表系统处理能力的前提下,能够有效的降低报表系统对管理中心的系统平台所在的服务器的系统资源的占用。本发明所述报表系统主要作为安全管理平台系统的一个服务模块出现,也可以独立于管理平台系统单独运行,用于提供报表的统计、运行、存储服务。不论管理平台还是独立报表服务平台最终均安装于高性能硬件主机内,以服务器方式运行于网络中。另外,本发明系统还可以通过分布式部署管理模块与局部报表系统进行数据的流传,该局部报表系统是本发明系统在分布式部署时的子系统,可以将一个局部报表系统看作一个完整的基于中间表的报表系统,结构与本发明系统相同。本发明所述基于中间表的报表系统的主要设计原理即为通过持续地周期性地使用具有代表性的中间表对原始事件进行统计,当需要生成报表时,直接在中间表中计算获取最终数据,以此来获得生成报表所需的实时性与性能之间最好的平衡。本发明技术方案的积极效果是 本发明所述系统的实现,在一定程度上可以较好地解决大规模事件报表在实时性和统计速度之间的矛盾。由于采用中间表的统计方式,每隔一段较短的时间,系统即会在后台自动按照中间表的设计进行中间统计运算,从而有效保证了数据的实时性;另一方面,由于进行了中间统计运算,将大规模的源事件数据进行了有效的统计合并,缩减了报表运行时的数据规模,从而可以有效地改善报表的统计时间。另外,由于中间表的设计几乎不受太多限制,因此用户可以根据实际的需要设计不同的中间表,从而使得参与统计分析的事件属性大大增加,而不受人为的限制。


图I为本发明系统的组成示意2为本发明系统的初始化流程的软件流程3为本发明系统的统计调度流程的软件流程4为本发明系统的报表生成流程的软件流程5为本发明系统的分布式部署流程的软件流程6为本发明系统的局部报表系统注册流程的软件流程图
具体实施例方式以下将结合附图和实施例对本发明系统作进一步地详述参见附图I所示,该种基于中间表的分布式报表系统,包括作为宿主的服务器和网络设备,其特征在于该系统包括中间表管理单元A、报表运行管理单元B和管理平台服务单元C,其中中间表管理单元A包括中间表文件管理模块1,本模块负责对存储于文件系统中的中间表描述文件进行读取,并存储于内存中,以供其他模块使用;中间表初始化模块2,本模块由报表运行管理单元触发,负责将中间表文件管理模块I加载的所有中间表描述文件的内容转化为计算机能够理解的对象形式,逐个初始化,本丰吴块会将初始化后的所有的中间表对象保存在内存中,在系统运彳丁中随时调用;
中间表对象中定义如下内容属性说明表名中间表在数据库中建表使用的名称;名称在管理中心系统平台中识别中间表的名称;运行间隔中间表进行一次统计与下一次统计之间的时间,单位为分钟,最小值为I分钟;包含的字段中间表中所包含的全部字段,管理中心系统平台根据中间表制作报表时,所能使用的字段范围;所有选择作为中间表的字段都会在组装统计SQL语句时被用作分组字段,并创建 索引;每个中间表会自动包括事件量、发送流量、接收流量和总流量作为每次统计的统计值保存在中间表中,并提供给制作报表时使用;条件中间表进行统计时选择的事件范围;中间表建表模块3,本模块负责组装中间表定义的建表SQL语句,并执行建表过程,也即执行创建表SQL语句,在数据库中创建对应的数据表;中间表统计模块4,本模块负责组装中间表的统计SQL语句,在报表系统的调度过程中,被报表运行管理单元调用,执行统计工作,并将统计结果写入中间表对应的数据库中的数据表中,也即执行统计SQL语句;管理平台服务单元B包括文件系统访问模块5,本模块提供访问计算机文件系统的统一接口和方法,提供的方法有读取文件、存储文件和删除文件;本模块用于中间表文件管理模块I调用文件系统中的中间表表述文件8,以规范报表系统对文件系统的使用;数据库访问模块6,本模块提供访问数据库9的统一接口和方法,提供的方法有创建数据库表和向数据库表中插入数据;报表运行管理单元C通过调度中间表管理单元A中的中间表初始化管理模块2、中间表建表模块3、中间表统计模块4和管理平台服务单元B的数据库访问模块6,完成调用中间表管理单元进行初始化、周期性调用中间表管理单元的中间表统计模块执行中间表统计动作、通过管理平台服务单元访问中间表对应的数据库表提供报表数据。 报表运行管理单兀C包含一个分布式部署管理模块7,该模块7用于注册和管理分布部署的局部报表系统。基于中间表的分布式报表系统使用Java编程语言实现,以软件的形式作为安全管理平台系统的一个服务模块出现,同时也可以独立于管理平台系统单独运行。不论管理平台还是独立报表服务平台,最终管理平台和报表系统均安装于高性能的硬件计算机主机内,以服务器方式运行于网络中。报表系统需要辅以安全管理平台系统提供防火墙、IDS、主机、应用系统、网络设备等发送的、经过安全管理平台引擎归一化处理后的事件作为源数据进行运算和统计。如图2 6所示,本发明所述基于中间表的报表系统的工作过程是由初始化流程、统计调度流程、报表生成流程和分布式部署流程组成。
初始化流程初始化流程在报表系统启动时,或报表系统随管理平台一同启动时进行。I.读取中间表描述文件2解析中间表描述文件,并存储在内存中3.根据中间表定义,创建中间表对应的真实数据表流程图见图2所示。统计调度流程统计调度流程也即报表系统的核心流程,即按照中间表定义的字段和轮询间隔循环进行统计,统计调度流程每间隔一分钟,检查内存中每一个中间表定义,执行如下的过 程:I.从内存中读取中间表定义;2.检查中间表定义的轮询间隔是否已经到达,如果还没有则忽略本中间表;3.如果已经到轮询间隔,则从中间表定义中获取统计方法定义;4.针对原始事件表,执行统计方法,将统计结果写入中间表对应的真实数据表中;5.本中间表本次统计调度完成,执行下一中间表的统计调度如上述,统计调度流程每间隔一分钟检查执行一次中间表统计调度,故也即中间表的最小轮询间隔为一分钟。流程图见附图3所示。报表系统的目的是生成有关于事件的统计报表,也即报表应统计并显示依据某一个或某几个字段条件计算的事件量、发送流量、接受流量或总流量这几个重要的数据指标,因此每个中间表会自动包括事件量、发送流量、接收流量和总流量作为每次统计的统计值保存在中间表中,并在每次统计调度时自动计算这4个字段的值。举例说明一个中间表的统计调度流程,用以解释步骤4中具体的统计设计。假定本中间表包含字段源地址、等级、动作、事件量、发送流量、接受流量、总流量在本次统计与上次统计之间的时间段内,系统接收并保存了数条原始事件,如下
权利要求
1.一种基于中间的表分布式报表系统,包括作为宿主的服务器和网络设备,其特征在于该系统包括中间表管理单元A、报表运行管理单元B和管理平台服务单元C,其中 中间表管理单元A包括 中间表文件管理模块(I),本模块负责对存储于文件系统中的中间表描述文件进行读取,并存储于内存中,以供其他模块使用; 中间表初始化模块(2),本模块由报表运行管理单元触发,负责将中间表文件管理模块(I)加载的所有中间表描述文件的内容转化为计算机能够理解的对象形式,逐个初始化,本丰吴块会将初始化后的所有的中间表对象保存在内存中,在系统运彳丁中随时调用; 中间表对象中定义如下内容 属性说明 表名中间表在数据库中建表使用的名称; 名称在管理中心系统平台中识别中间表的名称; 运行间隔中间表进行一次统计与下一次统计之间的时间,单位为分钟,最小值为I分钟; 包含的字段中间表中所包含的全部字段,管理中心系统平台根据中间表制作报表时,所能使用的字段范围; 所有选择作为中间表的字段都会在组装统计SQL语句时被用作分组字段,并创建索弓I ; 每个中间表会自动包括事件量、发送流量、接收流量和总流量作为每次统计的统计值保存在中间表中,并提供给制作报表时使用; 条件中间表进行统计时选择的事件范围; 中间表建表模块(3),本模块负责组装中间表定义的建表SQL语句,并执行建表过程,也即执行创建表SQL语句,在数据库中创建对应的数据表; 中间表统计模块(4),本模块负责组装中间表的统计SQL语句,在报表系统的调度过程中,被报表运行管理单元调用,执行统计工作,并将统计结果写入中间表对应的数据库中的数据表中,也即执行统计SQL语句; 管理平台服务单元B包括 文件系统访问模块(5),本模块提供访问计算机文件系统的统一接口和方法,提供的方法有读取文件、存储文件和删除文件; 本模块用于中间表文件管理模块(I)调用文件系统中的中间表表述文件(8),以规范报表系统对文件系统的使用; 数据库访问模块(6),本模块提供访问数据库(9)的统一接口和方法,提供的方法有创建数据库表和向数据库表中插入数据; 报表运行管理单元C通过调度中间表管理单元A中的中间表初始化管理模块(2)、中间表建表模块(3)、中间表统计模块(4)和管理平台服务单元B的数据库访问模块(6),完成调用中间表管理单元进行初始化、周期性调用中间表管理单元的中间表统计模块执行中间表统计动作、通过管理平台服务单元访问中间表对应的数据库表提供报表数据。
2.根据权利要求I所述的基于中间表的分布式报表系统,其特征在于报表运行管理单兀C包含一个分布式部署管理模块(7),该模块(7)用于注册和管理分布部署的局部报表系统(10)。
全文摘要
本发明是一种基于中间表的分布式报表系统,本发明通过采用引入中间表对原始的大规模事件进行实时的分阶段统计的方式解决在大规模事件处理环境下对原始事件生成统计报表性能不佳的问题。通过预定义一些通用的中间表,对原始事件进行分类和实时统计,在生成统计报表时直接使用中间表中的统计数据,通过减少输入数据的规模,从而大大减少生成报表的时间和对系统资源的占用。
文档编号G06F17/30GK102929899SQ20111046191
公开日2013年2月13日 申请日期2011年12月31日 优先权日2011年12月31日
发明者朱震 申请人:网神信息技术(北京)股份有限公司

最新回复(0)