CN110888849A - 一种在线日志解析方法、系统及其电子终端设备 - Google Patents

一种在线日志解析方法、系统及其电子终端设备 Download PDF

Info

Publication number
CN110888849A
CN110888849A CN201911077285.8A CN201911077285A CN110888849A CN 110888849 A CN110888849 A CN 110888849A CN 201911077285 A CN201911077285 A CN 201911077285A CN 110888849 A CN110888849 A CN 110888849A
Authority
CN
China
Prior art keywords
log
unresolved
sequence
group
template
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.)
Granted
Application number
CN201911077285.8A
Other languages
English (en)
Other versions
CN110888849B (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.)
Nanjing University of Aeronautics and Astronautics
State Grid Corp of China SGCC
State Grid Shanghai Electric Power Co Ltd
Original Assignee
Nanjing University of Aeronautics and Astronautics
State Grid Corp of China SGCC
State Grid Shanghai Electric Power 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 Nanjing University of Aeronautics and Astronautics, State Grid Corp of China SGCC, State Grid Shanghai Electric Power Co Ltd filed Critical Nanjing University of Aeronautics and Astronautics
Priority to CN201911077285.8A priority Critical patent/CN110888849B/zh
Publication of CN110888849A publication Critical patent/CN110888849A/zh
Priority to PCT/CN2020/098701 priority patent/WO2021088385A1/zh
Priority to EP20789812.3A priority patent/EP3846048A1/en
Application granted granted Critical
Publication of CN110888849B publication Critical patent/CN110888849B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
    • 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/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • G06F16/322Trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • G06F16/1815Journaling file systems
    • 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/34Browsing; Visualisation therefor
    • G06F16/345Summarisation for human users
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种在线日志解析方法、系统及其电子终端设备,该方法包含以下步骤:S1、对每一条未解析日志进行日志预处理,得到多条不同日志长度未解析日志序列,将其归到对应的第一日志组中;S2、获取第一日志组中各日志序列的日志字符串,计算日志字符串相似度,基于日志字符串相似度在线聚类;S3、将未解析日志序列作为查询项与第二日志组的模板生成树中的模板匹配共同的节点,获取模板。其优点是:将日志按照长度进行分类,基于日志字符串相似度对日志进行二次聚类,最后使用模板生成树提取日志模板,该方法能够高效而准确地从非结构化日志中提取日志模板,方便数据分析师对日志进行更高级的分析和处理。

Description

一种在线日志解析方法、系统及其电子终端设备
技术领域
本发明涉及日志解析技术领域,具体涉及一种基于字符串聚类和模板生成树的在线日志解析方法、系统及其电子终端设备。
背景技术
系统日志记录了系统的运行信息,作为系统在线监控和异常检测的重要数据,可帮助管理者调试系统故障及异常分析,进一步保证系统的安全性。通常日志具有海量和非结构化的特点,日志解析可以将大量非结构化的日志转换为结构化的数据,即从日志中提取模板。日志解析作为系统异常检测的第一步,提高了异常检测的效率。
通常日志解析方法可分为离线方法和在线方法。离线方法是脱机解析日志的方法,需收集到系统在一个时间段内的日志,并加载到内存中训练解析模型,再利用模型解析日志。由于离线方法是脱机解析日志,不能实时解析日志,系统管理者无法及时发现系统异常行为,另外,离线方法需将日志加载到内存中训练,如果在训练后添加了新的日志类型就必须再次训练解析模型,将会消耗更多时间和人力资源。
与离线方法不同的是,在线方法可以实时解析新生成日志,系统管理者能够及时发现并处理系统异常。但是当前在线日志解析方法存在两个缺点:一是现有在线方法在准确性和效率方面都有改进空间,二是这些在线方法都是为特定的日志系统设计的,各个系统的解析参数并不通用,解析效率较低,准确度较差。
发明内容
本发明的目的在于提供一种在线日志解析方法、系统及其电子终端设备,该方法基于字符串聚类和模板生成树的进行在线解析,将日志按照长度进行分类,再计算日志字符串相似度,基于日志字符串相似度对日志进行二次聚类,最后使用模板生成树提取日志模板,该方法能够高效而准确地从非结构化日志中提取日志模板,为系统管理者提供简洁直观的摘要和干净规范的结构化数据,方便数据分析师对日志进行更高级的分析和处理。
为了达到上述目的,本发明通过以下技术方案实现:
一种在线日志解析方法,该方法包含以下步骤:
S1、对每一条未解析日志进行日志预处理,得到多条不同日志长度的未解析日志序列,将各条未解析日志序列归为对应的第一日志组中,所述第一日志组为具有相同日志长度的日志序列的集合,所述第一日志组包含解析过的日志序列和未解析日志序列;
S2、获取第一日志组中各日志序列的日志字符串,对所述第一日志组中的第一条未解析日志序列的日志字符串与所述第一日志组中解析过的日志序列的日志字符串分别计算日志字符串相似度,基于日志字符串相似度在线聚类,得到该条未解析日志序列所在的第二日志组;
S3、将该条未解析日志序列作为查询项,与所述第二日志组的模板生成树中的模板匹配共同的节点,获取该条未解析日志序列的日志模板,后续未解析日志序列依次重复步骤S2和步骤S3操作获取日志模板。
优选地,步骤S1具体包含:
利用正则表达式识别每一条未解析日志的日志头中与之匹配的变量信息并删除;
利用预先定义的分隔符对每一条未解析日志的日志内容进行划分,得到不同日志长度的未解析日志序列,将各条未解析日志序列按照不同的日志长度归为不同的第一日志组中。
优选地,所述步骤S2具体包含:
S21、获取第一日志组内各日志序列的日志字符串,将第一日志组内所有解析过的日志序列的日志字符串组成该第一日志组的日志字符串集;
S22、对所述第一日志组中的第一条未解析日志序列的日志字符串与所述日志字符串集中的日志字符串分别计算日志字符串相似度;
S23、基于所述日志字符串相似度在线聚类,得到该条未解析日志序列对应所在的第二日志组,所述第二日志组为各条日志序列的日志字符串相似度达到相似度阈值的日志序列的集合,一个第一日志组里包含若干个第二日志组。
优选地,所述步骤S21中,
所述日志字符串为日志序列中每个单词的首字母组成的字符串。
优选地,当单词的首字符为数字或标识符时,用通配符来表示,当单词的首字符为字母时,用字母本身来表示。
优选地,所述步骤S22中日志字符串相似度的计算公式为:
Figure BDA0002262881400000031
其中,sim(Sm1,Sm2)表示日志字符串相似度,Sm1和Sm2分别代表一条日志字符串,len(|Sm1|,|Sm2|代表两条日志字符串的长度,Sm1(i)代表日志字符串Sm1的第i个字符,Sm2(j)代表日志字符串Sm2的第j个字符,Ⅱf(Sm1(i),Sm2(j))定义如下:
Figure BDA0002262881400000032
优选地,所述步骤S23具体为:
设定相似度阈值,若存在日志字符串相似度大于相似度阈值的日志字符串,将该条未解析日志序列并入该日志字符串对应的第二日志组;若不存在日志字符串相似度大于相似度阈值的日志字符串,则新建一个第二日志组,并更新该第一日志组的日志字符串集。
优选地,所述步骤S3具体为:
将该条未解析日志序列中的每个单词依次插入树结构,将每条分支最后的节点标记为特殊字符,从该条未解析日志序列的根节点P开始搜索,取得所要查找单词的所在节点,若不存在匹配节点,则将该条未解析日志序列插入树结构作为新分支;若存在匹配节点,根据该匹配节点选择对应的子树并转到该子树继续进行搜索,直至该条未解析日志序列中的每个单词搜索完成,获取该条未解析日志序列的日志模板,后续未解析日志序列依次重复步骤S2和步骤S3的操作以获取日志模板。
优选地,该方法还包含:
判断步骤S3中日志模板是否获取成功,具体为:引入界定值X,当所述界定值X小于或等于阈值λ,表示模板生成成功,更新模板生成树,将未匹配节点更新为通配符;当所述界定值X大于所述阈值λ,将未解析日志序列作为新的分支插入模板生成树,其中,所述界定值X表示为:
Figure BDA0002262881400000041
其中,∑unmatch(tmi)表示匹配失败的节点数量,L为日志长度,σ为该搜索路径上通配符的数量。
优选地,该方法还包含:
引入最大树深度参数MaxDepth,当模板生成树的叶子节点达到最大树深度参数MaxDepth时,未解析日志序列中所有未遍历的单词将不再插入模板生成树,未遍历的单词都用通配符替代。
优选地,一种采用所述在线日志解析方法解析日志的日志解析系统,该系统包含:
预处理模块,用于对未解析日志进行预处理,得到所述未解析日志对应的未解析日志序列;
日志序列分配模块,将所述未解析日志序列按照其日志长度分配到对应的第一日志组内;
日志字符串获取模块,用于对第一日志组内的日志序列进行提取,获取各日志序列的日志字符串;
日志字符串相似度计算模块,用于对第一日志组中的未解析日志序列的日志字符串与解析过的日志序列的日志字符串分别计算日志字符串相似度;
在线聚类模块,用于依据所述日志字符串相似度,将所述未解析日志序列划分到对应的第二日志组;
模板生成树匹配模块,用于将所述未解析日志序列与第二日志组的模板生成树进行匹配,以获取该条未解析日志序列的日志模板。
优选地,还包含:
判断模块,用于判断所述未解析日志序列的日志模板是否获取成功。
优选地,一种电子终端设备,包含:
处理器,存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现任意一项所述的在线日志解析方法。
本发明与现有技术相比具有以下优点:
(1)本发明的一种在线日志解析方法,基于字符串聚类和模板生成树进行日志解析,将日志按照长度进行分类,再计算日志字符串相似度,基于日志字符串相似度对日志二次聚类,最后使用模板生成树提取日志模板,该方法能够高效而准确地从非结构化日志中提取日志模板,为系统管理者提供简洁直观的摘要和干净规范的结构化数据,方便数据分析师对日志进行更高级的分析和处理;
(2)本发明的方法中提出了日志字符串的概念,并计算日志字符串相似度,基于日志字符串相似度对长度相同的系统日志在线聚类,减少日志模板提取时无效的比较步骤,提高了日志解析效率;
(3)本发明采用了基于模板生成树的模板提取方法,利用模板生成树进行提取、更新模板,提高了在线日志解析的准确度。
附图说明
图1为一条日志的结构示例图;
图2为实施例中的一个日志长度为4的第一日志组;
图3为图2中第一日志组对应的一种日志模板集;
图4为图2中第一日志组对应的日志字符串集;
图5为日志模板生成过程示意图;
图6为采用本发明的在线日志解析方法解析示意图。
具体实施方式
以下结合附图,通过详细说明一个较佳的具体实施例,对本发明做进一步阐述。
日志解析是一种将非结构化的日志转化为结构化形式的高效且准确的方法,其从海量的系统日志中获取隐藏的信息,以指导后续操作。
本发明公开了一种在线日志解析方法,该方法包含以下步骤:
S1、对每一条未解析日志进行日志预处理,得到多条不同日志长度的未解析日志序列,将各条未解析日志序列归为对应的第一日志组中,所述第一日志组为具有相同日志长度的日志序列的集合,所述第一日志组内包含解析过的日志序列和未解析日志序列。
如图1所示,在日志解析过程中,每一条日志m可以表示为:
m{mh,mc}
其中,mh表示日志头,mc表示日志内容。日志头mh包括时间戳,定位,日志类型、安全性、设施等琐碎的变量信息,而日志解析主要需要对日志内容mc部分进行处理。因为日志头mh所包含的变量信息属于结构化的消息类型,非常直观且易于系统管理者理解,只需正则表达式就可以实现日志头的识别和匹配。日志解析的过程主要是在日志内容mc中提取日志模板。
所述步骤S1具体为:首先利用正则表达式识别每一条未解析日志m的日志头mh中与之匹配的变量信息并删除。此处的正则表达式非常简单,因为它只需匹配出例如时间戳、IP地址等简单的标记而不是日志内容mc,通常情况下最多只需两个正则表达式就可以识别所有未解析日志m中的日志头mh
接着利用预先定义的分隔符对每一条未解析日志m的日志内容mc进行划分,得到不同日志长度的未解析日志序列。空格分隔符通常能够解决大部分系统日志的分割问题。分隔符将日志内容mc划分成长度为L的未解析日志序列Tm(日志序列的大小通常称之为日志序列的长度):
Tm=[tm1,tm2,…,tmL]
其中,tmi为未解析日志序列Tm中的第i个单词,日志序列长度为L即为该未解析日志序列Tm共有L个单词。
最后,将各条未解析日志序列Tm按照不同的日志长度分到不同的第一日志组中,每个第一日志组包含所有拥有相同日志长度的日志序列,所述第一日志组用GL表示。实际上,在第一日志组GL中也存在模板不同的日志,结合图2和图3所示,图2中的日志数据来自超级计算机系统(BlueGene/L,BGL)日志的日志内容mc部分(包含6条未解析日志),图3为图2对应的一种日志模板集(跟不同日志序列匹配会有不同的日志模板),所述日志模板集是所有日志序列的日志模板的集合,图2为每条日志序列的日志长度都为4的第一日志组GL,但是各条日志序列的模板都不相同,所以如果仅仅在此步骤后对日志进行模板提取会导致更高的复杂度。
为了解决上述问题,我们引入一个新概念:日志字符串,用Sm来表示,日志字符串Sm是由日志序列中每个单词的首字符组成的字符串。与日志长度相比,日志字符串Sm是对日志更具代表性的描述方式。
S2、获取第一日志组中各日志序列的日志字符串,对所述第一日志组中的第一条未解析日志序列Tm的日志字符串与所述第一日志组中解析过的日志序列的日志字符串分别计算日志字符串相似度,基于日志字符串相似度在线聚类,得到该条未解析日志序列Tm所在的第二日志组,即计算日志字符串相似度,基于日志字符串相似度对第一日志组GL中的日志序列再次聚类,得到模板相似度更高的第二日志组,用Gs表示。
所述步骤S2具体包含:S21、获取第一日志组GL内各日志序列的日志字符串,将第一日志组GL内的所有解析过的日志序列的日志字符串组成该第一日志组GL的日志字符串集。
所述步骤S21中,为了避免日志字符串提取算法过高的时间复杂度,我们提取第一日志组GL中日志序列中每个单词的第一个字符作为其代表字符,最后将日志序列中所有单词的首字符按所属单词在日志序列中的位置组成一个字符串,称之为该日志序列的日志字符串Sm。每个第一日志组GL中所有解析过的日志序列的日志字符串Sm的集合称之为该第一日志组GL的日志字符串集,用S表示。也就是说,每个日志字符串Sm作为一个字符串种类存储于日志字符串集S中。
为避免日志字符串集S中字符串种类数量爆炸,当单词的首字符为数字或标识符时,用通配符来表示,当单词首字符为字母时,用字母本身来表示。在本实施例中,通配符采用*表示。
示例地,如图2和图4结合所示,图4为图2对应的日志字符串集S,虽然图2中每条日志序列的长度都相同,但是其日志字符串Sm都是唯一的,其中,第一条日志序列的日志字符串Sm为“*dae”,第二条日志序列的日志字符串Sm为“dTei”,后续依次为“esr*”、“piii”、“fpie”、“piuo”,可见每条日志序列的日志字符串Sm都不相同,日志字符串Sm对日志的描述更具代表性。
S22、对所述第一日志组中的第一条未解析日志序列Tm的日志字符串与所述日志字符串集S中的日志字符串分别计算日志字符串相似度。
所述日志字符串相似度的计算公式如公式(1)所示:
Figure BDA0002262881400000081
其中,sim(Sm1,Sm2)代表日志字符串相似度,Sm1和Sm2代表相比较的两条日志字符串,len(|Sm1|,|Sm2|代表两条日志字符串的长度,Sm1(i)代表日志字符串Sm1的第i个字符,Sm2(j)代表日志字符串Sm2的第j个字符,Ⅱf(Sm1(i),Sm2(j))的定义如下:
Figure BDA0002262881400000082
S23、基于所述日志字符串相似度在线聚类,得到该条未解析日志序列Tm对应所在的第二日志组Gs,所述第二日志组Gs为各条日志的日志字符串相似度达到相似度阈值的日志序列的集合,一个第一日志组GL里包含若干个第二日志组Gs
所述步骤S23具体为:设定相似度阈值st,若存在日志字符串相似度大于相似度阈值st的日志字符串,表示日志字符串Sm1和日志字符串Sm2相似(即该条未解析日志序列Tm的日志字符串和与之计算的日志字符串相似),则将该条未解析日志序列Tm并入该日志字符串对应的第二日志组Gs1中,所述第二日志组Gs1内各条日志序列的日志字符串相似度大于相似度阈值st;若不存在日志字符串相似度大于相似度阈值st的日志字符串,则新建一个第二日志组Gs2,并更新该第一日志组Gs1的日志字符串集S。
经过此步骤后每个第一日志组Gs1内未归属第二日志组Gs2的未处理日志序列Tm数量减少,各第二日志组Gs2内日志序列拥有同一模板的概率提高。在日志相似度高的第二日志组Gs内进行后续模板提取可大大降低算法的时间复杂度。
S3、在所述第二日志组Gs内基于模板生成树获取模板,即将该条未解析日志Tm作为查询项,与第二日志组Gs的模板生成树中的模板匹配共同的节点,以此来获取该条未解析日志序列Tm的日志模板(即该未解析日志的日志模板),后续未解析日志序列依次重复步骤S2和步骤S3的操作以获取日志模板。
Trie树又称前缀树或字典树,是一种有序树,其中的结点通常保存字符串。Trie树是一种在字符串查找,前缀匹配等方面应用广泛的算法,每次匹配时只与被查询的字符串长度有关,时间复杂度只有O(1)。标准Trie树的结构为:所有含有公共前缀的字符串将挂在Trie树中同一个结点下,简明的存储了存在于字符串中的所有公共前缀。我们基于Trie树的思想构建第二日志组Gs的模板生成树,将未解析日志序列Tm作为查询项与模板生成树中的模板匹配共同的节点。第二日志组Gs内日志相似度高,模板种类少,模板生成树空间复杂度低,有效提高了从日志中提取模板的效率和准确性。
对于一条日志内容mc,经上述步骤后已经被分割成日志序列,遍历日志序列,将其中的每个单词依次插入树结构,将每条分支最后的节点标记为特殊字符,那么从根节点到任意一个特殊字符所经过的路径表示一条日志内容mc的匹配路径,树深度为L1,L为日志长度,在本实施例中,特殊字符采用’$’。
所述步骤S3具体为:将该条未解析日志序列Tm中的单词tm作为L个询问(查询项),采用先深搜索遍历每一条路径。从该条未解析日志序列Tm的根节点P(空节点)开始搜索,取得要查找单词tmi的所在节点,若不存在匹配节点(节点匹配失败),则将该未解析日志序列Tm插入树结构作为新分支;若存在匹配节点(节点匹配成功),根据该节点选择对应的子树并转到该子树继续进行搜索,直至每个单词tmi搜索完成,获取该条未解析日志序列Tm的日志模板,后续未解析日志序列依次重复步骤S2和步骤S3操作以获取日志模板。示例地,如图5所示,其展示了查询日志Tm:[connected,to,7342,exactly]与模板生成树匹配成功获得模板并更新模板生成树的过程。
设未解析日志序列Tm中的单词tmi与模板生成树上的第i个节点Q存储的单词tm相同,则P=Q,tmi变为tm(i+1)继续搜索。若tm(i+1)与第i+1个节点匹配失败,那么记录匹配失败的节点,更新根节点P为第i+2个节点,tm(i+2)继续匹配第i+2个节点,直到完成L个询问,对于一条日志的搜索才结束。提取匹配成功节点存储的单词tm,匹配失败节点则返回通配符‘*’,以此获得日志模板。
若第二日志组Gs2内只有一条日志序列(未解析日志序列Tm单独建立的第二日志组),依据该条日志序列在所述第二日志组Gs2内建立模板树,那么所述第二日志组Gs的日志模板就是该条日志序列的日志模板。如图2所示,图2的第一日志组GL内的6条未解析日志序列Tm,分别属于6个不同的第二日志组Gs,若每个第二日志组Gs内只有那一条未解析日志序列Tm,那么每个第二日志组Gs的日志模板就是组内未解析日志序列Tm的日志模板。
另外,本发明所提供的方法还包含:判断步骤S3中日志模板是否生成成功,具体为:引入界定值X,具体如公式(3)所示,
Figure BDA0002262881400000101
其中,∑unmatch(tmi)表示匹配失败的节点数量,L为日志长度,σ为该搜索路径上通配符‘*’的数量。
当X小于或等于阈值λ,表示模板生成成功,更新模板生成树,将未匹配节点更新为通配符‘*’;当X大于阈值λ,将未解析日志序列Tm作为新的分支插入模板生成树。
示例地,如图6所示,为采用本发明的在线日志解析方法获得日志模板的过程。图6中有5条未解析日志序列Tm,将每一条未解析日志序列Tm按次序采用上述算法求取模板。示例地,处理解析日志序列Tm1[connected,to,2312,error]时,首先将该条日志序列Tm1划分到长度为4的第一日志组GL2里,在寻找第二日志组GS2时,发现没有日志字符串相似度大于相似度阈值的日志字符串,则新建一个第二日志组GS2,在此第二日志组GS2内基于此日志序列Tm1构建模板树,则此时该第二日志组GS2的日志模板是该条日志序列Tm1的模板[connected,to,2312,error]。该日志序列Tm1的后续日志序列重复上述过程,最终由第二日志组GS2里的所有日志序列重新建立一个模板生成树生成模板。由上述可知,本发明的在线日志解析方法对于每一条新生成的未解析日志都能够自动解析并快速提取模板,且准确率较高。
除此之外,该方法还包含:引入最大树深度参数MaxDepth,当模板生成树的叶子节点达到最大树深度参数MaxDepth时,未解析日志序列Tm所有未遍历的单词tmi将不再插入模板生成树,未遍历的单词tmi都用通配符‘*’替代。
另外,本发明还包含一种采用所述在线日志解析方法解析日志的日志解析系统,该系统包含:预处理模块、日志序列分配模块、日志字符串获取模块、日志字符串相似度计算模块、在线聚类模块和模板生成树匹配模块。
日志解析系统内各模块具体为:预处理模块,用于对未解析日志进行预处理,得到所述未解析日志对应的未解析日志序列;
日志序列分配模块,将所述未解析日志序列按照其日志长度分配到对应的第一日志组内;
日志字符串获取模块,用于对第一日志组内的日志序列进行提取,获取各日志序列的日志字符串;
日志字符串相似度计算模块,用于对第一日志组中的未解析日志序列的日志字符串与解析过的日志序列的日志字符串分别计算日志字符串相似度;
在线聚类模块,用于依据所述日志字符串相似度,将所述未解析日志序列划分到对应的第二日志组;
模板生成树匹配模块,用于将所述未解析日志序列与第二日志组的模板生成树进行匹配,以获取该条未解析日志序列的日志模板。
优选地,该日志解析系统还包含判断模块,所述判断模块用于判断步骤S3中未解析日志序列的日志模板是否获取成功。
另外,本发明还包含一种电子终端设备,其包含:处理器,存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现任意一项所述的在线日志解析方法。
综上所述,本发明提供了一种在线日志解析方法、系统及其电子终端设备,该方法基于字符串聚类和模板生成树的进行在线解析,将日志按照长度进行分类,再计算日志字符串相似度,基于日志字符串相似度对日志二次聚类,最后使用模板生成树提取日志模板。该方法能够高效而准确地从非结构化日志中提取日志模板,为系统管理者提供简洁直观的摘要和干净规范的结构化数据,方便数据分析师对日志进行更高级的分析和处理,另外,该方法不需要分析源代码和领域专家的参与,对于每一条未解析日志都能够自动解析并快速提取模板,能够高效且通用地在线解析日志,准确度较高。
尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。

Claims (13)

1.一种在线日志解析方法,其特征在于,该方法包含以下步骤:
S1、对每一条未解析日志进行日志预处理,得到多条不同日志长度的未解析日志序列,将各条未解析日志序列归为对应的第一日志组中,所述第一日志组为具有相同日志长度的日志序列的集合,所述第一日志组包含解析过的日志序列和未解析日志序列;
S2、获取第一日志组中各日志序列的日志字符串,对所述第一日志组中的第一条未解析日志序列的日志字符串与所述第一日志组中解析过的日志序列的日志字符串分别计算日志字符串相似度,基于日志字符串相似度在线聚类,得到该条未解析日志序列所在的第二日志组;
S3、将该条未解析日志序列作为查询项,与所述第二日志组的模板生成树中的模板匹配共同的节点,获取该条未解析日志序列的日志模板,后续未解析日志序列依次重复步骤S2和步骤S3操作获取日志模板。
2.如权利要求1所述的在线日志解析方法,其特征在于,步骤S1具体包含:
利用正则表达式识别每一条未解析日志的日志头中与之匹配的变量信息并删除;
利用预先定义的分隔符对每一条未解析日志的日志内容进行划分,得到不同日志长度的未解析日志序列,将各条未解析日志序列按照不同的日志长度归为不同的第一日志组中。
3.如权利要求1所述的在线日志解析方法,其特征在于,所述步骤S2具体包含:
S21、获取第一日志组内各日志序列的日志字符串,将第一日志组内所有解析过的日志序列的日志字符串组成该第一日志组的日志字符串集;
S22、对所述第一日志组中的第一条未解析日志序列的日志字符串与所述日志字符串集中的日志字符串分别计算日志字符串相似度;
S23、基于所述日志字符串相似度在线聚类,得到该条未解析日志序列对应所在的第二日志组,所述第二日志组为各条日志序列的日志字符串相似度达到相似度阈值的日志序列的集合,一个第一日志组里包含若干个第二日志组。
4.如权利要求3所述的在线日志解析方法,其特征在于,所述步骤S21中,
所述日志字符串为日志序列中每个单词的首字母组成的字符串。
5.如权利要求4所述的在线日志解析方法,其特征在于,
当单词的首字符为数字或标识符时,用通配符来表示,当单词的首字符为字母时,用字母本身来表示。
6.如权利要求3所述的在线日志解析方法,其特征在于,所述步骤S22中日志字符串相似度的计算公式为:
Figure FDA0002262881390000021
其中,sim(Sm1,Sm2)表示日志字符串相似度,Sm1和Sm2分别代表一条日志字符串,len(|Sm1|,|Sm2|)代表两条日志字符串的长度,Sm1(i)代表日志字符串Sm1的第i个字符,Sm2(j)代表日志字符串Sm2的第j个字符,Ⅱf(Sm1(i),Sm2(j))定义如下:
Figure FDA0002262881390000022
7.如权利要求3所述的在线日志解析方法,其特征在于,所述步骤S23具体为:
设定相似度阈值,若存在日志字符串相似度大于相似度阈值的日志字符串,将该条未解析日志序列并入该日志字符串对应的第二日志组;若不存在日志字符串相似度大于相似度阈值的日志字符串,则新建一个第二日志组,并更新该第一日志组的日志字符串集。
8.如权利要求3所述的在线日志解析方法,其特征在于,所述步骤S3具体为:
将该条未解析日志序列中的每个单词依次插入树结构,将每条分支最后的节点标记为特殊字符,从该条未解析日志序列的根节点P开始搜索,取得所要查找单词的所在节点,若不存在匹配节点,则将该条未解析日志序列插入树结构作为新分支;若存在匹配节点,根据该匹配节点选择对应的子树并转到该子树继续进行搜索,直至该条未解析日志序列中的每个单词搜索完成,获取该条未解析日志序列的日志模板,后续未解析日志序列依次重复步骤S2和步骤S3的操作以获取日志模板。
9.如权利要求1或8所述的在线日志解析方法,其特征在于,该方法还包含:
判断步骤S3中未解析日志序列的日志模板是否获取成功,具体为:引入界定值X,当所述界定值X小于或等于阈值λ,表示模板生成成功,更新模板生成树,将未匹配节点更新为通配符;当所述界定值X大于所述阈值λ,将未解析日志序列作为新的分支插入模板生成树,其中,所述界定值X表示为:
Figure FDA0002262881390000031
其中,∑unmatch(tmi)表示匹配失败的节点数量,L为日志长度,σ为该搜索路径上通配符的数量。
10.如权利要求1所述的在线日志解析方法,其特征在于,该方法还包含:
引入最大树深度参数MaxDepth,当模板生成树的叶子节点达到最大树深度参数MaxDepth时,未解析日志序列中所有未遍历的单词将不再插入模板生成树,未遍历的单词都用通配符替代。
11.一种采用如权利要求1~10所述的在线日志解析方法解析日志的日志解析系统,其特征在于,该系统包含:
预处理模块,用于对未解析日志进行预处理,得到所述未解析日志对应的未解析日志序列;
日志序列分配模块,将所述未解析日志序列按照其日志长度分配到对应的第一日志组内;
日志字符串获取模块,用于对第一日志组内的日志序列进行提取,获取各日志序列的日志字符串;
日志字符串相似度计算模块,用于对第一日志组中的未解析日志序列的日志字符串与解析过的日志序列的日志字符串分别计算日志字符串相似度;
在线聚类模块,用于依据所述日志字符串相似度,将所述未解析日志序列划分到对应的第二日志组;
模板生成树匹配模块,用于将所述未解析日志序列与第二日志组的模板生成树进行匹配,以获取该条未解析日志序列的日志模板。
12.如权利要求11所述的日志解析系统,其特征在于,还包含:
判断模块,用于判断所述未解析日志序列的日志模板是否获取成功。
13.一种电子终端设备,其特征在于,包含:
处理器,存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1~10中任意一项所述的在线日志解析方法。
CN201911077285.8A 2019-11-06 2019-11-06 一种在线日志解析方法、系统及其电子终端设备 Active CN110888849B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201911077285.8A CN110888849B (zh) 2019-11-06 2019-11-06 一种在线日志解析方法、系统及其电子终端设备
PCT/CN2020/098701 WO2021088385A1 (zh) 2019-11-06 2020-06-29 一种在线日志解析方法、系统及其电子终端设备
EP20789812.3A EP3846048A1 (en) 2019-11-06 2020-06-29 Online log analysis method, system, and electronic terminal device thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911077285.8A CN110888849B (zh) 2019-11-06 2019-11-06 一种在线日志解析方法、系统及其电子终端设备

Publications (2)

Publication Number Publication Date
CN110888849A true CN110888849A (zh) 2020-03-17
CN110888849B CN110888849B (zh) 2022-07-22

Family

ID=69746909

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911077285.8A Active CN110888849B (zh) 2019-11-06 2019-11-06 一种在线日志解析方法、系统及其电子终端设备

Country Status (3)

Country Link
EP (1) EP3846048A1 (zh)
CN (1) CN110888849B (zh)
WO (1) WO2021088385A1 (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111581220A (zh) * 2020-05-28 2020-08-25 泰康保险集团股份有限公司 用于时间序列数据的存储及检索方法、装置、设备及存储介质
CN111832280A (zh) * 2020-07-09 2020-10-27 北京奇艺世纪科技有限公司 剧本信息处理方法、装置、电子设备及存储介质
CN112000806A (zh) * 2020-08-25 2020-11-27 携程旅游信息技术(上海)有限公司 异常日志监控分析方法、系统、设备及存储介质
CN112463957A (zh) * 2020-12-14 2021-03-09 清华大学 非结构化文本日志流的摘要提取方法和装置
CN112732655A (zh) * 2021-01-13 2021-04-30 北京六方云信息技术有限公司 针对无格式日志的在线解析方法及系统
WO2021088385A1 (zh) * 2019-11-06 2021-05-14 国网上海市电力公司 一种在线日志解析方法、系统及其电子终端设备
CN112882997A (zh) * 2021-02-19 2021-06-01 武汉大学 一种基于N-gram与频繁模式挖掘的系统日志解析方法
CN112883004A (zh) * 2021-02-24 2021-06-01 上海浦东发展银行股份有限公司 一种基于日志聚合的日志知识库与健康度获取方法及系统
CN113254438A (zh) * 2020-11-20 2021-08-13 云智慧(北京)科技有限公司 一种基于树结构的日志解析方法和系统
CN113590421A (zh) * 2021-07-27 2021-11-02 招商银行股份有限公司 日志模板提取方法、程序产品及存储介质
CN113595787A (zh) * 2021-07-27 2021-11-02 招商银行股份有限公司 基于日志模板的实时日志自动告警方法、程序及介质
CN114598597A (zh) * 2022-02-24 2022-06-07 烽台科技(北京)有限公司 多源日志解析方法、装置、计算机设备及介质

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113535955B (zh) * 2021-07-16 2022-10-28 中国工商银行股份有限公司 一种日志快速归类方法及装置
CN115185525B (zh) * 2022-05-17 2023-07-18 贝壳找房(北京)科技有限公司 数据倾斜代码块定位方法、装置、设备及介质
JP7466878B2 (ja) 2022-06-16 2024-04-15 ソフトバンク株式会社 情報処理装置、情報処理方法及びプログラム
CN115017268B (zh) * 2022-08-04 2022-10-11 北京航空航天大学 一种基于树结构的启发式日志抽取方法及系统
CN115543950B (zh) * 2022-09-29 2023-06-16 杭州中电安科现代科技有限公司 一种日志范化的数据处理系统
CN115860836B (zh) * 2022-12-07 2023-09-26 广东南粤分享汇控股有限公司 一种基于用户行为大数据分析的电商服务推送方法及系统
CN117033464B (zh) * 2023-08-11 2024-04-02 上海鼎茂信息技术有限公司 一种基于聚类的日志并行解析算法及应用
CN117407242B (zh) * 2023-10-10 2024-04-05 浙江大学 基于大语言模型的低成本、零样本的在线日志解析方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106339293A (zh) * 2016-08-20 2017-01-18 南京理工大学 一种基于签名的日志事件提取方法
US20180089304A1 (en) * 2016-09-29 2018-03-29 Hewlett Packard Enterprise Development Lp Generating parsing rules for log messages
CN110175158A (zh) * 2019-05-23 2019-08-27 湖南大学 一种基于向量化的日志模板提取方法和系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10187495B2 (en) * 2016-09-23 2019-01-22 Entit Software Llc Identifying problematic messages
CN109144964A (zh) * 2018-08-21 2019-01-04 杭州安恒信息技术股份有限公司 基于机器学习的日志解析方法和装置
CN109981625B (zh) * 2019-03-18 2021-08-27 中国人民解放军陆军炮兵防空兵学院郑州校区 一种基于在线层次聚类的日志模板抽取方法
CN110888849B (zh) * 2019-11-06 2022-07-22 国网上海市电力公司 一种在线日志解析方法、系统及其电子终端设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106339293A (zh) * 2016-08-20 2017-01-18 南京理工大学 一种基于签名的日志事件提取方法
US20180089304A1 (en) * 2016-09-29 2018-03-29 Hewlett Packard Enterprise Development Lp Generating parsing rules for log messages
CN110175158A (zh) * 2019-05-23 2019-08-27 湖南大学 一种基于向量化的日志模板提取方法和系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SUYASH MISHRA 等: "Structured and Unstructured Big Data Analytics", 《 2017 INTERNATIONAL CONFERENCE ON CURRENT TRENDS IN COMPUTER, ELECTRICAL, ELECTRONICS AND COMMUNICATION 》 *
李静: "ELK日志分析系统在河钢承钢的应用", 《软件应用》 *

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021088385A1 (zh) * 2019-11-06 2021-05-14 国网上海市电力公司 一种在线日志解析方法、系统及其电子终端设备
CN111581220A (zh) * 2020-05-28 2020-08-25 泰康保险集团股份有限公司 用于时间序列数据的存储及检索方法、装置、设备及存储介质
CN111832280A (zh) * 2020-07-09 2020-10-27 北京奇艺世纪科技有限公司 剧本信息处理方法、装置、电子设备及存储介质
CN111832280B (zh) * 2020-07-09 2023-06-30 北京奇艺世纪科技有限公司 剧本信息处理方法、装置、电子设备及存储介质
CN112000806A (zh) * 2020-08-25 2020-11-27 携程旅游信息技术(上海)有限公司 异常日志监控分析方法、系统、设备及存储介质
CN113254438A (zh) * 2020-11-20 2021-08-13 云智慧(北京)科技有限公司 一种基于树结构的日志解析方法和系统
CN112463957A (zh) * 2020-12-14 2021-03-09 清华大学 非结构化文本日志流的摘要提取方法和装置
CN112732655A (zh) * 2021-01-13 2021-04-30 北京六方云信息技术有限公司 针对无格式日志的在线解析方法及系统
CN112732655B (zh) * 2021-01-13 2024-02-06 北京六方云信息技术有限公司 针对无格式日志的在线解析方法及系统
CN112882997B (zh) * 2021-02-19 2022-06-07 武汉大学 一种基于N-gram与频繁模式挖掘的系统日志解析方法
CN112882997A (zh) * 2021-02-19 2021-06-01 武汉大学 一种基于N-gram与频繁模式挖掘的系统日志解析方法
CN112883004A (zh) * 2021-02-24 2021-06-01 上海浦东发展银行股份有限公司 一种基于日志聚合的日志知识库与健康度获取方法及系统
CN112883004B (zh) * 2021-02-24 2023-04-07 上海浦东发展银行股份有限公司 一种基于日志聚合的日志知识库与健康度获取方法及系统
CN113590421A (zh) * 2021-07-27 2021-11-02 招商银行股份有限公司 日志模板提取方法、程序产品及存储介质
CN113595787A (zh) * 2021-07-27 2021-11-02 招商银行股份有限公司 基于日志模板的实时日志自动告警方法、程序及介质
CN113595787B (zh) * 2021-07-27 2024-03-29 招商银行股份有限公司 基于日志模板的实时日志自动告警方法、程序及介质
CN113590421B (zh) * 2021-07-27 2024-04-26 招商银行股份有限公司 日志模板提取方法、程序产品及存储介质
CN114598597A (zh) * 2022-02-24 2022-06-07 烽台科技(北京)有限公司 多源日志解析方法、装置、计算机设备及介质
CN114598597B (zh) * 2022-02-24 2023-12-01 烽台科技(北京)有限公司 多源日志解析方法、装置、计算机设备及介质

Also Published As

Publication number Publication date
EP3846048A4 (en) 2021-07-07
CN110888849B (zh) 2022-07-22
WO2021088385A1 (zh) 2021-05-14
EP3846048A1 (en) 2021-07-07

Similar Documents

Publication Publication Date Title
CN110888849B (zh) 一种在线日志解析方法、系统及其电子终端设备
CN110175158B (zh) 一种基于向量化的日志模板提取方法和系统
CN111324784A (zh) 一种字符串处理方法及装置
US20180004815A1 (en) Stop word identification method and apparatus
CN109408578B (zh) 一种针对异构环境监测数据融合方法
CN111026671A (zh) 测试用例集构建方法和基于测试用例集的测试方法
CN109977668B (zh) 恶意代码的查询方法及系统
CN112115965A (zh) 一种基于svm的被动操作系统识别方法、存储介质及设备
CN113626400A (zh) 基于日志树和解析树的日志事件提取方法及系统
CN110969517B (zh) 一种招投标生命周期关联方法、系统、存储介质及计算机设备
CN110633371A (zh) 一种日志分类方法及系统
CN110659175A (zh) 日志的主干提取方法、分类方法、设备及存储介质
CN115017268B (zh) 一种基于树结构的启发式日志抽取方法及系统
CN111190873B (zh) 一种用于云原生系统日志训练的日志模式提取方法及系统
CN114398891B (zh) 基于日志关键词生成kpi曲线并标记波段特征的方法
CN110347827B (zh) 面向异构文本运维数据的事件提取方法
CN116032741A (zh) 一种设备识别方法、装置、电子设备和计算机存储介质
CN113032371A (zh) 数据库语法分析方法、装置和计算机设备
CN116578700A (zh) 日志分类方法、日志分类装置、设备及介质
CN112925874B (zh) 基于案例标记的相似代码搜索方法及系统
CN112883703B (zh) 一种识别关联文本的方法、装置、电子设备及存储介质
CN113821650A (zh) 一种基于大数据的信息检索系统
CN115221013B (zh) 一种日志模式的确定方法、装置及设备
CN110851679A (zh) 一种基于正文节点特征的提取网页正文的方法和系统
CN117235137B (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
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Wu Jinlong

Inventor after: Li Jing

Inventor after: Wang Xiulan

Inventor after: He Xudong

Inventor after: Zhang Luwei

Inventor after: Hu Junyi

Inventor after: Chen Xiaolu

Inventor after: Xie Liyan

Inventor after: Fang Xiaorong

Inventor after: Zhu Bei

Inventor before: Wu Jinlong

Inventor before: Li Jing

Inventor before: Wang Xiulan

Inventor before: He Xudong

Inventor before: Zhang Luwei

Inventor before: Hu Junyi

Inventor before: Chen Xiaolu

Inventor before: Xie Liyan

Inventor before: Fang Xiaorong

Inventor before: Zhu Bei

GR01 Patent grant
GR01 Patent grant