日志管理方法和装置

摘要
本发明提供了一种日志管理方法和装置。涉及集群管理领域;解决了日志数量过多影响系统性能的问题。该方法包括:维护一日志缓存队列,在该日志缓存队列中存储已生成的日志;在生成新日志时,检查所述日志缓存队列中是否存在与所述新日志相同的已有日志;在存在与所述新日志相同的已有日志时,将所述新日志合并至所述已有日志,不在所述日志缓存队列中添加所述新日志单独对应的条目。本发明提供的技术方案适用于集群管理系统,实现了日志信息的筛查管理。
说明
日志管理方法和装置

技术领域

[0001] 本发明涉及集群管理领域,尤其涉及一种日志管理方法和装置。

背景技术

[0002] 在集群管理系统中,系统需要循环检测集群中各个资源的状态(如IP资源、应用程序资源、服务资源等),同时会将检测的结果记录到日志文件中。由于检测过程是不间断循环进行的,因此会造成不停地记录日志信息,导致日志信息随时间推迟会变得非常庞大,甚至影响系统性能;另一方面,如果删除这些日志,虽能减少日志数量,但会导致后期一旦出现问题时,无法有效定位分析问题,不能发挥日志信息的作用。

发明内容

[0003] 本发明提供了一种日志管理方法和装置,解决了日志数量过多影响系统性能的问题。

[0004] 本发明提供了一种日志管理方法,包括:

[0005] 维护一日志缓存队列,在该日志缓存队列中存储已生成的日志;

[0006] 在生成新日志时,检查所述日志缓存队列中是否存在与所述新日志相同的已有日志;

[0007] 在存在与所述新日志相同的已有日志时,将所述新日志合并至所述已有日志,不在所述日志缓存队列中添加所述新日志单独对应的条目。

[0008] 优选的,将所述新日志合并至所述已有日志具体为:

[0009] 将所述已有日志的日志产生时间更新为所述新日志的产生时间。

[0010] 优选的,在生成新日志时,检查所述日志缓存队列中是否存在与所述新日志相同的已有日志的步骤之后,还包括:

[0011 ] 当不存在与所述新日志相同的已有日志时,将所述新日志添加至所述日志缓存队列中。

[0012] 优选的,检查所述日志缓存队列中是否存在与所述新日志相同的已有日志具体为:

[0013] 检查所述日志缓存队列中阈值时间内添加的日志中是否存在与所述新日志相同的已有日志。

[0014] 优选的,所述日志缓存队列为每条日志分配一个的条目,一个条目包含如下内容中的任一或任意多个:

[0015] 日志产生时间,日志内容,日志累计出现次数。

[0016] 优选的,该方法还包括:

[0017] 按照日志产生时间排列所述日志缓存队列中的日志。

[0018] 优选的,该方法还包括:

[0019] 在更新完所述已有日志的产生时间后,将该已有日志插入到队列头位置,并将该已有日志的日志累计出现次数增加I。

[0020] 本发明还提供了一种日志管理装置,包括:

[0021] 队列存储模块,用于维护一日志缓存队列,在该日志缓存队列中存储已生成的日志;

[0022] 检索模块,用于在生成新日志时,检查所述日志缓存队列中是否存在与所述新日志相同的已有日志;

[0023]日志更新模块,用于在存在与所述新日志相同的已有日志时,将所述新日志合并至所述已有日志,不在所述日志缓存队列中添加所述新日志单独对应的条目。

[0024] 优选的,所述日志更新模块具体用于:

[0025] 将所述已有日志的日志产生时间更新为所述新日志的产生时间。

[0026] 优选的,所述日志更新模块,还用于当不存在与所述新日志相同的已有日志时,将所述新日志添加至所述日志缓存队列中。

[0027] 本发明提供了一种日志管理方法和装置,维护一日志缓存队列,在该日志缓存队列中存储已生成的日志,在生成新日志时,检查所述日志缓存队列中是否存在与所述新日志相同的已有日志,在存在与所述新日志相同的已有日志时,将所述新日志合并至所述已有日志,不在所述日志缓存队列中添加所述新日志单独对应的条目。实现了日志信息的筛查管理,解决了日志数量过多影响系统性能的问题。

附图说明

[0028]图1为本发明的实施例1提供的一种日志管理方法的流程图;

[0029] 图2为日志信息缓存队列的结构示意图;

[0030] 图3为新日志在缓存队列中不存在时的处理流程图;

[0031] 图4为新日志在缓存队列中已存在时的处理流程图;

[0032] 图5为本发明的实施例二提供的一种日志管理装置的结构示意图。




具体实施方式

[0033] 由于检测过程是不间断循环进行的,因此会造成不停地记录日志信息,导致日志信息随时间推迟会变得非常庞大,甚至影响系统性能;另一方面,如果删除这些日志,虽能减少日志数量,但会导致后期一旦出现问题时,无法有效定位分析问题,不能发挥日志信息的作用。

[0034] 鉴于上述分析,设计一个高效智能的日志管理模块将十分必要,它可以保证在能够有效记录日志信息的情况下,自动滤除重复且没有参考分析价值的冗余日志信息,极大降低庞大的日志量对系统的影响和日志分析的难度。

[0035] 为了解决上述问题,本发明的实施例提供了一种日志管理方法和装置。下面将结合附图及实施例对本发明的技术方案进行更详细的说明。系统产生的日志信息将不直接无差别地记录到日志文件中,而是首先通过该日志模块进行分析过滤,将其中过多重复且无分析价值的日志过滤掉,只保留有参考价值的日志,举例来说,如果某一条记录资源状态的日志在短时间内重复出现,则实际只有首次出现和最后出现的日志需要记录,中间出现的日志只说明该状态是循环检测的,并未太大的分析价值,因此可以忽略。

[0036] 需要说明的是,如果不冲突,本发明实施例以及实施例中的各个特征可以相互结合,均在本发明的保护范围之内。另外,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

[0037] 首先结合附图,对本发明的实施例一进行说明。

[0038] 本发明实施例提供了一种日志管理方法,使用该方法完成日志管理的流程如图1所示,包括:

[0039] 步骤101、维护一日志缓存队列,在该日志缓存队列中存储已生成的日志;

[0040] 所述日志缓存队列为每条日志分配一个的条目,一个条目包含如下内容中的任一或任意多个:

[0041] 日志产生时间,日志内容,日志累计出现次数。

[0042] 如图2所示,创建日志信息缓存队列,用于临时存放日志信息,日志队列中将保存日志信息的创建时间、日志的内容与日志出现的次数,新日志将插入到队列头部。

[0043] 步骤102、在生成新日志时,检查所述日志缓存队列中是否存在与所述新日志相同的已有日志;

[0044] 步骤103、当不存在与所述新日志相同的已有日志时,将所述新日志添加至所述日志缓存队列中;

[0045] 本步骤中,具体的,将所述已有日志的日志产生时间更新为所述新日志的产生时间。

[0046] 如图3所示,当系统产生一条新日志信息A后,根据日志A的内容,从队列中查询该日志是否已经存在,如果发现该日志在队列中不存在,则将日志插入到队列头部,其中Atinre为产生该日志的时间,Atext为日志的具体内容,A_为该日志出现的次数,由于是第一次出现,因此A_的值为I。另一方面,第一次出现的日志将直接记录到日志文件中。

[0047] 步骤104、在存在与所述新日志相同的已有日志时,将所述新日志合并至所述已有日志,不在所述日志缓存队列中添加所述新日志单独对应的条目;

[0048] 在更新完所述已有日志的产生时间后,将该已有日志插入到队列头位置,并将该已有日志的日志累计出现次数增加I。

[0049] 如图4所示,当新产生的日志B在队列中已经存在时,则将先把队列中的日志B从队列中删除,而后将B的产生时间由原来的时间更新为最新的时间,即将Bcild t更新为B_—t,同时将出现次数BnuJm I后,重新插入到队列的头部。通过这一过程,可以实现,重复出现的日志始终在靠近队列头部的位置,而不重复的日志将随着时间推移,逐渐移动到队列末尾的位置。

[0050] 此外,本发明实施例中还可按照日志产生时间排列所述日志缓存队列中的日志。[0051 ] 此外,可设置一阈值时间,检查所述日志缓存队列中阈值时间内添加的日志中是否存在与所述新日志相同的已有日志。具体的,采用遍历的方式查看队列中的日志是否已超过阈值时间T,即日志的产生时间与当前时间的差值是否超过T,由于不重复的日志集中在队列末尾位置,而重复性的日志趋向于在队列头部,因此遍历时从队列结尾开始,发现时间超过T的日志,则将其按时间顺序记录到日志文件中,同时从队列中移除,而在遍历过程中,一旦发现某一日志时间小于T,则结束本轮遍历。

[0052] 下面结合附图,对本发明的实施例二进行说明。

[0053] 本发明实施例提供了一种日志管理装置,其结构如图5所示,包括:

[0054] 队列存储模块501,用于维护一日志缓存队列,在该日志缓存队列中存储已生成的日志;

[0055] 检索模块502,用于在生成新日志时,检查所述日志缓存队列中是否存在与所述新日志相同的已有日志;

[0056] 日志更新模块503,用于在存在与所述新日志相同的已有日志时,将所述新日志合并至所述已有日志,不在所述日志缓存队列中添加所述新日志单独对应的条目。

[0057] 优选的,所述日志更新模块503具体用于:

[0058] 将所述已有日志的日志产生时间更新为所述新日志的产生时间。

[0059] 优选的,所述日志更新模块503,还用于当不存在与所述新日志相同的已有日志时,将所述新日志添加至所述日志缓存队列中。

[0060] 本发明的实施例中,定义了以下机制来实现上述功能:

[0061] I)日志信息缓存队列机制

[0062] 缓存队列用于临时存放系统产生的,需要进行分析筛查的日志。缓存队列包含日志产生的时间、日志的内容和日志累计出现次数三项内容。缓存队列依照日志产生的时间进行排序,时间上最新日志插入到队列的头位置。

[0063] 2)日志内容查重分析

[0064] 当收到一条日志信息后,通过查询日志缓存队列,判断该日志是否已经存在。如果日志不存在,则说明该日志是在该段时间内第一次出现的日志,则将该日志插入到缓存队列中,并在队列中记录该日志产生的时间t,以及该日志出现的次数(此时为1),同时该日志信息也将直接写入到日志文件中;如果通过查询后发现该日志已经存在于队列中,说明该日志是重复日志,则将队列中的相同日志删除后,将该日志插入到队列头位置,同时将日志出现次数加1,而该条日志的产生时间也将更新为最新产生的时间。

[0065] 经过这一过程,重复日志在缓存队列中将保证只有一条,且基本保持在队列靠前的位置,而队列中没有重复出现的日志,则逐渐排到队列的靠近末尾的位置。

[0066] 3)超时落盘机制

[0067] 对于系统产生的日志信息,经过过滤筛选后,符合要求的日志最终都要记录到日志文件中进行保存。因此对于队列中的日志信息,日志模块将通过由后向前的顺序查看缓存队列中的日志产生的时间是否超过了模块设定的阈值时间T,一旦发现存在日志的产生时间超过T,则说明该日志在短时间内没有重复出现,此时需要将该日志信息从队列中删除,并按照日志产生时间将该日志记录到日志文件中。

[0068] 本发明的实施例提供的技术方案同样适用于其他会循环打印重复日志的系统或软件,通过对日志信息进行自动筛查,可以有效减少日志数量,提高日志分析的效率和准确性。另外,如果进行日志分析时,需要知晓重复日志的时间间隔等信息,也可稍加改进后,通过本发明的实施例提供的技术方案来实现。

[0069] 本发明的实施例提供了一种日志管理方法和装置,维护一日志缓存队列,在该日志缓存队列中存储已生成的日志,在生成新日志时,检查所述日志缓存队列中是否存在与所述新日志相同的已有日志,在存在与所述新日志相同的已有日志时,将所述新日志合并至所述已有日志,不在所述日志缓存队列中添加所述新日志单独对应的条目。实现了日志信息的筛查管理,解决了日志数量过多影响系统性能的问题。

[0070] 本发明的实施例提供的技术方案能够实现对日志信息的集中管理和筛选,确保在不遗漏重要日志的情况下,能尽可能减少重复性且无分析价值的日志的数量;由于能够实现对日志信息的自动筛查,因此在进行日志设计布局时,可以不必太在意是否会发生日志循环产生等情况,提高系统或是软件的开发效率;除了集群软件外,其他系统或软件如果存在某些日志会循环产生的问题,也可以使用本发明的实施例提供的技术方案解决。

[0071] 本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。

[0072]当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明的权利要求的保护范围。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值