日志校验方法及装置的制造方法

文档序号:10489066阅读:326来源:国知局
日志校验方法及装置的制造方法
【专利摘要】本公开是关于一种日志校验方法及装置,属于分布式技术领域。所述方法包括:获取待校验的日志数据,所述日志数据中包括多条消息的中间结果数据;根据第一解析字段对所述日志数据进行分类,得到至少一组分类数据;对于每一组分类数据,根据第二解析字段,对所述分类数据中同一条消息的多个中间结果数据进行合并,形成至少一条消息的处理路径;基于每一条消息的处理路径对所述日志数据的处理流程完整性进行校验。由于在非日志处理的其他时段对日志数据进行了分类并基于分类对中间结果数据进行了路径关联性合并,进而完成日志完整性校验,减少了中间结果数据的长度,校验效果较佳,可靠性好。
【专利说明】
曰志校验方法及装置
技术领域
[0001 ]本公开涉及分布式技术领域,特别涉及一种日志校验方法及装置。
【背景技术】
[0002]在分布式环境下,用于对用户行为进行记录的日志通常会存储在HDFS(Had00pDistributed File System,分布式文件系统)中,再使用Storm等工具对日志进行处理。在处理过程中,由于日志散落在分布式集群的各个节点中,这便需要主动对每条日志的处理流程进行校验,检查每条日志在处理时是否经过了全部的处理流程,以确保日志处理流程的完整性。
[0003]相关技术中直接在日志处理过程中对日志处理流程的完整性进行校验,一般是一边进行日志处理,一边进行中间结果数据合并,使得同一条消息的所有中间结果数据都被合并在一起。

【发明内容】

[0004]为克服相关技术中存在的问题,本公开提供一种日志校验方法及装置。
[0005]根据本公开实施例的第一方面,提供一种日志校验方法,所述方法包括:
[0006]获取待校验的日志数据,所述日志数据中包括多条消息的中间结果数据;
[0007]根据第一解析字段对所述日志数据进行分类,得到至少一组分类数据;
[0008]对于每一组分类数据,根据第二解析字段,对所述分类数据中同一条消息的多个中间结果数据进行合并,形成至少一条消息的处理路径;
[0009]基于每一条消息的处理路径对所述日志数据的处理流程完整性进行校验。
[0010]在另一个实施例中,所述基于每一条消息的处理路径对所述日志数据的处理流程完整性进行校验,包括:
[0011]对于每一条消息,对所述消息的处理路径上中间结果数据的合并处理执行先后顺序进行排序,确定最后一次合并处理形成的中间结果数据集合;
[0012]对所述中间结果数据集合中每一条处理路径的入口数和出口数进行统计;
[0013]若任意一条处理路径的出口数大于入口数,则检测出所述日志数据不完整。
[0014]在另一个实施例中,所述根据第一解析字段对所述日志数据进行分类,得到至少一组分类数据之前,所述方法还包括:
[0015]将所述日志数据上传至消息队列中;
[0016]所述根据第一解析字段对所述日志数据进行分类,得到至少一组分类数据,包括:
[0017]当通过设置的处理线程监听到所述消息队列中存储有所述日志数据时,执行所述根据第一解析字段对所述待校验的日志数据进行初步分类,得到至少一组分类数据的步骤。
[0018]在另一个实施例中,所述根据第一解析字段对所述日志数据进行分类,得到至少一组分类数据之后,所述方法还包括:
[0019]将所述至少一组分类数据分列存储在中间表中。
[0020]在另一个实施例中,所述对所述中间结果数据集合中每一条处理路径的入口数和出口数进行统计,包括:
[0021]采用键值对的形式,对所述中间结果数据集合中每一条处理路径的入口数和出口数进行统计。
[0022]根据本公开实施例的第二方面,提供一种日志校验装置,所述装置包括:
[0023]获取模块,被配置为获取待校验的日志数据,所述日志数据中包括多条消息的中间结果数据;
[0024]分类模块,被配置为根据第一解析字段对所述日志数据进行分类,得到至少一组分类数据;
[0025]合并模块,被配置为对于每一组分类数据,根据第二解析字段,对所述分类数据中同一条消息的多个中间结果数据进行合并,形成至少一条消息的处理路径;
[0026]校验模块,被配置为基于每一条消息的处理路径对所述日志数据的处理流程完整性进行校验。
[0027]在另一个实施例中,所述校验模块,被配置为对于每一条消息,对所述消息的处理路径上中间结果数据的合并处理执行先后顺序进行排序,确定最后一次合并处理形成的中间结果数据集合;对所述中间结果数据集合中每一条处理路径的入口数和出口数进行统计;若任意一条处理路径的出口数大于入口数,则检测出所述日志数据不完整。
[0028]在另一个实施例中,所述装置还包括:
[0029]上传模块,被配置为将所述日志数据上传至消息队列中;
[0030]所述分类模块,被配置为当通过设置的处理线程监听到所述消息队列中存储有所述日志数据时,执行所述根据第一解析字段对所述待校验的日志数据进行初步分类,得到至少一组分类数据的步骤。
[0031]在另一个实施例中,所述装置还包括:
[0032]存储模块,被配置为将所述至少一组分类数据分列存储在中间表中。
[0033]在另一个实施例中,所述校验模块,被配置为采用键值对的形式,对所述中间结果数据集合中每一条处理路径的入口数和出口数进行统计。
[0034]本公开的实施例提供的技术方案可以包括以下有益效果:
[0035]在获取到待校验的日志数据后,根据第一解析字段对日志数据进行分类得到至少一组分类数据;之后,对于每一组分类数据,根据第二解析字对该分类数据中同一条消息的多个中间结果数据进行合并,形成至少一条消息的处理路径,最终基于每一条消息的处理路径对日志数据的处理流程完整性进行校验,由于在非日志处理的其他时段对日志数据进行了分类并基于分类对中间结果数据进行了路径关联性合并,进而完成日志完整性校验,减少了中间结果数据的长度,校验效果较佳,可靠性好。
[0036]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
【附图说明】
[0037]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
[0038]图1是根据一示例性实施例示出的一种日志校验方法的流程图。
[0039]图2是根据一示例性实施例示出的一种日志校验方法的流程图。
[0040]图3A是根据一示例性实施例示出的一种日志校验装置的框图。
[0041 ]图3B是根据一示例性实施例示出的一种日志校验装置的框图。
[0042]图3C是根据一示例性实施例示出的一种日志校验装置的框图。
[0043]图4是根据一示例性实施例示出的一种日志校验装置400的框图。
【具体实施方式】
[0044]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
[0045]图1是根据一示例性实施例示出的一种日志校验方法的流程图,如图1所示,该方法用于服务器中,包括以下步骤。
[0046]在步骤101中,获取待校验的日志数据,所述日志数据中包括多条消息的中间结果数据。
[0047]在步骤102中,根据第一解析字段对所述日志数据进行分类,得到至少一组分类数据。
[0048]在步骤103中,对于每一组分类数据,根据第二解析字段,对所述分类数据中同一条消息的多个中间结果数据进行合并,形成至少一条消息的处理路径。
[0049]在步骤104中,基于每一条消息的处理路径对所述日志数据的处理流程完整性进行校验。
[0050]本公开实施例提供的方法,在获取到待校验的日志数据后,根据第一解析字段对日志数据进行分类得到至少一组分类数据;之后,对于每一组分类数据,根据第二解析字对该分类数据中同一条消息的多个中间结果数据进行合并,形成至少一条消息的处理路径,最终基于每一条消息的处理路径对日志数据的处理流程完整性进行校验,由于在非日志处理的其他时段对日志数据进行了分类并基于分类对中间结果数据进行了路径关联性合并,进而完成日志完整性校验,减少了中间结果数据的长度,校验效果较佳,可靠性好。
[0051]在另一个实施例中,所述基于每一条消息的处理路径对所述日志数据的处理流程完整性进行校验,包括:
[0052]对于每一条消息,对所述消息的处理路径上中间结果数据的合并处理执行先后顺序进行排序,确定最后一次合并处理形成的中间结果数据集合;
[0053]对所述中间结果数据集合中每一条处理路径的入口数和出口数进行统计;
[0054]若任意一条处理路径的出口数大于入口数,则检测出所述日志数据不完整。
[0055]在另一个实施例中,所述根据第一解析字段对所述日志数据进行分类,得到至少一组分类数据之前,所述方法还包括:
[0056]将所述日志数据上传至消息队列中;
[0057]所述根据第一解析字段对所述日志数据进行分类,得到至少一组分类数据,包括:
[0058]当通过设置的处理线程监听到所述消息队列中存储有所述日志数据时,执行所述根据第一解析字段对所述待校验的日志数据进行初步分类,得到至少一组分类数据的步骤。
[0059]在另一个实施例中,所述根据第一解析字段对所述日志数据进行分类,得到至少一组分类数据之后,所述方法还包括:
[0060]将所述至少一组分类数据分列存储在中间表中。
[0061]在另一个实施例中,所述对所述中间结果数据集合中每一条处理路径的入口数和出口数进行统计,包括:
[0062]采用键值对的形式,对所述中间结果数据集合中每一条处理路径的入口数和出口数进行统计。
[0063]上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再
--赘述。
[0064]图2是根据一示例性实施例示出的一种日志校验方法的流程图,如图2所示,该日志校验方法用于服务器中,包括以下步骤。
[0065]在步骤201中,获取待校验的日志数据,将待校验的日志数据上传至消息队列中。
[0066]在本公开实施例中,可通过开源的日志收集系统scribe从各种数据源上对用于记录用户行为的日志数据进行收集。其中,scribe为日志收集提供了一种容错且可扩展的方案,scribe可以从不同数据源、不同机器上收集日志数据。需要说明的是,为了保证能够获取到日志数据以对日志数据进行校验,在获取待校验的日志数据之前,还需进行各个数据源的数据订阅。也即,仅在订阅某个数据源的数据之后,才能从该数据源中获取日志数据。可选地,在获取到待校验的日志数据后,还需通过scribe将待校验的日志数据上传到分布式的消息队列中。
[0067]其中,本公开实施例还定义了多个处理线程,多个处理线程用于监听该消息队列。当该消息队列中有待校验的日志数据出现时,立即启动下述步骤202,对该日志数据进行校验处理,详细过程参见后续步骤。其中,消息队列可为阻塞队列,即该消息队列中仅能存放预设数目的日志数据;若当前获取到待校验的日志数据后,该消息队列中的日志数据已达到预设数目,则直至该消息队列中出现空闲位置后,才将该当前获取到的待校验的日志数据存储在该消息队列中,本公开实施例对此不进行具体限定。其中,日志数据中包括多条消息的中间结果数据。
[0068]在步骤202中,根据第一解析字段对日志数据进行分类,得到至少一组分类数据。
[0069]其中,第一解析字段可为用户标识或者消息类型等,本公开实施例对此不进行具体限定。本步骤是对待校验的日志数据进行初步分类。其中,在根据用户标识对日志数据进行分类时,可将每个用户产生的日志数据独立分类出来。一组分类数据可对一个用户执行的购买行为、游戏行为、听歌行为、浏览行为等进行记录。在根据消息类型对日志数据进行分类时,可将同一种操作行为对应的日志数据分类为一组。比如,将由听歌行为产生的日志数据全部分类在一起,将由游戏行为产生的日志数据全部分类在一起等,本公开实施例对此不进行具体限定。
[0070]需要说明的是,在将待校验的日志数据进行初步分类,得到至少一组分类数据后,为了后续过程中更有利于校验,本公开实施例设计了一个按列存储的中间表,并将至少一组分类数据分列存储在该中间表中,这样便于后续过程中根据第二解析字段对待校验的日志数据进行进一步地处理。
[0071 ]在步骤203中,对于每一组分类数据,根据第二解析字段,对该分类数据中同一条消息的多个中间结果数据进行合并,形成一条消息的处理路径。
[0072]其中,第二解析字段与第一解析字段不同。若第一解析字段为用户标识,则第二解析字段可为消息类型;若第一解析字段为消息类型,则第二解析字段宁可为用户标识,本公开实施例对此不进行具体限定。比如,在根据用户标识将待校验的日志数据进行初步分类,得到多个分类数据后。对于一个用户对应的一组分类数据,可根据消息类型将该分类数据中同一条消息的多个中间结果数据进行合并,得到一条消息的处理路径。
[0073]其中,该组分类数据中可能包括多个不同的用户行为产生的日志数据,而通过消息类型可将诸如听歌行为产生的至少一条消息的中间结果数据、浏览行为产生的至少一条消息的中间结果数据、购买行为产生的至少一条消息的中间结果数据分别分类开来。之后,再将同一条消息的多个中间结果数据进行合并,使得同一条消息的所有中间结果数据都被合并在一起,便可形成一条消息的处理路径。其中,处理路径记录了一条消息经过的处理流程,每一个处理步骤都会产生一个中间结果数据。
[0074]在步骤204中,基于每一条消息的处理路径对待校验的日志数据的处理流程完整性进行校验。
[0075]在本公开实施例中,为了解决重试、日志分裂等情况造成的不良影响,还需要对每条消息的处理路径上的中间结果数据进行排序,使得整个消息成链式结构,并以最近的一次中间结果集合为进行主动校验的依据。其中,重试指代的是在用户操作过程中,可能由于误操作或者前一次的操作服务器无响应所以再次执行了同样的操作,这样的行为便称之为重试。需要说明的是,对于同一条消息来说,在将其对应的多个中间结果数据进行合并时,由于这多个中间结果数据可能来自不同的集群或服务器,而鉴于不同的集群或服务器的反馈响应速度有差别,因此在进行数据合并时,可能并不会按照处理流程从前往后的顺序依次合并,以处理流程依次为1-2-3-4-5,中间结果数据依次为a-b-c-d-e为例,则在进行中间结果数据合并时,可能并不是按照处理流程执行的先后顺序a-b-c-d-e进行合并的,而是按照类似d和e合并,再跟b合并,再跟a和c合并这样的顺序来进行的,因此还需要对每条消息的处理路径上的中间结果数据进行排序,也即对该消息的处理路径上中间结果数据的合并处理执行先后顺序进行排序,确定最后一次合并处理形成的中间结果数据集合。并根据最后一次合并处理行程的中间结果数据集合为准进行主动校验过程。其中,在基于每一条消息的处理路径对待校验的日志数据的完整性进行校验时,可采取下述方式实现:对于每一条消息,对该消息的处理路径上中间结果数据的合并处理执行先后顺序进行排序,确定最后一次合并处理形成的中间结果数据集合;对中间结果数据集合中每一条处理路径的入口数和出口数进行统计;若任意一条处理路径的出口数大于入口数,则检测出日志数据不完整。
[0076]在本公开实施例中,采用键值对(key-value)对中间结果数据集合中每一条处理路径的入口数和出口数进行统计。即,本公开实施例采用实时性好且线程安全的key-value数据库,比如redis来作为计数工具。其中,采用解析字段、消息的具体内容和处理路径作为联合key,标识入口数和出口数。由于key-value数据可以部署在其他服务器,因此可大大减少运行节点机器的压力,同时提高了计数检测的实时性。以处理流程依次为1-2-3-4-5为例,对于处理过程2来说,其仅对应有处理过程I至处理过程2—个入口,和处理过程2至处理过程3—个出口,入口数等于出口数,因此此处无分裂。如果此处有分裂的话,还可以继续检查下一个入口的计数,看是否同上一个出口相吻合,依次类推,完成整个分布式日志的处理路径的完整性校验。
[0077]本公开实施例提供的方法,在获取到待校验的日志数据后,根据第一解析字段对日志数据进行分类得到至少一组分类数据;之后,对于每一组分类数据,根据第二解析字对该分类数据中同一条消息的多个中间结果数据进行合并,形成至少一条消息的处理路径,最终基于每一条消息的处理路径对日志数据的处理流程完整性进行校验,由于在非日志处理的其他时段对日志数据进行了分类并基于分类对中间结果数据进行了路径关联性合并,进而完成日志完整性校验,减少了中间结果数据的长度,校验效果较佳,可靠性好。
[0078]图3A是根据一示例性实施例示出的一种日志校验装置的框图。参照图3A,该装置包括获取模块301,分类模块302,合并模块303和校验模块304。
[0079]获取模块301,被配置为获取待校验的日志数据,所述日志数据中包括多条消息的中间结果数据;
[0080]分类模块302,被配置为根据第一解析字段对所述日志数据进行分类,得到至少一组分类数据;
[0081 ]合并模块303,被配置为对于每一组分类数据,根据第二解析字段,对所述分类数据中同一条消息的多个中间结果数据进行合并,形成至少一条消息的处理路径;
[0082]校验模块304,被配置为基于每一条消息的处理路径对所述日志数据的处理流程完整性进行校验。
[0083]在另一个实施例中,所述校验模块304,被配置为对于每一条消息,对所述消息的处理路径上中间结果数据的合并处理执行先后顺序进行排序,确定最后一次合并处理形成的中间结果数据集合;对所述中间结果数据集合中每一条处理路径的入口数和出口数进行统计;若任意一条处理路径的出口数大于入口数,则检测出所述日志数据不完整。
[0084]在另一个实施例中,参见图3B,该装置还包括:
[0085]上传模块305,被配置为将所述日志数据上传至消息队列中;
[0086]所述分类模块,被配置为当通过设置的处理线程监听到所述消息队列中存储有所述日志数据时,执行所述根据第一解析字段对所述待校验的日志数据进行初步分类,得到至少一组分类数据的步骤。
[0087]在另一个实施例中,参见图3C,该装置还包括:
[0088]存储模块306,被配置为将所述至少一组分类数据分列存储在中间表中。
[0089]在另一个实施例中,所述校验模块,被配置为采用键值对的形式,对所述中间结果数据集合中每一条处理路径的入口数和出口数进行统计。
[0090]本公开实施例提供的装置,在获取到待校验的日志数据后,根据第一解析字段对日志数据进行分类得到至少一组分类数据;之后,对于每一组分类数据,根据第二解析字对该分类数据中同一条消息的多个中间结果数据进行合并,形成至少一条消息的处理路径,最终基于每一条消息的处理路径对日志数据的处理流程完整性进行校验,由于在非日志处理的其他时段对日志数据进行了分类并基于分类对中间结果数据进行了路径关联性合并,进而完成日志完整性校验,减少了中间结果数据的长度,校验效果较佳,可靠性好。
[0091]关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0092]图4是根据一示例性实施例示出的一种日志校验装置400的框图。例如,装置400可以被提供为一服务器。参照图4,装置400包括处理组件422,其进一步包括一个或多个处理器,以及由存储器432所代表的存储器资源,用于存储可由处理组件422的执行的指令,例如应用程序。存储器432中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件422被配置为执行指令,以执行上述方法实施例。
[0093]装置400还可以包括一个电源组件426被配置为执行装置400的电源管理,一个有线或无线网络接口 450被配置为将装置400连接到网络,和一个输入输出(I/O)接口 458。装置400可以操作基于存储在存储器432的操作系统,例如Windows Server?,Mac OS X?,Unix?,LinuxTM,FreeBSD? 或类似。
[0094]本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
[0095]应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
【主权项】
1.一种日志校验方法,其特征在于,所述方法包括: 获取待校验的日志数据,所述日志数据中包括多条消息的中间结果数据; 根据第一解析字段对所述日志数据进行分类,得到至少一组分类数据; 对于每一组分类数据,根据第二解析字段,对所述分类数据中同一条消息的多个中间结果数据进行合并,形成至少一条消息的处理路径; 基于每一条消息的处理路径对所述日志数据的处理流程完整性进行校验。2.根据权利要求1所述的方法,其特征在于,所述基于每一条消息的处理路径对所述日志数据的处理流程完整性进行校验,包括: 对于每一条消息,对所述消息的处理路径上中间结果数据的合并处理执行先后顺序进行排序,确定最后一次合并处理形成的中间结果数据集合; 对所述中间结果数据集合中每一条处理路径的入口数和出口数进行统计; 若任意一条处理路径的出口数大于入口数,则检测出所述日志数据不完整。3.根据权利要求1所述的方法,其特征在于,所述根据第一解析字段对所述日志数据进行分类,得到至少一组分类数据之前,所述方法还包括: 将所述日志数据上传至消息队列中; 所述根据第一解析字段对所述日志数据进行分类,得到至少一组分类数据,包括: 当通过设置的处理线程监听到所述消息队列中存储有所述日志数据时,执行所述根据第一解析字段对所述待校验的日志数据进行初步分类,得到至少一组分类数据的步骤。4.根据权利要求1所述的方法,其特征在于,所述根据第一解析字段对所述日志数据进行分类,得到至少一组分类数据之后,所述方法还包括: 将所述至少一组分类数据分列存储在中间表中。5.根据权利要求2所述的方法,其特征在于,所述对所述中间结果数据集合中每一条处理路径的入口数和出口数进行统计,包括: 采用键值对的形式,对所述中间结果数据集合中每一条处理路径的入口数和出口数进行统计。6.—种日志校验装置,其特征在于,所述装置包括: 获取模块,被配置为获取待校验的日志数据,所述日志数据中包括多条消息的中间结果数据; 分类模块,被配置为根据第一解析字段对所述日志数据进行分类,得到至少一组分类数据; 合并模块,被配置为对于每一组分类数据,根据第二解析字段,对所述分类数据中同一条消息的多个中间结果数据进行合并,形成至少一条消息的处理路径; 校验模块,被配置为基于每一条消息的处理路径对所述日志数据的处理流程完整性进行校验。7.根据权利要求6所述的装置,其特征在于,所述校验模块,被配置为对于每一条消息,对所述消息的处理路径上中间结果数据的合并处理执行先后顺序进行排序,确定最后一次合并处理形成的中间结果数据集合;对所述中间结果数据集合中每一条处理路径的入口数和出口数进行统计;若任意一条处理路径的出口数大于入口数,则检测出所述日志数据不完整。8.根据权利要求6所述的装置,其特征在于,所述装置还包括: 上传模块,被配置为将所述日志数据上传至消息队列中; 所述分类模块,被配置为当通过设置的处理线程监听到所述消息队列中存储有所述日志数据时,执行所述根据第一解析字段对所述待校验的日志数据进行初步分类,得到至少一组分类数据的步骤。9.根据权利要求7所述的装置,其特征在于,所述装置还包括: 存储模块,被配置为将所述至少一组分类数据分列存储在中间表中。10.根据权利要求6所述的装置,其特征在于,所述校验模块,被配置为采用键值对的形式,对所述中间结果数据集合中每一条处理路径的入口数和出口数进行统计。11.一种日志校验装置,其特征在于,包括: 处理器; 用于存储处理器可执行指令的存储器; 其中,所述处理器被配置为:获取待校验的日志数据,所述日志数据中包括多条消息的中间结果数据;根据第一解析字段对所述日志数据进行分类,得到至少一组分类数据;对于每一组分类数据,根据第二解析字段,对所述分类数据中同一条消息的多个中间结果数据进行合并,形成至少一条消息的处理路径;基于每一条消息的处理路径对所述日志数据的处理流程完整性进行校验。
【文档编号】G06F17/30GK105843941SQ201610204404
【公开日】2016年8月10日
【申请日】2016年4月1日
【发明人】张旭华, 张涛, 陈志军
【申请人】北京小米移动软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1