著录项信息
专利名称 | 日志转储与审计的方法和系统 |
申请号 | CN200810247550.8 | 申请日期 | 2008-12-30 |
法律状态 | 暂无 | 申报国家 | 中国 |
公开/公告日 | 2009-06-10 | 公开/公告号 | CN101453378 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L12/24 | IPC分类号 | H;0;4;L;1;2;/;2;4;;;H;0;4;L;1;2;/;2;6查看分类表>
|
申请人 | 杭州华三通信技术有限公司 | 申请人地址 | 浙江省杭州市滨江区长河路466号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 新华三技术有限公司 | 当前权利人 | 新华三技术有限公司 |
发明人 | 钟果;杨静涛 |
代理机构 | 北京德琦知识产权代理有限公司 | 代理人 | 宋志强;麻海明 |
摘要
本发明公开了具有较强通用性和扩展性的日志转储与审计的方法和系统。所述方法包括:建立配置文件,在配置文件中记录待转储日志类型的名称、每个日志类型对应的待转储字段以及每个待转储字段的显示名称;在转储日志时,根据所述配置文件的记录,查找与待转储日志类型匹配的日志表,将查找到的日志表中的待转储字段保存到日志文件中;在审计日志时,查找与审计条件匹配的日志文件,根据所述配置文件的记录,对查找到的日志文件进行解析并显示。
日志转储与审计的方法和系统 \n技术领域\n[0001] 本发明涉及网络日志处理技术,具体涉及日志转储与审计的方法和系统。 背景技术\n[0002] 目前,企业通常会为员工提供网络连接,为了保证企业合理利用Internet资源,防止企业信息外泄,通常会将员工的上网行为记录在网络日志(Log)中。通过对网络日志进行审计,可以知道员工是否存在滥用企业网络资源的行为、员工使用网络都做了些什么、以及员工对网络及公共服务器的访问情况。 \n[0003] 网络日志是保存在日志数据库中的。日志数据库的容量有限,但网络日志又是海量的,这就需要定期将网络日志转储,以保护上网记录。其中,日志转储就是将日志从日志数据库中导出并保存在日志文件中。现有的转储操作一般都依赖于日志数据库的导出功能。 \n[0004] 在日志转储后,需要提供对转储日志的审计方法,令网管可以查看网络日志内容。\n其中,日志审计就是显示日志文件内容。现有的审计操作有两种方式:一是将转储的日志文件通过日志数据库的导入功能导入日志数据库中,通过日志数据库原有的软件界面对日志进行显示;二是采用专门的文件审计工具,直接对日志文件内容进行解析和显示。 [0005] 但是,现有的日志转储与审计的方案存在如下缺陷: \n[0006] 首先,不同类型的日志保存在不同的日志表中,如果希望导出A、B、C三类日志,就需要针对这三类日志设置导出功能。设置导出功能是通过系统编程实现的,当编程完毕时,需要对编程代码进行重新编译,编译成功后, 日志数据库支持A、B、C三类日志的导出。当需要新增一种日志类型时,必须针对该新增的日志类型新增对应的导出功能,然后再次编译,编译成功后,日志数据库得以支持新日志类型的导出。同理,采用日志数据库审计导出的日志文件时,也需要针对每类日志设置导入功能。如果采用专门的文件审计工具审计日志文件,也需要为每类日志设置导入功能,而且还需要将日志数据库中的字段名解析为显示名称,例如将日志数据库中的字段名“start_time”解析为“开始时间”,然后采用显示名称显示各字段,否则审计人员将无法看懂显示的日志文件。 \n[0007] 可见,无论是采用日志数据库实现转储和审计,或者采用文件审计工具实现审计,如果新增一种日志类型,必须针对新增的日志类型开发导出部分和审计部分的功能,以适配新的日志类型,因此现有的日志转储与审计方案通用性和扩展性都不理想。 [0008] 其次,通常每类日志被转储到一个日志文件中,因此会出现日志文件巨大的情况。\n如果采用日志数据库或文件审计工具直接将如此之大的文件导入系统,不仅操作速度慢,导入时间长,而且极大地消耗系统资源,且导入时出错几率大。 \n发明内容\n[0009] 有鉴于此,本发明提供了一种日志转储与审计方法,能够解决转储与审计的日志适配问题,解决现有技术中日志转储与审计方案的通用性及扩展性差的缺陷。 [0010] 该方法包括: \n[0011] 建立配置文件,在配置文件中记录待转储日志类型的名称、每个日志类型对应的待转储字段以及每个待转储字段的显示名称; \n[0012] 在转储日志时,根据所述配置文件记录的待转储日志类型和待转储字段,查找与待转储日志类型匹配的日志表,将查找到的日志表中的待转储字段保存到日志文件中; [0013] 在审计日志时,查找与审计条件匹配的日志文件,根据所述配置文件记录的待转储字段的显示名称,对查找到的日志文件进行解析并显示。 \n[0014] 较佳地,该方法进一步包括:在增加日志类型时,将新增日志类型的名称、对应的待转储字段以及待转储字段的显示名称添加到所述配置文件中; \n[0015] 在删除日志类型时,将待删除日志类型的名称、对应的待转储字段以及待转储字段的显示名称从所述配置文件中删除。 \n[0016] 较佳地,该方法进一步包括:将配置文件注册,采用注册的配置文件内容执行转储和审计操作。 \n[0017] 其中,所述日志表为小时日志表,每个小时日志表存储预设时间长度内的日志; [0018] 所述根据所述配置文件记录的待转储日志类型和待转储字段,查找与待转储日志类型匹配的日志表包括:逐一对配置文件中的各待转储日志类型进行处理;处理当前待转储日志类型时,查找与当前待转储日志类型匹配的各小时日志表。 \n[0019] 其中,所述查找与当前待转储日志类型匹配的各小时日志表为:设置欲转储日志所在时间范围,在该时间范围内的小时日志表中查找与当前待转储日志类型匹配的小时日志表;或者在前一天的小时日志表中查找与当前待转储日志类型匹配的小时日志表。 [0020] 较佳地,预设日志文件的容量限制; \n[0021] 所述将查找到的日志表中的待转储字段保存到日志文件中的步骤包括: [0022] 根据所述日志文件的容量限制,将一个日志表中的日志转储到一个或多个日志文件中,建立日志文件的名称与该日志文件所存储日志的日志类型和日志时间之间的第一关联关系。 \n[0023] 其中,所述预设日志文件的容量限制包括:设置日志文件的转储时间长度和/或最大日志条数; \n[0024] 当根据所述转储时间长度将日志表中的日志转储到日志文件中时,每个日志文件最多允许存储一个转储时间长度内的日志; \n[0025] 当根据所述最大日志条数将日志表中的日志转储到日志文件中时,每个日志文件允许存储的日志条数小于或等于所述最大日志条数; \n[0026] 当根据所述转储时间长度和最大日志条数将日志表中的日志转储到日志文件中时,每个日志文件最多允许存储一个转储时间长度内的日志,当一个转储时间长度内的日志数量大于所述最大日志条数时,根据所述最大日志条数,将该转储时间长度内的日志转储到多个日志文件中。 \n[0027] 较佳地,所述建立日志文件的名称与该日志文件所存储日志的日志类型和日志时间之间的第一关联关系为: \n[0028] 设置日志文件的名称包括该日志文件所存储日志的日志类型和时间范围,同时记录日志文件的名称与该日志文件中第一个日志的开始时间之间的映射关系。 [0029] 其中,所述在审计日志时,查找与审计条件匹配的日志文件,根据所述配置文件记录的显示名称,对查找到的日志文件进行解析并显示,包括: \n[0030] c1、根据所述第一关联关系,查找与审计条件中的待审计日志类型和待审计时间范围匹配的日志文件; \n[0031] c2、从查找到的各日志文件中获取日志; \n[0032] c3、获取所述待审计日志类型对应的待转储字段的显示名称,动态生成包含所获取显示名称的审计框架,将在所述步骤c2中获取的日志显示在生成的审计框架中。 [0033] 较佳地,所述审计条件进一步包括最多查询条数; \n[0034] 所述步骤c2包括:根据审计条件中的最多查询条数,从查找的各日志文件中获取日志,当获取的日志数量达到所述最多查询条数时,中止获取日志操作,记录最后一个被获取日志的位置; \n[0035] 所述步骤c3之后,进一步包括:当接收到继续审计命令时,返回执行所述步骤c2,并在执行步骤c2时从所述最后一个被获取日志的位置开始获取。 \n[0036] 较佳地,所述将查找到的日志表中的待转储字段保存到日志文件中的步 骤,进一步包括: \n[0037] 将日志表中的日志保存到日志文件之后,以预设时间长度为单位,将单位时间内的日志文件打包为压缩包; \n[0038] 对于每个压缩包,获取该压缩包所存储日志的日志类型对应的待转储字段的显示名称,将获取的显示名称以及该压缩包中各日志文件对应的第一关联关系输出到索引文件并将索引文件加入所述压缩包;建立压缩包的名称与该压缩包所存储日志的日志类型和日志时间之间的第二关联关系; \n[0039] 所述步骤c1包括: \n[0040] 根据所述第二关联关系,查找与审计条件中的待审计日志类型和待审计时间范围匹配的压缩包; \n[0041] 根据压缩包内索引文件记录的所述第一关联关系,在压缩包中查找与审计条件中的待审计时间范围匹配的日志文件。 \n[0042] 所述步骤c1之后,步骤c2之前,进一步包括:将查找到的日志文件按时间排序。 [0043] 较佳地,定期触发转储日志的操作。 \n[0044] 本发明还提供了一种日志转储与审计系统,能够解决转储与审计的日志适配问题,解决现有技术中日志转储与审计方案的通用性及扩展性差的缺陷。 \n[0045] 该系统包括配置文件存储单元、转储单元、审计单元和日志文件存储单元; [0046] 所述配置文件存储单元,用于读取来自外部的配置文件并存储;所述配置文件记录有待转储日志类型的名称、每个日志类型对应的待转储字段以及每个待转储字段的显示名称; \n[0047] 所述转储单元,用于在转储日志时,从所述配置文件存储单元读取配置文件,根据读取的配置文件记录的待转储日志类型和待转储字段,查找与待转储日志类型匹配的日志表,将查找到的日志表中的待转储字段保存到日志文件中,将日志文件存储到所述日志文件存储单元; \n[0048] 所述审计单元,用于在审计日志时,在所述日志文件存储单元中查找与审计条件匹配的日志文件,根据所述配置文件记录的显示名称,对查找到的日志文件进行解析并显示; \n[0049] 所述日志文件存储单元,用于存储日志文件。 \n[0050] 较佳地,所述配置文件存储单元进一步用于,在接收到新增日志类型的注册命令时,读取来自外部的新增日志类型的名称、对应的待转储字段以及待转储字段的显示名称并存储; \n[0051] 在接收到已有日志类型的删除命令时,将待删除日志类型的名称、对应的待转储字段以及待转储字段的显示名称从本单元删除。 \n[0052] 其中,所述转储单元包括日志表查找模块、日志转储模块和关联模块; [0053] 所述日志表查找模块,用于在转储日志时,从所述配置文件存储单元读取配置文件,根据读取的配置文件记录的待转储日志类型和待转储字段,查找与待转储日志类型匹配的日志表; \n[0054] 所述日志转储模块,用于对所述日志表查找模块查找到的日志表进行转储处理;\n转储时,根据日志文件的容量限制,将一个日志表中的日志转储到一个或多个日志文件中,将转储得到的日志文件存储到所述日志文件存储单元; \n[0055] 所述关联模块,用于在所述日志转储模块将日志转储到日志文件中后,建立转储获得的日志文件的名称与该日志文件所存储日志的日志类型和日志时间之间的第一关联关系,将该第一关联关系存储到所述日志文件存储单元中。 \n[0056] 其中,所述日志文件的容量限制采用设置日志文件的转储时间长度和/或最大日志条数实现; \n[0057] 所述日志转储模块进一步用于,当根据所述转储时间长度进行转储时,每个日志文件最多允许存储一个转储时间长度内的日志;当根据所述最大日志条数进行转储时,每个日志文件允许存储的日志条数小于或等于所述最大日志条数;当根据所述转储时间长度和最大日志条数进行转储时,每个日志 文件最多允许存储一个转储时间长度内的日志,当一个转储时间长度内的日志数量大于所述最大日志条数时,根据所述最大日志条数,将该转储时间长度内的日志转储到多个日志文件中。 \n[0058] 其中,所述关联模块为转储获得的日志文件命名,日志文件的名称包括该日志文件所存储日志的日志类型和时间范围,同时记录日志文件的名称与该日志文件中第一个日志的开始时间之间的映射关系。 \n[0059] 其中,所述审计单元包括日志查找模块和审计显示模块; \n[0060] 所述日志查找模块,用于根据所述第一关联关系,在所述日志文件存储单元中查找与审计条件中的待审计日志类型和待审计时间范围匹配的日志文件,从查找到的各日志文件中获取日志; \n[0061] 所述审计显示模块,用于获取所述待审计日志类型对应的待转储字段的显示名称,动态生成包含所获取显示名称的审计框架,将所述日志查找模块获取的日志显示在生成的审计框架中。 \n[0062] 较佳地,所述转储单元进一步包括压缩模块,该压缩模块与所述日志转储模块、关联模块和配置文件存储单元相连; \n[0063] 所述压缩模块,用于接收所述日志转储模块转储得到的日志文件,以预设时间长度为单位,将单位时间内的日志文件打包为压缩包;对于每个压缩包,从所述关联模块获取该压缩包中各日志文件对应的第一关联关系,从所述配置文件存储单元获取该压缩包所存储日志的日志类型对应的待转储字段的显示名称,将获取的第一关联关系和显示名称输出到索引文件并将索引文件加入所述压缩包;建立压缩包的名称与该压缩包所存储日志的日志类型和日志时间之间的第二关联关系; \n[0064] 所述日志查找模块进一步用于,根据所述第二关联关系,在所述日志文件存储单元中查找与审计条件中的待审计日志类型和待审计时间范围匹配的压缩包;根据压缩包内索引文件记录的所述第一关联关系,在压缩包中查找与审计条件中的待审计时间范围匹配的日志文件。 \n[0065] 根据以上技术方案可见,应用本发明能够解决现有技术中通用性及扩展 性差的缺陷。具体来说,具有如下有益效果: \n[0066] 首先、本发明采用配置文件记录待转储日志类型的名称、每个日志类型对应的待转储字段以及每个待转储字段的显示名称,系统只需读取配置文件并根据配置文件进行日志转储操作。当需要增加新日志类型时,只需要将新增日志类型纳入到配置文件中,即可实现新增日志的转储和审计。可见,本发明将日志转储和审计与日志类型完全解耦,无需像现有技术一样对日志数据库或专用文件审计工具进行适配开发,解决了现有技术的日志转储和审计方案通用性和扩展性不强的缺陷。 \n[0067] 其次、在将日志转储到日志文件中时,根据日志文件的容量限制,将一个日志表中的日志转储到一个或多个日志文件中,避免了超大日志文件的产生,从便于日志审计时对日志文件的读取。 \n[0068] 而且,本发明将每个日志文件的名称与该日志文件的日志类型和日志时间关联起来,例如建立映射关系,这样在从众多纷繁的日志文件中查找与审计条件匹配的日志文件时,可以根据关联关系进行快速地、有针对性的查找,缩短了查找时间,提高了查找效率,从而提高了审计效率。 \n[0069] 此外,本发明在存储日志文件时,还将日志文件压缩存储,节省存储空间,避免日志文件的散乱。而且,在压缩时,将上述关联关系和被压缩日志文件的日志类型对应的显示名称也存储到压缩包中,这样只要存在压缩包,审计单元就可以在任何地方生成审计界面,无须与现有的系统关联,大大提高了日志审计的灵活性。 \n附图说明\n[0070] 图1为本发明实施例中日志转储的处理流程图。 \n[0071] 图2为本发明实施例中日志审计的处理流程图。 \n[0072] 图3为本发明实施例中审计界面的示意图。 \n[0073] 图4为本发明实施例中日志转储与审计系统的结构示意图。 \n[0074] 图5为图4中转储单元的结构示意图。 \n[0075] 图6为图4中审计单元的结构示意图。 \n具体实施方式\n[0076] 本发明为一种日志转储与审计的方案,其基本思想为:建立配置文件,在配置文件中记录待转储日志类型的名称、每个日志类型对应的待转储字段以及每个待转储字段的显示名称;其中,待转储字段是日志数据库中使用的字段名,例如start_time,显示名称是在审计界面中显示的字段名,例如start_time对应的“开始时间”。 \n[0077] 在转储日志时,根据所述配置文件记录的待转储日志类型和待转储字段,查找与待转储日志类型匹配的日志表,将查找到的日志表中的待转储字段保存到日志文件中。 [0078] 在审计日志时,查找与审计条件匹配的日志文件,根据所述配置文件记录的显示名称,对查找到的日志文件进行解析并显示。其中,解析操作为将日志文件中的转储字段解析为显示名称。 \n[0079] 可见,本发明将日志转储和审计与日志类型完全解耦。当需要增加新日志类型时,只需要将新增日志类型纳入到配置文件中,即可实现新增日志类型的转储和审计,无需对日志数据库或专用文件审计工具进行适配开发,解决了现有技术中通用性和扩展性不强的缺陷。 \n[0080] 下面结合附图并举实施例,对本发明进行详细描述。 \n[0081] 首先对记录待转储日志类型、待转储字段和显示名称的配置文件进行详细描述。\n本实施例中,将配置文件称为日志类型规范表,简称规范表。 \n[0082] 本发明引入的规范表以通用的格式记录日志转储和审计的相关信息,包括日志类型、日志字段在日志数据库中的存储字段名和日志字段在审计界面中的显示名称等。其中,存储字段名和显示名称一一对应。 \n[0083] 日志类型规范表格式定义如下所示: \n[0084] [LogType1] \n[0085] [LogTypeName] \n[0086] [DbFieldNames] \n[0087] [FieldName1] \n[0088] [FieldName2] \n[0089] [FieldNameN] \n[0090] [GuiFieldNames] \n[0091] [FieldName1] \n[0092] [FieldName2] \n[0093] [FieldNameN] \n[0094] [LogTypeN] \n[0095] 其中,LogType1表示第一种日志类型,[LogTypeN]表示第N种日志类型;\nLogTypeName表示每种日志类型的日志类型名称,日志类型名称是每一种日志类型的唯一标识;DbFieldNames表示待转储字段,该待转储字段名是日志字段在数据库中的存储字段名,GuiFieldNames表示待转储字段的显示名称,该显示名称是日志字段在审计界面中的显示名称,就是日志审计界面最终显示出来的界面元素名称;FieldNameN表示存储字段名和显示名称的具体内容。 \n[0096] 在新增一种日志类型时,只需要按照规范表的格式,将新增日志类型的名称、对应的待转储字段以及待转储字段的显示名称添加到规范表中即可。例如,增加对网络流量NetStreamV5的日志时,只需要确定NetStreamV5日志下所需转储的字段和对应的显示名称,然后按照规范表进行配置即可。 \n[0097] 假设NetStreamV5日志在日志数据库中存在日志字段start_time、end_time、src_ip、dest_ip、src_port、dest_port、prot、tos、app_name和dev_ip。其中字段tos对于审计没有任何意义,无需转储,因此在配置规范表时将其丢弃。那么可以只配置start_time、end_time、src_ip、dest_ip、src_port、dest_port、prot、app_name和dev_ip这些字段作为待转储字段。同时,审计的结果不能直接将数据库的字段名显示,而应该将其实际的意义展示,所以还应在规范表的内容,配置各待转储字段对应的显示名称,上述各待转储字 段对应的显示名称分别为:开始时间、结束时间、来源IP、目的IP、来源端口、目的端口、协议、应用和设备IP。 \n[0098] 按照规范表的格式,针对NetStreamV5日志增加如下配置: \n[0099] [LogType] \n[0100] [NetStreamV5] \n[0101] [DbFieldNames] \n[0102] [start_time] \n[0103] [end_time] \n[0104] [src_ip] \n[0105] [dev_ip] \n[0106] [GuiFieldNames] \n[0107] [开始时间] \n[0108] [结束时间] \n[0109] [来源IP] \n[0110] [设备IP] \n[0111] 采用配置规范表,网络管理员只需要配置感兴趣的字段,而非对日志数据库中的所有字段进行处理,从而提高了转储和审计的灵活性。在实际中,规范表的具体配置可以是多种形式的,如采用XML配置文件作为规范表的载体,下面示出了规范表以XML配置文件形式展现的示例: \n[0112] \n[0113] NetStreamV5 \n[0114] \n[0115] - start_time
\n[0116] - end_time
\n[0117] - src_ip
\n[0118] - dev_ip
\n[0119] \n[0120] \n[0121] - 开始时间
\n[0122] - 结束时间
\n[0123] - 来源IP
\n[0124] - 设备IP
\n[0125] \n[0126] \n[0127] 规范表配置完成后,需要将规范表注册到执行本发明日志转储与审计方案的系统中,这里称为日志转储与审计系统,以便日志转储与审计系统根据注册的配置文件内容执行转储和审计操作。注册的过程即是将规范表中的内容导入系统并存储。规范表注册时,规范表的配置内容必须符合预定格式,否则注册过程将失败。 \n[0128] 在注销一个已注册的日志类型时,以待删除日志类型的名称即LogTypeName为索引,在注册的规范表中查找待删除日志类型的名称,将待删除日志类型的名称、对应的待转储字段以及待转储字段的显示名称删除。 \n[0129] 将规范表注册到系统以后,系统就可以按照注册的规范表进行转储和审计操作。\n下面分别对转储和审计进行描述。 \n[0130] 图1为本发明实施例中日志转储的处理流程图。如图1所示,该流程包括以下步骤: \n[0131] 步骤101:当触发转储操作时,读取注册的规范表,逐一对规范表中的各日志类型进行处理。 \n[0132] 步骤102:从规范表中读取一种未处理日志类型的配置。读取内容包括日志类型名称LogTypeName、待转储字段名称DbFieldNames和显示名称GuiFieldNames等信息。 [0133] 其中,转储操作可以通过定时任务触发,也可以手动触发。 \n[0134] 步骤103:根据读取的日志类型名称LogTypeName,在日志数据库中查找与该日志类型名称LogTypeName匹配的日志表。日志表名称通常都与日志类型绑定,从日志表名称上可以直接获知日志表中的日志类型。 \n[0135] 通常日志转储是每天进行一次,且转储前一天的日志,因此在查找匹配的日志表时,查找前一天与读取的日志类型名称匹配的日志表;在实际中,也可以预先设置欲转储日志所在时间范围,在该时间范围内的小时日志表中,查找与读取的日志类型名称匹配的日志表。 \n[0136] 本实施例中,在生成日志表时,为了避免形成超大的日志表,将日志按 小时进行存储,生成小时日志表,同时将小时日志表的名称与日志类型和日志时间绑定,在小时日志表名称上体现所存储日志的日志类型和日志时间。例如,小时日志表名称为netstreamv5_08092218,表示该小时日志表存储的是2008-09-2218:00:00~18:59:59这个小时内的日志。 \n[0137] 本步骤中,假设2008-09-23日凌晨转储前一天的日志,且首先处理日志类型NetStreamV5,根据日志类型名称NetStreamV5在日志数据库中查找日志表名称与NetStreamV5匹配的小时日志表,此时查找到24个小时日志表。 \n[0138] 步骤104:获取读取的日志类型名称对应的待转储字段名称,针对步骤103查找到的每个日志表,将日志表中与待转储字段名称匹配的字段内容保存到日志文件中。为了区分从同一日志表转储得到的不同日志文件,将转储得到的日志文件的名称与该日志文件所存储日志的日志类型和日志时间相关联。 \n[0139] 假设本步骤中存储NetStreamV5日志,根据规范表只需要转储start_time、end_time、src_ip、dest_ip、src_port、dest_port、prot、app_name和dev_ip这些字段。 [0140] 步骤105:判断是否处理完规范表中的所有日志类型;如果是,则结束本流程;否则,返回执行步骤102。 \n[0141] 至此,本流程结束。 \n[0142] 一般而言,网络日志都是海量的,1小时的日志量常常达到上千万条。为了避免转储形成超大的日志文件,影响转储性能和审计时的查询性能,本实施例在步骤104将日志转储到日志文件时,根据日志文件的容量限制,将一个日志表中的日志转储到多个日志文件中,以避免形成超大文件。其中,日志文件的容量限制可以采用设置日志文件的转储时间长度和/或最大日志条数实现。具体来说, \n[0143] 当根据转储时间长度转储时,每个日志文件最多允许存储一个预设转储时间长度内的日志。例如,设置转储时间长度为10分钟,那么一个日志文 件最多容纳10分钟内的日志。转储时间长度的值根据网络流量预先确定。 \n[0144] 当根据最大日志条数转储时,每个日志文件允许存储的日志条数小于或等于所述最大日志条数。例如,设置最大日志条数为50万条,那么一个日志文件最多容纳50万条日志。 \n[0145] 当根据转储时间长度和最大日志条数转储时,每个日志文件最多允许存储一个预设转储时间长度内的日志,当一个预设转储时间长度内的日志数量大于所述最大日志容量时,根据该转储时间长度内的日志数量和最大日志容量确定所需日志文件数目,将该转储时间长度内的日志转储到所确定的多个日志文件中。更为具体地说,可以这样实现:首先根据转储时间长度确定当前待转储的时间段,例如2008-09-2218:10:00~\n2008-09-2218:19:59,在对应当前待转储时间段的日志表(netstreamv5_08092218)中,根据开始时间字段查询在当前待转储时间段内的日志总数,根据查询到的日志总数和最大日志容量确定所需日志文件数目,然后按照时间顺序将查找到的日志转储到各日志文件中。 [0146] 例如,设置转储时间长度为10分钟,最大日志容量为50万条,且当前转储\n2008-09-2218:10:00~2008-09-2218:19:59这一时间段内的日志。那么,此时需要在名称为netstreamv5_08092218的日志表内,根据开始时间(start_time)字段查找\n2008-09-2218:10:00~2008-09-22 18:19:59这一时间段内的日志,假设查找到70万条匹配日志,超过50万条,因此确定需要2个日志文件存储这些日志,然后采用数据库提供的导出工具,按照时间顺序,将前50万条日志导出到第一个日志文件中,将后20万条日志导出到第二个日志文件中。这两个日志文件均对应于2008-09-22 18:10:00~\n2008-09-2218:19:59这个时间段。 \n[0147] 将日志导出到日志文件后,将日志文件名称与日志类型和日志时间关联。关联方式不受限制。例如,在日志文件名称中体现日志类型和日志时间,或者建立日志文件名称与日志类型和日志时间之间的映射关系并记录;或者在日志文件名称中体现日志类型,并建立日志文件名称与日志时间之间的映 射关系。其中,日志时间可以为日志文件中各日志所在的时间范围,也可以是日志文件中第一个日志的开始时间字段内容。 \n[0148] 再或者,令日志文件的名称包括该日志文件所存储日志的日志类型和时间范围,同时记录日志文件的名称与该日志文件中第一个日志的开始时间之间的映射关系。下面举实例说明这种关联方式。 \n[0149] 假 设,将 2008-09-22 18:10:00 ~ 2008-09-22 18:19:59 这 一 时 间 段内的70万条NetstreamV5日志保存为两个日志文件中,为这两个日志文件分别 名 称 为 netstreamv5_0809221810_1 和 netstreamv5_0809221810_2。 其 中,netstreamv5_0809221810_1表示该文件所存储日志的日志类型为NetStreamV5,日志时间在2008-09-22 18:10:00~18:19:59内,且是对应于2008-09-2218:10:00~18:19:59该时间段的第一个文件。同时建立日志文件名称与该日志文件中第一条日志的开始时间之间的映射关系,将映射关系记录在映射表Time-File中。假设netstreamv5_0809221810_1和netstreamv5_0809221810_2两个日志文件中第一条记录的开始时间字段分别为:\n2008-09-2218:10:00、2008-09-2218:17:53,则形成映射表Time-File记录如下: [0150] netstreamv5_0809221810_1:2008-09-22 18:10:00 \n[0151] netstreamv5_0809221810_2:2008-09-22 18:17:53 \n[0152] 在实际中,也可以采取上文描述的另一种关联方式为同一个时间段对应的两个日志文件分别命名,命名时将日志文件中第一条日志的开始时间作为文件名的一部分。例如netstreamv5_080922181000、netstreamv5_080922181753。 \n[0153] 可见,在将日志转储到日志文件中时,通过限制日志文件的容量可以避免产生超大日志文件,从便于日志审计时对日志文件的读取。本发明将每个日志文件的名称与该日志文件的日志类型和日志时间关联起来,例如建立映射关系,这样在后续从纷繁的日志文件中查找与审计条件匹配的日志文件时,可以根据关联关系进行快速地、有针对性的查找,缩短了查找时间,提 高了查找效率,进而可以提高审计效率。 \n[0154] 将日志表转储为日志文件后,由于日志文件散乱并且占用空间巨大,不便管理和查找。为了便于管理,本实施例以预设时间长度(例如1小时)为单位,将单位时间内的日志文件打包为压缩包再存储。对于每个压缩包,将映射表中在打包时间范围内的映射关系输出到索引文件Index,并加入压缩包内。同时,为了为审计界面提供显示名称,还需要获取该压缩包所存储日志的日志类型对应的显示名称,将获取的显示名称也输出到索引文件并打入压缩包中。压缩包的名称与所存储日志的日志类型和日志时间相关联。例如,名称为netstreamv5_08092218.zip的压缩包,表示该压缩包存储2008-09-2218:00:00~\n18:59:59时间范围内的NetStreamV5日志和索引文件index。 \n[0155] 本发明提供的日志审计采用文件审计的方式,提供一种通用的日志文件审计框架,而与具体的日志类型解耦。图2为本发明实施例中日志审计的流程图。如图2所示,该流程包括以下步骤: \n[0156] 步骤201:设置审计条件,该审计条件可以包括待审计日志类型和待审计时间范围,还可以包括希望审计的字段和最多查询条数,等等。 \n[0157] 步骤202:查找与审计条件中待审计日志类型和待审计时间范围匹配的日志文件。为了显示日志时能够以时间顺序显示,方便管理员阅读,获取日志文件后,根据日志文件名称中包含的时间信息,将日志文件按时间排序。 \n[0158] 如果转储时将日志文件压缩存储,那么本步骤具体包括: \n[0159] 根据压缩包的名称,该名称包含日志类型和日志时间,查找与待审计日志类型和待审计时间范围匹配的压缩包,将获取的压缩包按时间排序。 \n[0160] 逐一处理各压缩包。处理其中一个压缩包时,打开压缩包中的索引文件index,获取index文件中映射关系,根据映射关系获取日志时间在待审计时间范围内的日志文件。\n直到处理完所有压缩包。 \n[0161] 例如,审计条件为:待审计日志类型为NetStreamV5,待审计时间范围 为\n2008-09-2218:18~19:57,最多查询5000条。 \n[0162] 那么,在本步骤中,首先根据待审计日志类型和时间范围确定需要压缩包为netstreamv5_08092218.zip和netstreamv5_08092219.zip。然后,打开第一个压缩包netstreamv5_08092218.zip中的索引文件,获取索引文件中的文件名-时间的映射关系,根据映射关系获取匹配的日志文件为netstreamv5_0809221810_2;接着,再打开第二个压缩包netstreamv5_08092219.zip中的索引文件,根据索引文件中的映射关系获取匹配的日志文件为netstreamv5_0809221820_1。较佳地,此时还将获取的日志文件按日志时间排序。 \n[0163] 步骤203:从查找到的各日志文件中获取日志。 \n[0164] 如果审计条件设置了最多查询条数,则本步骤根据最多查询条数,从查找的各日志文件中获取日志,当获取的日志数量达到所述最多查询条数时,中止获取操作,记录最后一个被获取日志的位置。在这种情况下,步骤204只会显示部分日志,其数目为最多查询条数。 \n[0165] 当后续接收到继续审计命令时,继续从记录的最后一个被获取日志的位置开始获取日志。 \n[0166] 步骤204:获取待审计日志类型对应的显示名称,动态生成包含所获取显示名称的审计框架;根据所获取的显示名称将步骤203所获取日志中的存储字段解析为相应的显示名称,然后显示在生成的审计框架中。动态生成的审计框架如图3所示。 [0167] 其中,审计框架是通用的但审计框架中的显示内容确是根据日志文件内容动态生成的。本实施例中待审计日志类型对应的显示名称从压缩包获取,这样只要存在压缩包,就可以在任何地方生成审计界面,无须与现有的系统关联,大大提高了日志审计的灵活性。在实际中,待审计日志类型对应的显示名称可以从规范表中获取。 \n[0168] 下面对执行本发明日志转储与审计方法的系统进行描述。图4为本发明 实施例中日志转储与审计系统的结构示意图。如图4所示,该系统包括配置文件存储单元41、转储单元42、审计单元43和日志文件存储单元44。其中, \n[0169] 配置文件存储单元41,用于读取来自外部的规范表并存储。如前所述,该规范表记录有待转储日志类型的名称、每个日志类型对应的待转储字段以及每个待转储字段的显示名称。 \n[0170] 该配置文件存储单元41进一步地,在接收到新增日志类型的注册命令时,读取来自外部的新增日志类型的名称、对应的待转储字段以及待转储字段的显示名称并存储;在接收到已有日志类型的删除命令时,以待删除日志类型的名称为索引,在本单元中查找所述待删除日志类型的名称,将待删除日志类型的名称、对应的待转储字段名称以及待转储字段的显示名称删除。 \n[0171] 转储单元42,用于在转储日志时,从配置文件存储单元41读取规范表,根据读取的规范表记录的待转储日志类型和待转储字段,从与系统连接的日志数据库中查找与待转储日志类型匹配的日志表,将查找到的日志表中的待转储字段保存到日志文件中,将日志文件存储到日志文件存储单元44。 \n[0172] 审计单元43,用于在审计日志时,在日志文件存储单元44中查找与审计条件匹配的日志文件,根据规范表记录的显示名称,对查找到的日志文件进行解析并显示。 [0173] 日志文件存储单元44,用于存储日志文件。 \n[0174] 图5为图4中存储单元42的结构示意图。如图5所示,该转储单元42具体包括日志表查找模块421、日志转储模块422和关联模块423。其中, \n[0175] 日志表查找模块421,用于在转储日志时,从配置文件存储单元41读取规范表,根据读取的规范表记录的待转储日志类型和待转储字段,从日志数据库中查找与待转储日志类型匹配的日志表。在针对某个日志类型查找日志表时,可以根据设置的时间范围,查找该时间范围内与当前日志类型的名称匹配的小时日志表,或者查找前一天与当前日志类型的名称匹配的小时日志表。转储日志操作的触发可以为定期自动触发或手工触发。 [0176] 日志转储模块422,用于对日志表查找模块421查找到的日志表进行转储处理;转储时,根据预设的日志文件的容量限制,将一个日志表中的日志转储到一个或多个日志文件中,将转储得到的日志文件存储到日志文件存储单元44,通知关联模块423。该日志转储模块422对日志文件的容量限制方式与前述方法实施例中对日志文件容量的限制方式相同,这里不赘述。 \n[0177] 关联模块423,用于收到通知时,建立转储获得的日志文件的名称与该日志文件所存储日志的日志类型和日志时间之间的第一关联关系,将该第一关联关系存储到日志文件存储单元44。该关联模块423进行的关联操作方式与前述方法实施例中描述的关联方式相同,这里不赘述。 \n[0178] 图6为图4中审计单元43的结构示意图。如图6所示,该审计单元43具体包括日志查找模块431和审计显示模块432。其中, \n[0179] 日志查找模块431,用于根据第一关联关系,在日志文件存储单元44中查找与审计条件中的待审计日志类型和待审计时间范围匹配的日志文件;较佳地,可以对匹配的日志文件按日志时间排序;然后,从查找到的各日志文件中获取日志。获取日志时,如果获取的日志数量达到审计条件中的最多查询条数,则中止获取操作,记录当前位置。后续如果接收到继续审计命令时,从记录的当前位置开始获取日志。 \n[0180] 审计显示模块432,用于根据待审计日志类型对应的显示名称,动态生成包含显示名称的审计框架,将日志查找模块431获取的日志显示在生成的审计框架中。 [0181] 较佳地,转储单元42进一步包括压缩模块424。参见图5中的虚线模块,该压缩模块424与日志转储模块422、关联模块423和配置文件存储单元44相连。压缩模块424,用于以预设时间长度例如一个小时为单位,将单位时间内的日志文件打包为压缩包;对于每个压缩包,从关联模块423获取该压缩包中各日志文件对应的第一关联关系,从配置文件存储单元44获取该压缩包所存储日志的日志类型对应的显示名称,将获取的第一关联关系和显示名称输出到索引文件并将索引文件加入压缩包;建立压缩包的名称与 该压缩包所存储日志的日志类型和日志时间之间的第二关联关系。 \n[0182] 在这种情况下,日志查找模块431进一步用于,根据第二关联关系,在日志文件存储单元44中查找与审计条件中的待审计日志类型和待审计时间范围匹配的压缩包;根据压缩包内索引文件记录的第一关联关系,在压缩包中查找与审计条件中的待审计时间范围匹配的日志文件。 \n[0183] 综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。\n凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
法律信息
- 2017-05-10
专利权人的姓名或者名称、地址的变更
专利权人由杭州华三通信技术有限公司变更为新华三技术有限公司
地址由310053 浙江省杭州市高新技术产业开发区之江科技工业园六和路310号华为杭州生产基地变更为310052 浙江省杭州市滨江区长河路466号
- 2011-01-12
- 2009-09-02
- 2009-06-10
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2007-11-21
|
2007-06-08
| | |
2
| |
2007-02-21
|
2006-09-07
| | |
3
| |
2004-04-28
|
2003-09-04
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 1 | | 2014-11-26 | 2014-11-26 | | |