CN117591673B - 日志分组方法、装置、设备及存储介质 - Google Patents

日志分组方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN117591673B
CN117591673B CN202410065839.7A CN202410065839A CN117591673B CN 117591673 B CN117591673 B CN 117591673B CN 202410065839 A CN202410065839 A CN 202410065839A CN 117591673 B CN117591673 B CN 117591673B
Authority
CN
China
Prior art keywords
event
original log
event group
group
candidate
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
Application number
CN202410065839.7A
Other languages
English (en)
Other versions
CN117591673A (zh
Inventor
石志林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202410065839.7A priority Critical patent/CN117591673B/zh
Publication of CN117591673A publication Critical patent/CN117591673A/zh
Application granted granted Critical
Publication of CN117591673B publication Critical patent/CN117591673B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/211Selection of the most significant subset of features
    • G06F18/2113Selection of the most significant subset of features by ranking or filtering the set of features, e.g. using a measure of variance or of feature cross-correlation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/30Computing systems specially adapted for manufacturing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Databases & Information Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请公开了一种日志分组方法、装置、设备及存储介质,涉及计算机技术领域,用于对日志中记录的事件之间的关系进行精确捕捉,提高分组结果的准确率,以提高日志分析结果的准确率和效率。在本申请中,获取原始日志集与至少包括各类型约束条件和各内容约束条件的约束条件集;将各原始日志事件按照先后顺序进行排列组合,并基于排列组合结果获得多个候选事件组;其中,归属于同一候选事件组的各原始日志事件匹配相同的类型约束条件和内容约束条件;获得每个候选事件组与原始日志集之间的关联度,然后从各类型约束条件各自对应的至少一个候选事件组中选取关联度满足预设关联度条件的候选事件组,作为相应类型约束条件的目标事件组。

Description

日志分组方法、装置、设备及存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及人工智能技术领域,提供一种日志分组方法、装置、设备及存储介质。
背景技术
随着人工智能(Artificial Intelligence,AI)技术的日益发展,大多数据分析系统都需要使用系统记录的事件日志进行流程挖掘,以便优化数据处理过程。
为了提高数据分析系统的分析效率,需要将事件日志中记录的海量日志事件进行分组,将低级事件组合成高级事件,然后根据高级事件进行日志分析,从而节省日志分析的事件,提高效率。
相关技术中,计算待分组日志对应的数值类目标字段序列与第一日志分组对应的第一参考字段序列之间的第一相似度、以及待分组日志对应的文本类目标字段序列与第一日志分组对应的第二参考字段序列之间的第二相似度;若根据第一相似度和第二相似度确定的综合相似度不大于预设阈值,则将待分组日志添加到第一日志分组中。
但是上述技术中对日志进行分组,只考虑了待分组日志与第一分组日志之间的相似度,而在实际应用中,采用此种方式进行分组,会影响分组结果准确性,不能真实体现日志事件的操作过程,不贴合实际场景的规划方式,进而分组结果会影响日志分析结果的准确性。
发明内容
本申请实施例提供一种日志分组方法、装置、设备及存储介质,用于对日志中记录的事件之间的关系进行精确捕捉,提高分组结果的准确率,以提高日志分析结果的准确率和效率。
第一方面,本申请实施例提供一种日志分组方法,所述方法包括:
获取原始日志集与约束条件集,所述原始日志集包括:具有先后顺序的各原始日志事件,所述约束条件集至少包括:各类型约束条件和各内容约束条件;
将所述各原始日志事件按照所述先后顺序进行排列组合,并基于排列组合结果获得多个候选事件组;其中,归属于同一候选事件组的各原始日志事件匹配相同的类型约束条件和内容约束条件;
针对每个所述候选事件组,分别执行以下操作:基于所述原始日志集的第一事件数量、一个候选事件组的第二事件数量,以及所述原始日志集中的其他事件的第三事件数量,获得所述一个候选事件组与所述原始日志集之间的关联度;所述其他事件为:所述原始日志集中,按照所述先后顺序,位于所述一个候选事件组中各候选日志事件之间的其他候选日志事件;
分别在所述各类型约束条件各自对应的至少一个候选事件组中,选取关联度满足预设关联度条件的候选事件组,作为相应类型约束条件的目标事件组。
第二方面,本申请实施例提供一种日志分组装置,所述装置包括:
获取单元,用于获取原始日志集与约束条件集,所述原始日志集包括:具有先后顺序的各原始日志事件,所述约束条件集至少包括:各类型约束条件和各内容约束条件;
匹配单元,用于将所述各原始日志事件按照所述先后顺序进行排列组合,并基于排列组合结果获得多个候选事件组;其中,归属于同一候选事件组的各原始日志事件匹配相同的类型约束条件和内容约束条件;
关联度确定单元,用于针对每个所述候选事件组,分别执行以下操作:基于所述原始日志集的第一事件数量、一个候选事件组的第二事件数量,以及所述原始日志集中的其他事件的第三事件数量,获得所述一个候选事件组与所述原始日志集之间的关联度;所述其他事件为:所述原始日志集中,按照所述先后顺序,位于所述一个候选事件组中各候选日志事件之间的其他候选日志事件;
目标事件组确定单元,用于分别在所述各类型约束条件各自对应的至少一个候选事件组中,选取关联度满足预设关联度条件的候选事件组,作为相应类型约束条件的目标事件组。
在一种可能的实现方式中,所述约束条件集还包括:数量约束条件;
所述匹配单元具体用于:
将所述各原始日志事件按照所述先后顺序进行排列组合,得到多个初始事件组;
将所述多个初始事件组中的各原始日志事件,与所述各类型约束条件和所述各内容约束条件进行匹配,若一个初始事件组的各原始日志事件均匹配相同的类型约束条件和内容约束条件,则将所述一个初始事件组作为参考事件组;
针对每个所述参考事件组,分别执行以下操作:将所述参考事件组中原始日志事件的数量与所述数量约束条件进行匹配;若所述参考事件组中原始日志事件的数量与所述数量约束条件相匹配,则将所述参考事件组作为候选事件组。
在一种可能的实现方式中,所述关联度确定单元,具体用于:
基于所述第一事件数量和所述第二事件数量,确定所述原始日志集中匹配事件的第四事件数量;所述匹配事件为:所述原始日志集中,与所述一个候选事件组中的原始日志事件匹配相同的类型约束条件和内容约束条件,且不归属于所述一个候选事件组的原始日志事件;
基于所述第三事件数量与所述第四事件数量之和,与所述第二事件数量的比值,获得所述一个候选事件组与所述原始日志集之间的关联度;其中,所述比值与所述关联度呈负相关。
在一种可能的实现方式中,所述目标事件组确定单元,具体用于:
针对所述各类型约束条件,分别执行以下操作:
若所述类型约束条件对应一个候选事件组,则将所述候选事件组作为所述类型约束条件对应的目标事件组;
若所述类型约束条件对应多个候选事件组,则将所述多个候选事件组中关联度最大的候选事件组作为所述类型约束条件对应的目标事件组。
在一种可能的实现方式中,所述匹配单元具体用于:
检测所述多个初始事件组中的原始日志事件的总数量;
根据所述总数量对所述多个初始事件组进行排序,并按照排序结果,将所述多个初始事件组中的各原始日志事件,与所述各类型约束条件和所述各内容约束条件进行匹配。
在一种可能的实现方式中,所述匹配单元具体用于:根据所述总数量从少到多的顺序,对所述初始事件组中的各原始日志事件,与所述各类型约束条件和所述各内容约束条件进行匹配;
所述匹配单元还包括:
若所述初始事件组的各原始日志事件匹配不同的类型约束条件和内容约束条件,则获取所述多个初始事件组中的各原始日志事件的标识信息;
将所述初始事件组的各原始日志事件的标识信息与所述多个初始事件组中其他初始事件组的各原始日志事件的标识信息进行比较,得到至少一个第一关联事件组;所述至少一个第一关联事件组为:所述其他初始事件组中,包括所述初始事件组中全部原始日志事件的标识信息的至少一个事件组;
将所述初始事件组以及所述至少一个第一关联事件组进行删除。
在一种可能的实现方式中,所述匹配单元具体用于:根据所述总数量从多到少的顺序,对所述初始事件组中的各原始日志事件,与所述各类型约束条件和所述各内容约束条件进行匹配;
所述若一个初始事件组的各原始日志事件均匹配相同的类型约束条件和内容约束条件,则将所述一个初始事件组作为参考事件组之后,所述匹配单元还包括:
获取所述多个初始事件组中的各原始日志事件的标识信息;
将所述一个初始事件组的各原始日志事件的标识信息与所述多个初始事件组中其他初始事件组的各原始日志事件的标识信息进行比较,得到至少一个第二关联事件组;所述至少一个第二关联事件组为:所述其他初始事件组中,包括所述一个初始事件组中至少一个原始日志事件的至少一个事件组;
将所述至少一个第二关联事件组作为参考事件组。
在一种可能的实现方式中,所述分别在所述各类型约束条件各自对应的至少一个候选事件组中,选取关联度满足预设关联度条件的候选事件组,作为相应类型约束条件的目标事件组之后,所述装置还包括:
替换单元,用于使用相应类型约束条件的目标事件组,对所述目标事件组中的各原始日志事件全部替换,得到所述原始日志集对应的目标日志集。
第三方面,本申请实施例提供一种电子设备,其包括存储器和处理器,其中:
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序以实现本申请实施例提供的任一所述日志分组方法的步骤。
第四方面,本申请实施例提供一种计算机可读存储介质,其包括计算机程序,当所述计算机程序在电子设备上运行时,所述计算机程序用于使所述电子设备执行本申请实施例提供的任一所述日志分组方法的步骤。
第五方面,本申请实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序存储在计算机可读存储介质中;当电子设备的处理器从所述计算机可读存储介质读取所述计算机程序时,所述处理器执行所述计算机程序,使得所述电子设备执行本申请实施例提供的任一所述日志分组方法的步骤。
本申请有益效果如下:
本申请实施例提供一种日志分组方法、装置、设备及存储介质;在本申请实施例中,首先获取原始日志集以及至少包括各类型约束条件和各内容约束条件的约束条件集,然后将各原始日志事件按照先后顺序进行排列组合,并将组合后的事件组中的各原始日志事件与约束条件集进行匹配,从而获得多个候选事件组;其中,归属于同一候选事件组的各原始日志事件匹配相同的类型约束条件和内容约束条件;进一步再通过各候选事件组与原始日志集之间的关联度,确定各类型约束条件的目标事件组,得到原始日志集最终的分组结果。
由此,不仅通过关联度这一指标对原始日志事件进行分组,还通过事件的事件类型和事件内容对原始日志事件进行分组,通过多维度指标对原始日志集中事件之间的关系进行精确捕捉,使最终的分组结果能够更加体现实际场景中的操作过程和准确,按照分组结果进行日志分析,与实际操作过程会更接近,进而提高了日志分析结果的准确性和效率。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种原始日志事件的流程示意图;
图2为本申请实施例提供的一种原始日志事件分组后的流程示意图;
图3为本申请实施例提供的一种应用场景示意图;
图4为本申请实施例提供的一种日志分组方法的流程示意图;
图5为本申请实施例提供的一种约束条件集的示意图;
图6为本申请实施例提供的一种候选事件组的获取方法的流程示意图;
图7为本申请实施例提供的一种基于DFG的匹配方法的示意图;
图8为本申请实施例提供的一种基于DFG的匹配方法的示意图;
图9为本申请实施例提供的一种根据总数量从少到多的顺序进行匹配的流程示意图;
图10为本申请实施例提供的一种根据总数量从少到多的顺序进行匹配的示意图;
图11为本申请实施例提供的一种根据总数量从多到少的顺序进行匹配的流程示意图;
图12为本申请实施例提供的一种根据总数量从多到少的顺序进行匹配的示意图;
图13为本申请实施例提供的一种原始日志集的分组示意图;
图14为本申请实施例提供的一种目标日志集的示意图;
图15为本申请实施例提供的一种日志分组方法的示意图;
图16为本申请实施例提供的一种日志分组装置的结构示意图;
图17为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及有益效果更加清楚明白,以下将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请部分实施例,并不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例中,术语“模块”或“单元”是指有预定功能的计算机程序或计算机程序的一部分,并与其他相关部分一起工作以实现预定目标,并且可以通过使用软件、硬件(如处理电路或存储器)或其组合来全部或部分实现。同样的,一个处理器(或多个处理器或存储器)可以用来实现一个或多个模块或单元。此外,每个模块或单元都可以是包含该模块或单元功能的整体模块或单元的一部分。
为了便于本领域技术人员更好地理解本申请的技术方案,下面对本申请涉及的部分概念进行介绍。
流程挖掘:是一种将业务过程中的活动日志转化为高级表示,以进行分析的技术。流程挖掘的日志抽象方法包括聚类、抽象模式和监督学习等技术,通过对业务过程中的日志进行数据挖掘,发现业务过程中的行为模式。
事件序列:指记录事件执行顺序的序列,用于在过程挖掘中发现过程模型。在进程执行期间记录事件,并使用表示所有事件的集合。事件/>属于某个事件类型,即其类型可以表示为/>,其中/>是事件类型的集合。每个事件都属于一个事件类型,还带有其上下文信息,如时间戳、执行角色或相关数值等信息。一般用数据属性集合/>来捕捉这些上下文信息,其中/>表示属性/>的域,其中,/>。用/>表示事件/>的属性的/>值。事件日志是事件序列的集合,可以表示为有向图(DFG),表示两个事件类型是否相互影响。
有向图(Directly Follow Graph,DFG):DFG是一个有向图,其中节点表示日志中的事件类型,边表示事件之间的直接跟随关系,即两个事件在日志中相邻出现。一个事件日志可以表示为一个有向图,该图指示两个事件类型是否在日志中立即相继出现。给定一个日志L,它的DFG是一个有向图,其中顶点集V对应于事件类型/>,边集/>表示直接跟随关系/>,定义为:如果有一个轨迹/>和/>,使/>和/>,则/>
轨迹:是指日志中记录的事件序列,是过程挖掘中的一种重要的数据类型,一个进程的单个执行过程称为一条轨迹。每个事件都有其类型和上下文信息(如时间戳、执行角色或相关数据值),可使用一组特定的数据来描述其上下文。轨迹可以表示为事件序列,其中每个事件在序列中仅出现一次,即没有事件会在多条轨迹中出现。事件日志则是一组轨迹的集合,/>,其中是所有事件日志的全集,/>是中事件类型的集合。
日志抽象: 是将细粒度事件日志转化为更高层级的表示形式,比如基于事件日志进行日志分组,以便进行更有意义地的日志分析。
事件日志抽象:是为事件日志构建相似事件的组。形式上由一个分组来捕捉,即事件类型的分组集合/>,使得每个类/>正好是一个组/>的一部分。给定一组,应用函数abstract:/>以获得抽象日志/>。在尽可能保持轨迹行为的情况下,识别符合满足用户制定的对抽象事件日志的属性要求的分组/>。为此定义dist:/>作为量化分组与事件日志距离的距离函数。此外使用/>来表示可能约束的全域,定义谓词holds:/>来表示对于给定日志,一个分组是否满足一组约束。基于此,本申请中定义了最优事件日志抽象的概念:
最优事件日志抽象:给定一个事件日志,其中包含事件类/>,距离函数dist和一组约束/>,最优事件日志抽象是要找到一个最优的分组/>使得满足以下条件:
是/>的精确覆盖,即;/>
符合所需的约束/>,/>
距离最小。
约束:是指在进程挖掘中将细粒度事件日志转化为更高层次的表示形式的过程,使得用户可以对其结果进行要求的方法。可以通过类型约束条件、基于实例的内容约束条件和分组数量的数量约束条件等约束条件来限制不同的事件类。数量约束条件可以用于限制组大小,而类型约束条件和基于实例的内容约束条件可用于影响高层次结构中分组的特征。
候选事件组:是指符合给定约束条件的事件类型子集,即在特定的约束下被组合在一起的事件类型。使用算法对原始日志集中的各原始日志事件进行聚合,最终得到符合约束条件的候选事件组,可以用于进一步分析。
下文中所用的词语“示例性”的意思为“用作例子、实施例或说明性”。作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
文中的术语“第一”、“第二”仅用于描述目的,而不能理解为明示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个特征,在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
下面对本申请实施例的设计思想进行简要介绍:
随着AI技术的日益发展,大多数据分析系统都需要使用系统记录的事件日志进行流程挖掘,以便优化数据处理过程。
流程挖掘包括基于事件数据的分析方法,这些数据在流程执行过程中记录下来。通过从事件日志中发现这些流程的模型,即事件序列,流程挖掘能揭示流程的真实执行情况。然而记录的事件通常过于细化,无法进行有意义的分析,导致记录的事件序列变化多样,经过分析会产生非常复杂的模型。例如当事件来自实时位置系统和用户界面日志等数据源时,这种趋势会更加明显。为解决这个问题,日志抽象是将日志的事件序列提升为更抽象表示的一种技术,通过将低级事件组合成高级事件来实现。现有的日志抽象技术在采用的算法上存在差异,一般使用事件时间进行聚类或预定义模式的检测方式进行日志抽象。
为实现有效的抽象,当前技术必须使用户能够对所得到的日志进行特定约束的限制。这里主要的挑战是这些约束可能在不同层面粒度上被定义,即它们可能涉及到单个事件、事件类型或事件类型组的属性。找到最佳抽象,即在满足所有限制的同时尽可能接近原始日志的日志,是一个困难的问题,由于可能的抽象数量以及在不同粒度级别上限制的相互作用。因此从计算的角度来看,对日志进行抽象也是具有挑战性的。
对日志进行抽象是将细粒度事件日志转化为更高层级的表示形式,比如基于事件日志进行日志分组,以便进行更有意义地的日志分析。因此为了提高数据分析系统的分析效率,需要将事件日志中记录的海量日志事件进行分组,将低级事件组合成高级事件,然后根据高级事件进行日志分析,从而节省日志分析的事件,提高效率。
相关技术涉及一种日志分组的方法、装置及电子设备,用于解决现有日志分组不适用于真实的日志分析场景导致日志分析结果不准确的问题。该方法包括确定待分组日志对应的第一目标字段序列和第二目标序列,第一目标字段序列至少包括一个数值类目标字段,第二目标序列至少包括一个文本类目标字段,然后计算第一目标字段序列与第一日志分组对应的第一参考字段序列之间的第一距离、以及所述第二目标字段序列与所述第一日志分组对应的第二参考字段序列之间的第二距离,如果第一距离与第二距离之和小于等于预设阈值,则将待分组日志添加到所述第一日志分组中。基于该方法能够有助于提高日志分析结果的准确性。
但是上述技术中对日志进行分组,只考虑了待分组日志与第一分组日志之间的相似度,即距离,而在实际应用中,采用此种方式进行分组,会影响分组结果准确性,不能真实体现日志事件的操作过程,不贴合实际场景的规划方式,进而分组结果会影响日志分析结果的准确性。
对于过程挖掘环境中存在的细粒度事件,驱动着对日志抽象的探索。这样的细粒度事件通常会引起高度的行为变异,导致过程发现算法产生所谓的过程模型由于过于复杂性难以理解。日志抽象通过对事件进行分组,需要减少要描述的行为的变异性,从而克服了过程模型由于过于复杂性难以理解的问题。
例如,参阅图1所示,在工作日志文件中,部分工作流程包括事件ckt、事件ckc、事件acc和事件rej,在采用上述方式基于相似度对这些事件进行分组后,将这些事件分为一个组,得到如图2所示的事件clrk {事件ckt、事件ckc、事件acc、事件rej }。
然而,原始日志集对应如表1所示的四个事件轨迹,对应于实际应用中请求处理的过程。其中事件acc和事件rej表示由第二对象执行,其他事件由第一对象执行。
表1中的事件轨迹显示,每个事件轨迹都始于第一对象接收申请人的请求(rcp)。第一对象根据提供的信息进行非正式(ckc)或详细(ckt)的请求检查。然后将请求转发给第二对象,第二对象接受(acc)或拒绝(rej)请求。接下来第一对象可能会对请求进行优先级分配(prio),然后通知申请人(inf)并归档请求(arv)。最后两个事件可以按照任何顺序执行,如和/>所示。其中,如/>中所示,被拒绝的请求也可以被退回给申请人<rej,rcp>,申请人将重新提交请求重新开始该过程。
表1
尽管上述过程中只有8个事件,但是如图1所示,具有相当复杂的行为流程。图1描述了上述8个事件可以直接相互跟随的流程。该图的复杂性已经模糊了过程的一些关键行为方面,日志抽象可能会缓解这个问题。然而现有的技术集中于如何进行抽象,例如采用上述方式基于相似度对这些事件进行分组后,事件ckt、事件ckc、事件acc、事件rej密切相关,因此将这些事件分为一个组,得到如图2所示的事件clrk {事件ckt、事件ckc、事件acc、事件rej }。然而对于许多分析任务来说,这并没有意义,因为事件ckt和事件ckc由第一对象执行,事件acc和事件rej由第二对象执行,因此,上述分组结果不能体现实际场景中的操作过程,按照分组结果进行日志分析,与实际操作过程会有所差别,进而导致日志分析结果不准确。
有鉴于此,本申请实施例提供一种日志分组方法、装置、设备及存储介质。在本申请实施例中,首先获取原始日志集以及至少包括各类型约束条件和各内容约束条件的约束条件集,然后将各原始日志事件按照先后顺序进行排列组合,并将组合后的事件组中的各原始日志事件与约束条件集进行匹配,从而获得多个候选事件组;其中,归属于同一候选事件组的各原始日志事件匹配相同的类型约束条件和内容约束条件;进一步再通过各候选事件组与原始日志集之间的关联度,确定各类型约束条件的目标事件组,得到原始日志集最终的分组结果。
由此,不仅通过关联度这一指标对原始日志事件进行分组,还通过事件的事件类型和事件内容对原始日志事件进行分组,通过多维度指标对原始日志集中事件之间的关系进行精确捕捉,使最终的分组结果能够更加体现实际场景中的操作过程和准确,按照分组结果进行日志分析,与实际操作过程会更接近,进而提高了日志分析结果的准确性和效率。
以下结合说明书附图对本申请的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本申请,并不用于限定本申请,并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
参考图3,图3为本申请实施例的应用场景示意图。该应用场景中包括终端设备310和服务器320,终端设备310与服务器320之间可以通过通信网络进行通信。
在一种可选的实施方式中,通信网络可以是有线网络或无线网络。因此,终端设备310和服务器320可以通过有线或无线通信方式进行直接或间接地连接。比如,终端设备310可以通过无线接入点与服务器320间接地连接,或发终端设备310通过因特网与服务器320直接地连接,本申请在此不做限制。
在本申请实施例中,终端设备310包括但不限于手机、平板电脑、笔记本电脑、台式电脑、电子书阅读器、智能语音交互设备、智能家电、车载终端等设备;终端设备上可以安装有各种客户端,该客户端可以是应用程序(例如浏览器、游戏软件等),也可以是网页、小程序等,在本申请实施例中,以客户端是个性化推荐应用程序为例进行说明,即记录安装在终端设备上的个性化推荐应用程序中用户的浏览历史、点击行为等日志数据,并通过对这些日志数据进行分组,更好地理解用户的兴趣和行为,从而优化个性化推荐应用程序的推荐算法。
服务器320是与终端设备310中安装的客户端相对应的后台服务器。服务器320可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
需要说明的是,本申请实施例中的日志分组方法可部署在电子设备中,该电子设备可以为服务器或者终端设备。
其中,服务器可以为图3中所示的服务器320,也可以为出图3中所示的服务器320以外的其他服务器。终端设备可以为图3中所示的终端设备310,也可以为出图3中所示的终端设备310以外的其他终端设备。
图3所示只是举例说明,实际上终端设备310和服务器320的数量不受限制,在本申请实施例中不做具体限定。
本申请实施例中,当服务器320的数量为多个时,多个服务器320可组成为一区块链,而服务器320为区块链上的节点;如本申请实施例所公开的日志分组方法,其中所涉及的原始日志集、约束条件集等可保存于区块链上。
本申请实施例提供的日志分组可以应用与搜索、推荐、金融等产品,例如应用于个性化推荐系统,记录用户的浏览历史、点击行为等日志数据,得到原始日志集,通过约束条件集对这些日志数据进行分组,可以更好地理解用户的兴趣和行为,从而优化个性化推荐系统的推荐算法;应用于金融风控系统,记录用户的交易历史、信用评估等日志数据,得到原始日志集,通过约束条件集对这些日志数据进行分组,可以更好地理解用户的信用风险和交易行为,从而优化金融风控系统的风控算法;应用于安全检测系统,记录网络攻击、恶意软件等日志数据,得到原始日志集,通过约束条件集对这些日志数据进行分组,可以更好地理解攻击者的行为和系统的弱点,从而优化安全检测系统的检测算法。
基于上述应用场景,下面结合上述描述的应用场景,根据附图来描述本申请示例性实施方式提供的日志分组方法,需要注意的是,上述应用场景仅是为了便于理解本申请的精神和原理而示出,本申请的实施方式在此方面不受任何限制。
参考图4,图4示例性提供本申请实施例中一种日志分组方法的流程示意图,该方法可以由电子设备执行,该方法中包括:
步骤S400,获取原始日志集与约束条件集,原始日志集包括:具有先后顺序的各原始日志事件,约束条件集至少包括:各类型约束条件和各内容约束条件。
为了实现日志抽象,本申请实施例提供的日志分组方法中使用执行的约束条件集来对原始日志事件进行约束,从而实现日志分组。
如图5所示,本申请实施例中的约束条件集中可以包括各类型约束条件和各内容约束条件,以及对应的各个约束条件的单调性,以便在筛选候选事件组时节省时间。
其中,各类型约束条件用于对原始日志事件的事件类型进行分组,当日志分析的目标是识别和区分不同类型的事件或行为模式时,类型约束条件是适用的。如果目标是理解和区分事件类型之间的差异,或者找出特定类型的事件,应该设置类型约束条件。
类型约束条件可以用来影响单个分组中可以包含的事件类型。本申请实施例中支持任何类型约束条件,只要可以通过考虑独立于/>中的/>,而不必与中的其他分组进行比较来检查满足性。如图5所示,类型约束条件中包括每个分组应包含至少(或最多)一定数量的事件类型的约束,以及不能成为一组和必须成为一组的约束,它们可用于指定两个事件类型必须或不能在一起分组。一般使用/>表示类型约束条件。约束/>的满足可以通过评估每个分组/>的内容直接检查。因此在将事件组于类型约束条件进行匹配时,要求满足/>
该要求表示对于每个分组在所有分组集合中每个类型约束条件r(在约束集合中),都必须满足/>。换句话说,每个分组/>必须满足类型约束条件集合/>中定义的所有类型约束条件。
类型约束条件的单调性: 指定最小要求的类型约束条件,例如最小分组大小的约束,是单调的;如果约束对于分组成立,则对于任何更大的分组/>它也成立。换句话说向分组添加事件类型永远不会导致(新的)约束违反。相反,表达不得超过要求的约束,例如最大分组大小是反单调的;如果约束对于分组/>成立,则对于该分组的任何子集它也成立。但是如果分组/>违反了约束,那么更大的分组/>也会违反它。
示例性的,各类型约束条件可以设置为:每个候选事件组中至少应有5个事件类型、每个候选事件组中最多有10个事件类型、事件类型A和B不能成为同一候选事件组的成员、事件类型C和D必须成为同一候选事件组的成员等等。
内容约束条件适用于分析需要集中在具体的事件实例上的应用场景,比如特定事件的发生时间或特定用户的行为。如果分析的目标是深入了解单个事件的具体情况,即事件的内容,检查时算法应该考察分组中每个事件的具体属性,如时间戳或用户ID,以确定它们是否符合实例约束,因此应该设置内容约束条件。对日志分组进行约束。
内容约束条件是针对群组中每个实例的约束条件,即发生在同一事件轨迹中且其事件类型是的一部分的(不一定是连续的)的事件序列,一般使用/>的简写来定义此类约束条件时,指的是群组/>的属性的值集合。
如图5所示,可以在内容约束条件中定义多种约束条件,涉及属性值、相关角色和持续时间,例如实例(事件)的总成本最多为500元,群组实例(事件组中事件)的平均持续时间必须不超过1小时,也可以表达更宽松的约束条件,例如仅需要在相应群组实例的95%中满足的约束条件:候选事件组中至少95%的事件的成本必须低于500元。
事实上与类型约束条件一样,本申请实施例支持所有可以为单个群组检查满足的内容约束条件。
一般将写成内容约束条件。与其他约束条件不同,这些内容约束条件必须针对事件日志/>进行显式地检查,具体地针对每个组/>和每个/>中的/>实例的轨迹进行检查。
首先定义一个函数inst:,该函数返回给定轨迹中组的所有实例。对于简单案例,inst的操作化很简单:组/>的一个实例是其在轨迹/>上的事件类型的投影。在表1所示的/>,/>和/>中,每个轨迹恰好有一组的每个实例。然而过程通常包括重复的行为,例如轨迹/>,在其中一次请求首先被拒绝,被发送回重新启动流程,然后在第二轮中被接受。在这种情况下为了检测组的多个实例,本申请实施例中一般基于现有技术实例化函数inst,该技术识别轨迹是否包含重复的行为,并相应地拆分序列。对于上述轨迹,这会产生/>
给定函数inst,如果对于每个组,对于每个/>中的每个实例/>,约束/>均成立,则满足约束r。对于不包括特定组实例的轨迹,即/>的轨迹,约束会自动满足。因此对于内容约束条件,对于每个/>,均应检查所有的是否成立。
内容约束条件的单调性:与类型约束条件一样,当它们指定要满足的最小要求时,内容约束条件是单调的,例如每个实例应至少花费一小时。当它们指定不得超过的内容时,它们是反单调的,例如,每个实例最多可以花费一小时。然而在中的约束也可能基于聚合,其行为不是单调的,例如考虑每个组实例的属性值的平均值或方差或包括负值的和的约束,在这些情况下,从组中添加和删除事件类型可能导致违反的约束现在成立,反之亦然。
示例性的,各内容约束条件可以设置为:每个事件中至少应有2个不同的文档代码;一个事件的成本必须最多为500元;一个事件的持续时间平均必须最多为1小时;在一个候选事件组中,连续事件之间的时间间隔最多为10分钟;每个候选事件组可能包含最多1个事件类型的事件;候选事件组中至少95%的事件的成本必须低于500元。
由此,可以根据实际业务需求对类型约束条件和内容约束条件进行设置,以便针对性的对原始日志集进行分组。
步骤S401,将各原始日志事件按照先后顺序进行排列组合,并基于排列组合结果获得多个候选事件组;其中,归属于同一候选事件组的各原始日志事件匹配相同的类型约束条件和内容约束条件。
可选的,若本申请实施例提供的约束条件集还包括数量约束条件;则将各原始日志事件按照先后顺序进行排列组合,并基于排列组合结果获得多个候选事件组,还可以执行为如图6所示的步骤:
首先,将各原始日志事件按照先后顺序进行排列组合,得到多个初始事件组;
然后,将多个初始事件组中的各原始日志事件,与各类型约束条件和各内容约束条件进行匹配,若一个初始事件组的各原始日志事件均匹配相同的类型约束条件和内容约束条件,则将一个初始事件组作为参考事件组;
最后,针对每个参考事件组,分别执行以下操作:将参考事件组中原始日志事件的数量与数量约束条件进行匹配;若参考事件组中原始日志事件的数量与数量约束条件相匹配,则将参考事件组作为候选事件组。
其中,数量约束条件通常涉及分组的大小或数量,可以用来限制分组的大小,即在抽象日志中出现的高级活动的数量。上限限制了获取的日志的大小和复杂度,而下限可以限制应用的抽象程度。例如,可能要求一个分组必须包含至少或最多特定数量的事件。
具体实施时,在对每个参考事件组与数量约束条件进行匹配时会计算每个分组中的事件数量,并与数量约束条件中指定的最小或最大数量进行比较。一般使用来指代分组约束的子集。约束是否成立可以直接根据分组大小进行检查。因此要求匹配时算法满足
可选的,在本申请实施例中将各原始日志事件按照先后顺序进行排列组合,得到多个初始事件组之后,需要根据设定的约束条件集对多个初始事件组进行匹配,确定与约束条件集匹配的初始事件组为候选事件组,即筛选出符合约束条件集的事件类型的候选事件组,即/>的子集,因此为了加快匹配的效率,本申请实施例中设定以下几种方法对初始事件组和约束条件集进行匹配,从而更快的筛选出候选事件组。
方法一:穷举法
在获得多个初始事件组之后,应该对每个事件类型的组合,即的每个子集(初始事件组)进行检查,从而筛选出符合约束条件集的初始事件组。但是在此筛选过程中也能够通过(在某一时刻)只寻找在日志中至少共同出现一次的组/>(称为组共现)以及约束条件集/>中的单调性来显著减少该筛选方法的时间,提高效率。在该方法中输入为原始日志集/>和约束条件集/>;输出为候选事件组/>
在该方法中,首先进行初始化。根据约束条件集的单调性设置要应用的约束检查模式。具体地说,如果约束条件集/>包含至少一个反单调的约束条件,则将约束检查模式设置为反单调;如果所有约束/>中的约束均是单调的(即每个组必须检查的所有约束),则将约束检查模式设置为单调;否则将约束检查模式设置为非单调。在设置约束检查模式的基础上还采用了预剪枝和后剪枝两种剪枝策略,在保证结果准确性的同时,减少搜索空间或计算量,以提高算法的效率和性能。
首先考虑一个组和约束条件集/>,在该约束条件集中所有约束条件R\RG均是单调的。如果/>,则任何超组/>也将遵守约束条件,将更多的事件分类添加到/>中,就永远不会导致单调约束的违反。因此在单调模式下,可以避免验证的成本。然后考虑一个组/>,如果违反任何反单调约束条件集/>,即,则没有超组/>能够遵守/>,因此在反单调模式下,可以跳过/>的所有超组的验证。
在初始化之后,将所有的事件类作为单一组合并到潜在候选集toCheck中,该集合将在第一轮迭代中被检查。在每轮迭代中首先建立一个新组集/>,其中包含所有符合约束条件集的toCheck中的组。在验证时首先检查/>中的约束条件。
在单调模式下,由于在中已经存在/>的情况下,因此单调约束将对/>也满足,采用预剪枝策略直接添加任何组/>。对于其他组和其他两种模式,需要检查每个的/>。在建立了/>之后,新候选项被添加到总的组集/>中。
接下来使用更大的群组填充toCheck,以在下一轮进行评估。在反单调模式下,使用后剪枝策略只需要扩展已知符合中所有反单调约束的群组。因此在这种情况下,只需要扩展中的群组。/>
这种扩展包括和来自/>的附加事件类组成的新群组。反单调模式避免了创建包含已知违反/>的子群组的群组。对于单调和非单调模式,还需要扩展当前违反约束/>的群组,因为它们的超群组仍可能导致约束满足。因此在这些模式下,扩展toCheck中的所有群组。之后只保留/>中实际出现在事件日志中的组,通过检查/>中是否存在至少一个轨迹,该轨迹包含中所有事件类型的事件。如果没有新的候选组需要检查则算法停止,并返回所有候选事件组/>,得到候选事件组/>
穷举法虽然保证产生一个完整的候选组集,但其时间复杂度与原始日志集中原始日志事件的数量呈指数关系,即。在最坏的情况下,必须针对/>的每个子集分别分析整个原始日志集,由于每个群组必须单独与所有轨迹进行检查,因此主要取决于轨迹数量。
鉴于每个已检查的群组都可能成为候选,穷举法的空间复杂度也受到的限制。因此这种穷举法很快就可能变得难以实现。由此,本申请实施例中还提供了一种基于DFG的匹配方法,检索有凝聚力的候选事件组,即可能成为最优分组一部分的候选事件组。通过利用输入数据的过程导向性,可以有效地识别有凝聚力的候选项。使用此实例化获取的任何解决方案仍然保证满足约束条件集/>
方法二:基于DFG的匹配方法
在获得多个初始事件组之后,利用事件日志中的行为规律,以便有效地推导出一组紧密的候选组。日志抽象旨在找到连续的事件组,因此更有可能将接近发生的事件组合在一起。如图1的示例中,即使请求接收(rcp)事件类和存档请求 (arv) 事件类满足限制(两者都由第一对象执行),它们也不太可能以最优分组的形式出现在同一活动中,因为rcp在每个轨迹的开头出现而arv在末尾出现。利用最优分组的这一特点,通过建立事件日志的DFG,并遍历该图以找到高度凝聚的候选事件组。由于此遍历再次迭代增加候选大小,因此仍然可以应用上述穷举法中的两种修剪策略。
在该方法中输入为原始日志集、约束条件集/>以及用于定义波束搜索的宽度K;输出为候选事件组/>
在该方法中首先初始化,并设置约束检查模式为约束条件集对应的检查模式,然后建立原始日志集/>的DFG。
然后对于DFG中的每个节点n(即每个事件),将DFG中的多个最小路径添加到第一次迭代中要检查的候选路径集合中。原则上可以评估每个路径,p的节点是否形成合适的候选事件组,但是在具有大量变异性的事件日志中,要检查的路径数量仍然相当大。因此一般通过加入beam-search搜索组件来进一步修剪搜索空间。在这个beam-search搜索组件中仅保留每次迭代中最有前途的k个候选者,为此每次迭代都从重新排序的候选路径中开始。
在进行迭代时,优先考虑节点之间距离最近的路径,即根据排序;然后检查由路径中的节点定义的每个组/>(即/>),以满足约束条件集。与穷举法一样,在每个事件组中,先检查类型约束条件/>然后检查内容约束条件/>,以最小化每个事件组的验证成本。
在单调和反单调约束检查模式中,采用与穷举法相同的修剪策略。因此在单调模式中,如果已经见过一个子集,符合约束条件,则可以直接将一个组添加到候选集/>中。而在反单调模式中,不再扩展违反约束条件的路径。
其中,每次迭代的下一次迭代的事件组是通过将 toExpand 中的路径展开为其第一个节点的前继或最后一个节点的后继来创建的。然后仅保留在原始日志集中实际出现的组的 toCheck 路径。如果没有事件组剩余,则返回集合,得到候选事件组。
示例性的,图7和图8分别展示了运行示例的一次迭代部分,并突出显示了检查的候选事件组。如图7所示,第一次迭代涉及长度为2的路径的评估,这些路径由相连的两个事件组成,如{ rcp,ckt}、{ckt,acc }、{ acc,prio }、{ prio,inf }以及{ inf,arv }等路径。然后使用约束条件集中的类型约束条件和内容约束条件对这些路径进行检查,得到检查结果,例如检查后,得到了符合约束条件集的候选路径{ rcp,ckt}、{ prio,inf}以及{inf,arv},而{ckt,acc}等则被认为不符合约束条件集,被识别为违反路径,因为acc和ckt由不同的执行对象执行。
鉴于各个事件在DFG中的距离,此次迭代避免了检查像{ rcp,arv}和{ckt,inf}这样的事件组,不对{ rcp,arv}和{ckt,inf}事件组进行检查。
在下一次迭代中,由于运行示例涉及反单调约束,我们连接符合约束的路径对,以获得长度为3的候选路径,如图8中所示的{ prio,inf,arv },然后使用约束条件集中的类型约束条件和内容约束条件对候选路径进行检查,得到检查结果,例如检查后,得到了符合约束条件集的候选路径{ prio,inf,arv }。
基于DFG的匹配方法比穷举法更为高效。在每次迭代中,该方法将k个组扩展为最多-1个新候选项。因此给定最大/>迭代,最坏情况下的时间和空间复杂度是/>。此外只有DFG是完整的有向图且未施加任何约束时,才会出现此最坏情况。
可选的,为了节省匹配资源,提高匹配效率,本申请实施例中在上述两个方法中将多个初始事件组中的各原始日志事件,与各类型约束条件和各内容约束条件进行匹配,可以执行为以下操作:
检测多个初始事件组中的原始日志事件的总数量;
根据总数量对多个初始事件组进行排序,并按照排序结果,将多个初始事件组中的各原始日志事件,与各类型约束条件和各内容约束条件进行匹配。
由此,可以根据各初始事件组中的原始日志事件的总数量,确定与各类型约束条件和各内容约束条件进行匹配的顺序。
其中,根据不同的排序结果将多个初始事件组中的各原始日志事件,与各类型约束条件和各内容约束条件进行匹配可以具体实施为以下两种实施方式:
如图9所示,实施方式1可以执行为以下步骤:
步骤901,根据总数量从少到多的顺序,对初始事件组中的各原始日志事件,与各类型约束条件和各内容约束条件进行匹配;
步骤902,若初始事件组的各原始日志事件匹配不同的类型约束条件和内容约束条件,则获取多个初始事件组中的各原始日志事件的标识信息;
步骤903,将初始事件组的各原始日志事件的标识信息与多个初始事件组中其他初始事件组的各原始日志事件的标识信息进行比较,得到至少一个第一关联事件组;至少一个第一关联事件组为:其他初始事件组中,包括初始事件组中全部原始日志事件的标识信息的至少一个事件组;
步骤904,将初始事件组以及至少一个第一关联事件组进行删除。
示例性的,如图10所示,假设多个初始事件组分别为{a}、{b}、{c}、{d}、{a、b }、{a、c }、{a、d}、{b、c }、{ b、d}、{ c、d}、{a、b、c }、{a、b、d}、{b、c、d}、{a、c、d}、{a、b、c、d},根据总数量从少到多的顺序,首先分别将初始事件组{a}、{b}、{c}、{d}与各类型约束条件和各内容约束条件进行匹配,全部匹配,则全部加入参考事件组;然后分别将初始事件组{a、b }、{ a、c }、{a、d}、{b、c }、{ b、d}、{ c、d}与各类型约束条件和各内容约束条件进行匹配;假设初始事件组{a、b}匹配不同的类型约束条件和内容约束条件,则直接删除初始事件组{a、b},以及删除同时具有事件a和事件b的初始事件组{a、b、c }、{a、b、d}、{a、b、c、d},之后不对初始事件组{a、b、c }、{a、b、d}、{a、b、c、d}进行匹配,仅对初始事件组{b、c、d}、{a、c、d}进行匹配,若匹配,则将初始事件组{b、c、d}、{a、c、d}也加入参考事件组。
由此,可以直接删除至少一个第一关联事件组,不匹配至少一个第一关联事件组,节省了匹配资源,提高匹配效率,进而提高了日志分析结果的效率。
如图11所示,实施方式2可以执行为以下步骤:
步骤1101,根据总数量从多到少的顺序,对初始事件组中的各原始日志事件,与各类型约束条件和各内容约束条件进行匹配;
步骤1102,若一个初始事件组的各原始日志事件均匹配相同的类型约束条件和内容约束条件,则将一个初始事件组作为参考事件组之后,还可以获取多个初始事件组中的各原始日志事件的标识信息;
步骤1103,将一个初始事件组的各原始日志事件的标识信息与多个初始事件组中其他初始事件组的各原始日志事件的标识信息进行比较,得到至少一个第二关联事件组;至少一个第二关联事件组为:其他初始事件组中,包括一个初始事件组中至少一个原始日志事件的至少一个事件组;
步骤1104,将至少一个第二关联事件组作为参考事件组。
示例性的,如图12所示,假设多个初始事件组分别为{a}、{b}、{c}、{d}、{a、b}、{a、c}、{a、d}、{b、c }、{b、d}、{c、d}、{a、b、c }、{a、b、d}、{b、c、d}、{a、c、d}、{a、b、c、d},根据总数量从多到少的顺序,首先将初始事件组{a、b、c、d}与各类型约束条件和各内容约束条件进行匹配,若不匹配,则将初始事件组{a、b、c、d}进行删除,接着分别将初始事件组{a、b、c}、{a、b、d}、{b、c、d}、{a、c、d}与各类型约束条件和各内容约束条件进行匹配;假设初始事件组{a、b、c }、{a、c、d}匹配相同的类型约束条件和内容约束条件,则初始事件组{a、b、d}、{b、c、d}不匹配,则直接删除初始事件组{a、b、d}、{b、c、d},以及获取包括初始事件组{a、b、c }、{a、c、d}中至少一个原始日志事件的第二关联事件组{a}、{b}、{c}、{d}、{a、b }、{ a、c}、{a、d}、{b、c }、{ c、d},之后不对初始事件组{a}、{b}、{c}、{d}、{a、b }、{ a、c }、{a、d}、{b、c }、{ c、d}进行匹配,直接加入参考事件组,仅对初始事件组{b、d}进行匹配,若不匹配,则将初始事件组{b、d}进行删除。
由此,通过将至少一个第二关联事件组直接加入参考事件组,可以节省匹配资源,提高匹配效率,进而提高了日志分析结果的效率。
在根据穷举法和基于DFG的匹配方法对初始事件组和约束条件集进行匹配之后,获得候选事件组之后,还可以确定已经识别的候选事件组是否可以合并,以获得更多的候选事件组。
在该方法中输入为原始日志集、约束条件集/>以及候选事件组/>;输出为扩展候选事件组/>。首先建立一个由共享相同前后集合的候选事件组组成的集合equivGroups,然后创建一个由该集合中所有候选事件组对组成的堆栈。
对于该堆栈中的每个候选事件组对,首先使用约束条件集评估/>和/>是否确实是彼此互斥的,其次确定它们的扩展候选事件组/>仍遵守约束条件集。前者通过确保不存在从/>中的节点到/>中的节点的边缘或反之亦然来实现,而对于后者只需要评估对约束条件集/>,因为当合并候选事件组时不能违反实例约束。
如果确实是一个正确的扩展候选事件组,接着确定是否还可以将此扩展候选事件组与其前集、后集或两者一起组合以创建更多的扩展候选事件组。
示例性的,在图7中已经检查出了候选事件组{ckt,ckc},该候选事件组的前集是候选事件组{rcp},通过该方法可以识别到该候选事件组和它的前集(候选事件组{rcp})一起形成了一个正确的扩展候选事件组:{rcp,ckt,ckc},因为{rcp,ckt}和{rcp,ckc}也已经是一部分,所以扩展候选事件组:{rcp,ckt,ckc}也符合约束条件集。
在建立了扩展候选事件组之后,将任何新的二元组添加到堆栈中,以便可以识别由三个或更多候选事件组组成的扩展候选事件组;当所有相关的二元组都被评估时,将更新后的候选事件组集(包括扩展候选事件组和原本的候选事件组)作为最终输出。
由此,本申请中通过用户设定的约束条件集对原始日志集进行日志分组,利用原始日志集中发现的事件依赖关系,可以有效提升算法的性能和日志分组的准确性。
在确定原始日志集对应的多个候选事件组之后,可以根据距离函数来量化每个组中事件分类的相关性,从而确定多个候选事件组中的目标事件组。
步骤S402,针对每个候选事件组,分别执行以下操作:基于原始日志集的第一事件数量、一个候选事件组的第二事件数量,以及原始日志集中的其他事件的第三事件数量,获得一个候选事件组与原始日志集之间的关联度;其他事件为:原始日志集中,按照先后顺序,位于一个候选事件组中各候选日志事件之间的其他候选日志事件。
可选的,本申请实施例中基于原始日志集的第一事件数量、一个候选事件组的第二事件数量,以及原始日志集中的其他事件的第三事件数量,获得一个候选事件组与原始日志集之间的关联度,可以执行为以下操作:
基于第一事件数量和第二事件数量,确定原始日志集中匹配事件的第四事件数量;匹配事件为:原始日志集中,与一个候选事件组中的原始日志事件匹配相同的类型约束条件和内容约束条件,且不归属于一个候选事件组的原始日志事件;
基于第三事件数量与第四事件数量之和,与第二事件数量的比值,获得一个候选事件组与原始日志集之间的关联度;其中,比值与关联度呈负相关。
具体实施时,本申请中认为对事件抽象应该将事件分类分组在一起,使得分组后的事件具有以下特点:1、组内的事件具有内聚性,即属于单个组实例的事件靠近一起,意味着很少有来自其他实例的夹杂事件;2、组内的事件相关,即属于单个组的事件通常在同一轨迹和组实例中一起发生;3、较大的组胜过一元组,即分组实际上导致了抽象。
为此,本申请实施例中基于原始日志集的第一事件数量和一个候选事件组的第二事件数量,确定出原始日志集中,与一个候选事件组中的原始日志事件匹配相同的类型约束条件和内容约束条件,且不归属于一个候选事件组的原始日志事件的第四事件数量,然后使用第四事件数量与原始日志集中,按照先后顺序,位于一个候选事件组中各候选日志事件之间的其他候选日志事件的第三事件数量之和,与一个候选事件组的第二事件数量的比值,获得一个候选事件组与原始日志集之间的关联度。比值越小,关联度越大。
可选的,本申请实施例中还提供了一种距离函数,使用距离函数公式(1)来描述一个单独的事件组和一个原始日志集/>的相关性:
(1)
其中,表示取出所有在原始日志集/>中与事件组/>相关的实例集合。这些实例是原始日志集/>中与事件组/>中事件分类相关的具体事件序列。/>是指在实例ξ中,与事件组/>相关的原始日志事件的数量,即在给定的组实例ξ的第一个和最后一个事件之间穿插了多少来自其他实例的事件,反映了组内事件的内聚性,即组内事件之间的紧密程度。例如在轨迹/>中,将a和e分组在一起是不利的,因为实例/>有三个穿插的事件。
|ξ|这是实例ξ的长度,即实例ξ包含的原始日志事件的数量。是指在事件组/>中应该出现但在实例ξ中缺失的原始日志事件的数量,反映了组内事件的完整性;|g|是事件组中原始日志事件的数量;/>是与事件组/>相关的所有实例的数量。最后由于单个事件类具有默认完美的内聚性和相关性,因此在公式(1)包括/>,以确保更大的候选事件组具有相同内聚性和相关性的组是受欢迎的,从而尽可能地避免一元组。最终为了量化分组/>的完整距离,我们对/>中所有事件组的距离值求和,得到以下函数,公式(2),并进行最小化,得到最小化总体距离,由此,得到原始日志集对应的多个目标事件组:
(2)
公式(2)的核心是一个二分图,它将每个候选事件组与其所覆盖的原始日志事件连接起来,即它包含边缘/>,其中,/>示例性的,如图13所示,其中中间的圆圈节点表示/>中的原始日志事件,集合表示原始日志事件对应的候选事件组/>,箭头表示其覆盖关系。
给定这个二分图,通过两个决策变量来形式化 规划(MIP)问题:一个是针对候选事件组/>是否被选择,另一个是针对是否覆盖了原始日志事件/>;如果选择则/>为1,否则为0;如果覆盖/>,则/>为1,否则为 0。
然后,使用下列目标函数中寻找候选事件组的最小距离:
该目标函数受公式(3)和公式(4)的限制:
(3)
(4)
其中,公式(3)确保所有的原始日志事件都至少被一个候选事件组/>覆盖。它要求“covered”变量之和等于原始日志事件的总数/>;参数/>是一个二元决策变量,是一个二元决策变量,/>表示原始日志事件/>被覆盖,否则/>
公式 (4)确保如果一个原始日志事件被标记为已覆盖(即/>),那么至少有一个与之相关联的候选事件组/>被选中(即/>)。参数/>是一个二元决策变量,/>= 1表示候选事件组/>被选中,否则/>。/>表示候选事件组和原始日志事件/>之间存在关联,即在二分图中有一条边。
公式(3)和公式(4)共同表明每个原始日志事件都应被覆盖,并且应由恰好一个与之相关联的候选事件组/>被选中。如果需要限制可以选择的候选事件组的数量,则可通过添加公式(5)的约束条件来加以限制:
(5)
公式 (5)确保选择的事件组的数量至多为x或至少为y。这样可以限制日志分组中可以选择的候选事件组的数量,以满足分组约束。其中,参数表示被选中的候选事件组的数量最多不超x,或者/>表示被选中的候选事件组的数量最少不少于y。
最后根据公式(1)计算每个候选事件组与原始日志集之间的关联度,并根据关联度计算最小化总体距离,得到原始日志集对应的多个目标事件组。
步骤S403,分别在各类型约束条件各自对应的至少一个候选事件组中,选取关联度满足预设关联度条件的候选事件组,作为相应类型约束条件的目标事件组。
可选的,本申请实施例中分别在各类型约束条件各自对应的至少一个候选事件组中,选取关联度满足预设关联度条件的候选事件组,作为相应类型约束条件的目标事件组时,针对各类型约束条件,可以执行以下两种不同的操作方式:
方式一:若类型约束条件对应一个候选事件组,则将候选事件组作为类型约束条件对应的目标事件组。
方式二:若类型约束条件对应多个候选事件组,则将多个候选事件组中关联度最大的候选事件组作为类型约束条件对应的目标事件组。
具体实施时,如图13所示,一个类型约束条件对应多个候选事件组{rcp}、{ckt}、{ckc}、{rcp,ckt}、{rcp,ckc}、{ckt,ckc}、{rcp,ckt,ckc},通过计算关联度,确定关联度最大的候选事件组为{rcp,ckt,ckc},则将{rcp,ckt,ckc}作为类型约束条件对应的目标事件组,覆盖原始日志事件rcp、ckt、ckc。而一个类型约束条件对应一个候选事件组{acc},直接将{acc}作为类型约束条件对应的目标事件组,覆盖原始日志事件acc。最终得到原始日志集对应的目标事件组为{rcp,ckt,ckc}、{acc}、{rej}、{prio、 inf、 arv}。
由此,本申请实施例提供的日志分组方法在满足约束条件集的基础上,还选择了与原始日志集之间关联度最大,即距离最小的候选事件组作为最后的目标事件组。
可选的,本申请实施例中分别在各类型约束条件各自对应的至少一个候选事件组中,选取关联度满足预设关联度条件的候选事件组,作为相应类型约束条件的目标事件组之后,还需要使用相应类型约束条件的目标事件组,对目标事件组中的各原始日志事件全部替换,得到原始日志集对应的目标日志集。
具体实施时,本申请实施例中通过引用约束条件集对如图1所示的原始日志集进行分组。假设当用户想了解执行对象之间的交互,而忽略他们执行的具体步骤细节时,可以强制执行某个约束条件,要求每个事件组只包括由同一执行对象执行的事件,由此可以使用这种约束条件对事件进行分组。但是如果直接应用这种约束条件,则会导致得到两个事件组,即 和/>。包括发生在流程开始时的事件,也包括仅在流程结束时发生的事件,同时将/>中的多个事件抽象为一个事件会掩盖事件{acc}和事件{rej}相互排斥的事实,以及仅在事件{rej}之后,流程才有可能重新启动的事实,因此直接使用该约束条件进行日志抽象也不是有意义的。为此本申请实施例中可以使用用户指定多个约束条件对事件进行分组,同时尽可能保留事件序列的行为。
对于图1所示的原始日志集,使用约束条件集进行分组后可以得到如图13所示的分组结果,将{ rcp}、{ckt}、{ckc }分为一个目标事件组clrk1 {rcp、ckt、ckc };将{prio}、{inf}、{arv}分为一个目标事件组clrk2 { prio、 inf、 arv };将{acc}分为一个目标事件组acc;将{rej}分为一个目标事件组rej。
在确定原始日志集对应的多个目标事件组之后,使用分组来建立原始日志集/>中轨迹的抽象版本,以获得抽象化日志/>。对于每个轨迹/>,识别轨迹中的所有实例,即所有目标事件组中的实例/>。每个实例/>对应于一个有序的事件序列/>
接下来创建一个抽象轨迹,它反映了/>中的活动实例,而不是原始对应项/>的事件。常见的抽象策略是让/>仅捕获实例的完成,通过创建/>的投影来保留每个实例的最后一个事件/>。目标事件组clrk1是第一对象执行的初始事件,目标事件组acc和目标事件组rej是由第二对象执行的相互排斥的事件,目标事件组clrk2是第一对象执行的最后事件,然后使用目标事件组,对目标事件组中的各原始日志事件全部替换,得到如图14所示的目标日志集,例如对于表1中的轨迹/>抽象后将产生。它表示每个事件最初由第一对象开始处理,然后移交给第二对象。接受的请求由第一对象完成,而被拒绝的请求可能会被完成或者重新回到流程的起点。
然而当活动以交错方式执行时,这种策略可能会屏蔽信息。例如新的轨迹,其中属于clrk2组的事件在单一活动实例acc之前和之后都发生。若在抽象时仅保留完成事件,会得到轨迹/>,这会隐藏活动交错的性质。因此本申请实施例中还可以使用替代策略,保留每个事件/>的开始(s)和完成(c)事件。这将生成轨迹/>,因此显示clrk2在acc之前开始并在之后完成。
由此,输出抽象化日志,保证满足用户定义的约束条件/>,同时提供最大程度的日志抽象,通过多种约束条件对原始日志集中事件之间的关系进行精确捕捉,使最终的分组结果能够更加体现实际场景中的操作过程和准确,按照分组结果进行日志分析,与实际操作过程会更接近,进而提高了日志分析结果的准确性和效率。
如图15所示,本申请实施例中日志分组方法,首先获取原始日志集以及至少包括各类型约束条件和各内容约束条件的约束条件集,然后将原始日志集中的各原始日志事件按照先后顺序进行排列组合,并将组合后的事件组中的各原始日志事件与约束条件集进行匹配,从而获得多个候选事件组;其中,归属于同一候选事件组的各原始日志事件匹配相同的类型约束条件和内容约束条件;进一步,再通过各候选事件组与原始日志集之间的关联度,确定各类型约束条件的目标事件组,得到原始日志集最终的分组结果;最后创建抽象事件日志,使用目标事件组替换对应的原始日志事件,得到对应的目标日志集。
由此,不仅通过关联度这一指标对原始日志事件进行分组,还通过事件的事件类型和事件内容对原始日志事件进行分组,通过多维度指标对原始日志集中事件之间的关系进行精确捕捉,使最终的分组结果能够更加体现实际场景中的操作过程和准确,按照分组结果进行日志分析,与实际操作过程会更接近,进而提高了日志分析结果的准确性和效率。
与本申请上述方法实施例基于同一发明构思,本申请实施例中还提供了一种日志分组装置,装置解决问题的原理与上述实施例的方法相似,因此装置的实施可以参见上述方法的实施,重复之处不再赘述。
请参考图16,图16示例性提供本申请实施例提供一种日志分组装置1600,该日志分组装置1600包括:
获取单元1601,用于获取原始日志集与约束条件集,所述原始日志集包括:具有先后顺序的各原始日志事件,所述约束条件集至少包括:各类型约束条件和各内容约束条件;
匹配单元1602,用于将所述各原始日志事件按照所述先后顺序进行排列组合,并基于排列组合结果获得多个候选事件组;其中,归属于同一候选事件组的各原始日志事件匹配相同的类型约束条件和内容约束条件;
关联度确定单元1603,用于针对每个所述候选事件组,分别执行以下操作:基于所述原始日志集的第一事件数量、一个候选事件组的第二事件数量,以及所述原始日志集中的其他事件的第三事件数量,获得所述一个候选事件组与所述原始日志集之间的关联度;所述其他事件为:所述原始日志集中,按照所述先后顺序,位于所述一个候选事件组中各候选日志事件之间的其他候选日志事件;
目标事件组确定单元1604,用于分别在所述各类型约束条件各自对应的至少一个候选事件组中,选取关联度满足预设关联度条件的候选事件组,作为相应类型约束条件的目标事件组。
在一种可能的实现方式中,所述约束条件集还包括:数量约束条件;
所述匹配单元1602具体用于:
将所述各原始日志事件按照所述先后顺序进行排列组合,得到多个初始事件组;
将所述多个初始事件组中的各原始日志事件,与所述各类型约束条件和所述各内容约束条件进行匹配,若一个初始事件组的各原始日志事件均匹配相同的类型约束条件和内容约束条件,则将所述一个初始事件组作为参考事件组;
针对每个所述参考事件组,分别执行以下操作:将所述参考事件组中原始日志事件的数量与所述数量约束条件进行匹配;若所述参考事件组中原始日志事件的数量与所述数量约束条件相匹配,则将所述参考事件组作为候选事件组。
在一种可能的实现方式中,所述关联度确定单元1603,具体用于:
基于所述第一事件数量和所述第二事件数量,确定所述原始日志集中匹配事件的第四事件数量;所述匹配事件为:所述原始日志集中,与所述一个候选事件组中的原始日志事件匹配相同的类型约束条件和内容约束条件,且不归属于所述一个候选事件组的原始日志事件;
基于所述第三事件数量与所述第四事件数量之和,与所述第二事件数量的比值,获得所述一个候选事件组与所述原始日志集之间的关联度;其中,所述比值与所述关联度呈负相关。
在一种可能的实现方式中,所述目标事件组确定单元1604,具体用于:
针对所述各类型约束条件,分别执行以下操作:
若所述类型约束条件对应一个候选事件组,则将所述候选事件组作为所述类型约束条件对应的目标事件组;
若所述类型约束条件对应多个候选事件组,则将所述多个候选事件组中关联度最大的候选事件组作为所述类型约束条件对应的目标事件组。
在一种可能的实现方式中,所述匹配单元1602具体用于:
检测所述多个初始事件组中的原始日志事件的总数量;
根据所述总数量对所述多个初始事件组进行排序,并按照排序结果,将所述多个初始事件组中的各原始日志事件,与所述各类型约束条件和所述各内容约束条件进行匹配。
在一种可能的实现方式中,所述匹配单元1602具体用于:根据所述总数量从少到多的顺序,对所述初始事件组中的各原始日志事件,与所述各类型约束条件和所述各内容约束条件进行匹配;
所述匹配单元1602还包括:
若所述初始事件组的各原始日志事件匹配不同的类型约束条件和内容约束条件,则获取所述多个初始事件组中的各原始日志事件的标识信息;
将所述初始事件组的各原始日志事件的标识信息与所述多个初始事件组中其他初始事件组的各原始日志事件的标识信息进行比较,得到至少一个第一关联事件组;所述至少一个第一关联事件组为:所述其他初始事件组中,包括所述初始事件组中全部原始日志事件的标识信息的至少一个事件组;
将所述初始事件组以及所述至少一个第一关联事件组进行删除。
在一种可能的实现方式中,所述匹配单元1602具体用于:根据所述总数量从多到少的顺序,对所述初始事件组中的各原始日志事件,与所述各类型约束条件和所述各内容约束条件进行匹配;
所述若一个初始事件组的各原始日志事件均匹配相同的类型约束条件和内容约束条件,则将所述一个初始事件组作为参考事件组之后,所述匹配单元1602还包括:
获取所述多个初始事件组中的各原始日志事件的标识信息;
将所述一个初始事件组的各原始日志事件的标识信息与所述多个初始事件组中其他初始事件组的各原始日志事件的标识信息进行比较,得到至少一个第二关联事件组;所述至少一个第二关联事件组为:所述其他初始事件组中,包括所述一个初始事件组中至少一个原始日志事件的至少一个事件组;
将所述至少一个第二关联事件组作为参考事件组。
在一种可能的实现方式中,所述分别在所述各类型约束条件各自对应的至少一个候选事件组中,选取关联度满足预设关联度条件的候选事件组,作为相应类型约束条件的目标事件组之后,所述日志分组装置1600还包括:
替换单元,用于使用相应类型约束条件的目标事件组,对所述目标事件组中的各原始日志事件全部替换,得到所述原始日志集对应的目标日志集。
为了描述的方便,以上各部分按照功能划分为各单元(或模块)分别描述。当然,在实施本申请时可以把各单元(或模块)的功能在同一个或多个软件或硬件中实现。
所属技术领域的技术人员能够理解,本申请的各个方面可以实现为系统、方法或程序产品。因此,本申请的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
在介绍了本申请示例性实施方式的日志分组方法和装置之后,接下来,介绍根据本申请的另一示例性实施方式的用于日志分组的电子设备。
与本申请上述方法实施例基于同一发明构思,本申请实施例中还提供了一种电子设备,该电子设备可以是服务器或者终端设备。在该实施例中,电子设备的结构可以如图17所示,包括存储器1701,通讯模块1703以及一个或多个处理器1702。
存储器1701,用于存储处理器1702执行的计算机程序。存储器1701可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统,以及运行即时通讯功能所需的程序等;存储数据区可存储各种即时通讯信息和操作指令集等。
存储器1701可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器1701也可以是非易失性存储器(non-volatilememory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);或者存储器1701是能够用于携带或存储具有指令或数据结构形式的期望的计算机程序并能够由计算机存取的任何其他介质,但不限于此。存储器1701可以是上述存储器的组合。
处理器1702,可以包括一个或多个中央处理单元(central processing unit,CPU)或者为数字处理单元等等。处理器1702,用于调用存储器1701中存储的计算机程序时实现上述日志分组方法。
通讯模块1703用于与终端设备和其他服务器进行通信。
本申请实施例中不限定上述存储器1701、通讯模块1703和处理器1702之间的具体连接介质。本申请实施例在图17中以存储器1701和处理器1702之间通过总线1704连接,总线1704在图17中以粗线描述,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线1704可以分为地址总线、数据总线、控制总线等。为便于描述,图17中仅用一条粗线描述,但并不描述仅有一根总线或一种类型的总线。
存储器1701中存储有计算机存储介质,计算机存储介质中存储有计算机程序,当计算机程序在电子设备上运行时,计算机程序用于使电子设备执行实现本申请实施例提供的日志分组方法。处理器1702用于执行上述的日志分组方法。
在一些可能的实施方式中,本申请提供的日志分组方法的各个方面还可以实现为一种程序产品的形式,其包括计算机程序,当程序产品在电子设备上运行时,计算机程序用于使电子设备执行本说明书上述描述的根据本申请各种示例性实施方式的日志分组方法中的步骤。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本申请的实施方式的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括计算机程序,并可以在计算装置上运行。然而,本申请的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被命令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由命令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
此外,尽管在附图中以特定顺序描述了本申请方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域内的技术人员应明白,本申请实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用计算机程序的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (10)

1.一种日志分组方法,其特征在于,所述方法包括:
获取原始日志集与约束条件集,所述原始日志集包括:具有先后顺序的各原始日志事件,所述约束条件集包括:各类型约束条件、各内容约束条件以及数量约束条件;
将所述各原始日志事件按照所述先后顺序进行排列组合,并基于排列组合结果获得多个候选事件组;其中,归属于同一候选事件组的各原始日志事件匹配相同的类型约束条件和内容约束条件;
针对每个所述候选事件组,分别执行以下操作:基于所述原始日志集的第一事件数量、一个候选事件组的第二事件数量,以及所述原始日志集中的其他事件的第三事件数量,获得所述一个候选事件组与所述原始日志集之间的关联度;所述其他事件为:所述原始日志集中,按照所述先后顺序,位于所述一个候选事件组中各候选日志事件之间的其他候选日志事件;
分别在所述各类型约束条件各自对应的至少一个候选事件组中,选取关联度满足预设关联度条件的候选事件组,作为相应类型约束条件的目标事件组;
其中,将所述各原始日志事件按照所述先后顺序进行排列组合,并基于排列组合结果获得多个候选事件组,包括:
将所述各原始日志事件按照所述先后顺序进行排列组合,得到多个初始事件组;
将所述多个初始事件组中的各原始日志事件,与所述各类型约束条件和所述各内容约束条件进行匹配,若一个初始事件组的各原始日志事件均匹配相同的类型约束条件和内容约束条件,则将所述一个初始事件组作为参考事件组;
针对每个所述参考事件组,分别执行以下操作:将所述参考事件组中原始日志事件的数量与所述数量约束条件进行匹配;若所述参考事件组中原始日志事件的数量与所述数量约束条件相匹配,则将所述参考事件组作为候选事件组;
其中,所述基于所述原始日志集的第一事件数量、一个候选事件组的第二事件数量,以及所述原始日志集中的其他事件的第三事件数量,获得所述一个候选事件组与所述原始日志集之间的关联度,包括:
基于所述第一事件数量和所述第二事件数量,确定所述原始日志集中匹配事件的第四事件数量;所述匹配事件为:所述原始日志集中,与所述一个候选事件组中的原始日志事件匹配相同的类型约束条件和内容约束条件,且不归属于所述一个候选事件组的原始日志事件;
基于所述第三事件数量与所述第四事件数量之和,与所述第二事件数量的比值,获得所述一个候选事件组与所述原始日志集之间的关联度;其中,所述比值与所述关联度呈负相关。
2.如权利要求1所述的方法,其特征在于,所述分别在所述各类型约束条件各自对应的至少一个候选事件组中,选取关联度满足预设关联度条件的候选事件组,作为相应类型约束条件的目标事件组,包括:
针对所述各类型约束条件,分别执行以下操作:
若所述类型约束条件对应一个候选事件组,则将所述候选事件组作为所述类型约束条件对应的目标事件组;
若所述类型约束条件对应多个候选事件组,则将所述多个候选事件组中关联度最大的候选事件组作为所述类型约束条件对应的目标事件组。
3.如权利要求1所述的方法,其特征在于,所述将所述多个初始事件组中的各原始日志事件,与所述各类型约束条件和所述各内容约束条件进行匹配,包括:
检测所述多个初始事件组中的原始日志事件的总数量;
根据所述总数量对所述多个初始事件组进行排序,并按照排序结果,将所述多个初始事件组中的各原始日志事件,与所述各类型约束条件和所述各内容约束条件进行匹配。
4.如权利要求3所述的方法,其特征在于,所述按照排序结果,将所述多个初始事件组中的各原始日志事件,与所述各类型约束条件和所述各内容约束条件进行匹配,包括:
根据所述总数量从少到多的顺序,对所述初始事件组中的各原始日志事件,与所述各类型约束条件和所述各内容约束条件进行匹配;
所述方法还包括:
若所述初始事件组的各原始日志事件匹配不同的类型约束条件和内容约束条件,则获取所述多个初始事件组中的各原始日志事件的标识信息;
将所述初始事件组的各原始日志事件的标识信息与所述多个初始事件组中其他初始事件组的各原始日志事件的标识信息进行比较,得到至少一个第一关联事件组;所述至少一个第一关联事件组为:所述其他初始事件组中,包括所述初始事件组中全部原始日志事件的标识信息的至少一个事件组;
将所述初始事件组以及所述至少一个第一关联事件组进行删除。
5.如权利要求4所述的方法,其特征在于,所述按照排序结果,将所述多个初始事件组中的各原始日志事件,与所述各类型约束条件和所述各内容约束条件进行匹配,包括:
根据所述总数量从多到少的顺序,对所述初始事件组中的各原始日志事件,与所述各类型约束条件和所述各内容约束条件进行匹配;
所述若一个初始事件组的各原始日志事件均匹配相同的类型约束条件和内容约束条件,则将所述一个初始事件组作为参考事件组之后,所述方法还包括:
获取所述多个初始事件组中的各原始日志事件的标识信息;
将所述一个初始事件组的各原始日志事件的标识信息与所述多个初始事件组中其他初始事件组的各原始日志事件的标识信息进行比较,得到至少一个第二关联事件组;所述至少一个第二关联事件组为:所述其他初始事件组中,包括所述一个初始事件组中至少一个原始日志事件的至少一个事件组;
将所述至少一个第二关联事件组作为参考事件组。
6.如权利要求1-5任一所述的方法,其特征在于,所述分别在所述各类型约束条件各自对应的至少一个候选事件组中,选取关联度满足预设关联度条件的候选事件组,作为相应类型约束条件的目标事件组之后,所述方法还包括:
使用相应类型约束条件的目标事件组,对所述目标事件组中的各原始日志事件全部替换,得到所述原始日志集对应的目标日志集。
7.一种日志分组装置,其特征在于,所述装置包括:
获取单元,用于获取原始日志集与约束条件集,所述原始日志集包括:具有先后顺序的各原始日志事件,所述约束条件集包括:各类型约束条件、各内容约束条件以及数量约束条件;
匹配单元,用于将所述各原始日志事件按照所述先后顺序进行排列组合,并基于排列组合结果获得多个候选事件组;其中,归属于同一候选事件组的各原始日志事件匹配相同的类型约束条件和内容约束条件;
关联度确定单元,用于针对每个所述候选事件组,分别执行以下操作:基于所述原始日志集的第一事件数量、一个候选事件组的第二事件数量,以及所述原始日志集中的其他事件的第三事件数量,获得所述一个候选事件组与所述原始日志集之间的关联度;所述其他事件为:所述原始日志集中,按照所述先后顺序,位于所述一个候选事件组中各候选日志事件之间的其他候选日志事件;
目标事件组确定单元,用于分别在所述各类型约束条件各自对应的至少一个候选事件组中,选取关联度满足预设关联度条件的候选事件组,作为相应类型约束条件的目标事件组;
其中,所述匹配单元,具体用于:
将所述各原始日志事件按照所述先后顺序进行排列组合,得到多个初始事件组;
将所述多个初始事件组中的各原始日志事件,与所述各类型约束条件和所述各内容约束条件进行匹配,若一个初始事件组的各原始日志事件均匹配相同的类型约束条件和内容约束条件,则将所述一个初始事件组作为参考事件组;
针对每个所述参考事件组,分别执行以下操作:将所述参考事件组中原始日志事件的数量与所述数量约束条件进行匹配;若所述参考事件组中原始日志事件的数量与所述数量约束条件相匹配,则将所述参考事件组作为候选事件组;
其中,所述关联度确定单元,具体用于:
基于所述第一事件数量和所述第二事件数量,确定所述原始日志集中匹配事件的第四事件数量;所述匹配事件为:所述原始日志集中,与所述一个候选事件组中的原始日志事件匹配相同的类型约束条件和内容约束条件,且不归属于所述一个候选事件组的原始日志事件;
基于所述第三事件数量与所述第四事件数量之和,与所述第二事件数量的比值,获得所述一个候选事件组与所述原始日志集之间的关联度;其中,所述比值与所述关联度呈负相关。
8.一种电子设备,其特征在于,其包括存储器和处理器,其中:
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序以实现权利要求1-6中任一所述方法的步骤。
9.一种计算机可读存储介质,其特征在于,其包括计算机程序,当所述计算机程序在电子设备上运行时,所述计算机程序用于使所述电子设备执行权利要求1-6中任一所述方法的步骤。
10.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序存储在计算机可读存储介质中;当电子设备的处理器从所述计算机可读存储介质读取所述计算机程序时,所述处理器执行所述计算机程序,使得所述电子设备执行权利要求1-6中任一所述方法的步骤。
CN202410065839.7A 2024-01-17 2024-01-17 日志分组方法、装置、设备及存储介质 Active CN117591673B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410065839.7A CN117591673B (zh) 2024-01-17 2024-01-17 日志分组方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410065839.7A CN117591673B (zh) 2024-01-17 2024-01-17 日志分组方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN117591673A CN117591673A (zh) 2024-02-23
CN117591673B true CN117591673B (zh) 2024-05-03

Family

ID=89918636

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410065839.7A Active CN117591673B (zh) 2024-01-17 2024-01-17 日志分组方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN117591673B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112395159A (zh) * 2020-11-17 2021-02-23 华为技术有限公司 一种日志检测方法、系统、设备及介质
CN112968805A (zh) * 2021-05-19 2021-06-15 新华三技术有限公司 一种告警日志处理方法及装置
CN115185920A (zh) * 2022-09-13 2022-10-14 云智慧(北京)科技有限公司 一种日志类型的检测方法、装置及设备
CN115563275A (zh) * 2022-09-23 2023-01-03 绿盟科技集团股份有限公司 一种多维度自适应日志分类分级方法和装置
CN116451071A (zh) * 2023-03-16 2023-07-18 网宿科技股份有限公司 样本标注方法、设备及可读存储介质
CN117093556A (zh) * 2023-08-21 2023-11-21 康键信息技术(深圳)有限公司 日志分类方法、装置、计算机设备及计算机可读存储介质
US11847038B1 (en) * 2022-07-15 2023-12-19 Vmware, Inc. System and method for automatically recommending logs for low-cost tier storage

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6048688B2 (ja) * 2014-11-26 2016-12-21 横河電機株式会社 イベント解析装置、イベント解析方法およびコンピュータプログラム
US10353756B2 (en) * 2016-10-11 2019-07-16 Oracle International Corporation Cluster-based processing of unstructured log messages
US11809406B2 (en) * 2020-11-19 2023-11-07 Hewlett Packard Enterprise Development Lp Event records in a log file

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112395159A (zh) * 2020-11-17 2021-02-23 华为技术有限公司 一种日志检测方法、系统、设备及介质
CN112968805A (zh) * 2021-05-19 2021-06-15 新华三技术有限公司 一种告警日志处理方法及装置
US11847038B1 (en) * 2022-07-15 2023-12-19 Vmware, Inc. System and method for automatically recommending logs for low-cost tier storage
CN115185920A (zh) * 2022-09-13 2022-10-14 云智慧(北京)科技有限公司 一种日志类型的检测方法、装置及设备
CN115563275A (zh) * 2022-09-23 2023-01-03 绿盟科技集团股份有限公司 一种多维度自适应日志分类分级方法和装置
CN116451071A (zh) * 2023-03-16 2023-07-18 网宿科技股份有限公司 样本标注方法、设备及可读存储介质
CN117093556A (zh) * 2023-08-21 2023-11-21 康键信息技术(深圳)有限公司 日志分类方法、装置、计算机设备及计算机可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于关系矩阵的工作流日志重复任务识别算法;潘建梁;俞东进;陈耀旺;;计算机集成制造系统;20180715(07);全文 *

Also Published As

Publication number Publication date
CN117591673A (zh) 2024-02-23

Similar Documents

Publication Publication Date Title
US11099842B2 (en) Source code similarity detection using digital fingerprints
Zandkarimi et al. A generic framework for trace clustering in process mining
Buccafurri et al. Discovering missing me edges across social networks
US20160162548A1 (en) Query optimization with zone map selectivity modeling
CN105283851A (zh) 用于选择跟踪目标的成本分析
CN105283866A (zh) 使用相似频率的优化分析
US11500830B2 (en) Learning-based workload resource optimization for database management systems
JP2005316999A (ja) エンハンストドキュメント取り出しのためのコンテンツ伝播
CN110679114B (zh) 一种估计数据对象可删除性的方法
US20170244711A1 (en) System and method for evaluating a reverse query
JP2016100005A (ja) リコンサイル方法、プロセッサ及び記憶媒体
US11860905B2 (en) Scanning for information according to scan objectives
US11829455B2 (en) AI governance using tamper proof model metrics
Wang et al. Concept drift-aware temporal cloud service APIs recommendation for building composite cloud systems
Ma et al. Class-imbalanced learning on graphs: A survey
Uta et al. Evaluating recommender systems in feature model configuration
Kaur et al. A geo-location and trust-based framework with community detection algorithms to filter attackers in 5G social networks
US20130055344A1 (en) System and method for evaluating a reverse query
Suleman et al. Google play store app ranking prediction using machine learning algorithm
Li et al. Logspy: System log anomaly detection for distributed systems
Bessghaier et al. What constitutes the deployment and runtime configuration system? An empirical study on openstack projects
US20140195462A1 (en) Data management system and tool
Mrabet et al. CAN-TM: Chain augmented Naïve Bayes-based trust model for reliable cloud service selection
US20210149793A1 (en) Weighted code coverage
CN112257959A (zh) 用户风险预测方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant