CN111881094B - 日志中关键信息提取方法、装置、终端及存储介质 - Google Patents
日志中关键信息提取方法、装置、终端及存储介质 Download PDFInfo
- Publication number
- CN111881094B CN111881094B CN202010737229.9A CN202010737229A CN111881094B CN 111881094 B CN111881094 B CN 111881094B CN 202010737229 A CN202010737229 A CN 202010737229A CN 111881094 B CN111881094 B CN 111881094B
- Authority
- CN
- China
- Prior art keywords
- expression
- log
- key information
- jmte
- extracting
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 230000014509 gene expression Effects 0.000 claims abstract description 384
- 238000000605 extraction Methods 0.000 claims description 35
- 230000002159 abnormal effect Effects 0.000 claims description 12
- 230000006870 function Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 5
- 230000005856 abnormality Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/1734—Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Computational Linguistics (AREA)
- Debugging And Monitoring (AREA)
- Machine Translation (AREA)
Abstract
本发明公开了一种日志中关键信息提取方法、装置、终端及存储介质,其中方法包括:识别日志所属的日志类别;获取日志类别对应的扩展表达式,每种日志类别对应一个预先构建的扩展表达式,扩展表达式包括grok表达式和Jmte表达式,Jmte表达式根据所需提取的关键信息预先设定;判断扩展表达式是否为特殊表达式;若是,则利用与特殊表达式对应的预设解析规则和特殊表达式从日志中提取关键信息;若否,则利用扩展表达式从日志中提取关键信息。本发明通过利用grok表达式和Jmte表达式组合为扩展表达式,能够批量提取不同格式日志中的文本信息,并且针对于部分日志采用特殊表达式按照预设解析规则提取,进一步提升了处理效率。
Description
技术领域
本申请涉及数据处理领域,特别是涉及一种日志中关键信息提取方法、装置、终端及存储介质。
背景技术
在计算机中,日志是用于记录在操作系统或其他软件运行中发生的事件或在通信软件的不同用户之间的消息的文件,是一个系统的重要组成部分,在系统排错、优化方面起着很重要的作用,同时也是安全领域不可或缺的工具。
为了发掘日志的价值,开发人员经常需要分析大量的日志,其需要提取每条日志中的某些特定的内容,比如IP地址、生成时间等等。虽然日志内容通常遵循一定的模式,但是这种模式往往是隐晦的,是不容易直观获取到的。所以在提取某些特定的内容时,通常会根据提取的内容设计对应的正则表达式,然后依据正则表达式来提取日志中特定的内容。但是,现有方案利用正则表达式提取日志中的内容时,需要执行正则表达式来提取每条日志的信息,提取方式呆板、效率低下,且部分情况下还需要设计语法复杂的正则表达式才能提取到需要的信息,或者是同一条日志需要配置多个提取器才能提取出所有需要的信息,而复杂语法的正则表达式以及复杂的配置,均会降低日志的处理效率降低。
发明内容
本申请提供一种日志中关键信息提取方法、装置、终端及存储介质,以解决现有技术中日志信息处理效率过于低下的问题。
为解决上述技术问题,本申请采用的一个技术方案是:提供一种日志中关键信息提取方法,包括:识别日志所属的日志类别,日志类别预先设定;获取日志类别对应的扩展表达式,每种日志类别对应一个预先构建的扩展表达式,扩展表达式包括至少一个grok表达式和至少一个Jmte表达式,Jmte表达式根据所需提取的关键信息预先设定;判断扩展表达式是否为特殊表达式;若是,则利用与特殊表达式对应的预设解析规则和特殊表达式从日志中提取关键信息;若否,则利用扩展表达式从日志中提取关键信息。
作为本申请的进一步改进,利用与特殊表达式对应的预设解析规则和特殊表达式从日志中提取关键信息,包括:当扩展表达式为第一特殊表达式时,执行第一特殊表达式末尾的第一Jmte表达式以提取日志末尾的第一关键信息,第一特殊表达式的末尾预设为用于提取第一关键信息的第一Jmte表达式;判断第一关键信息中是否包括第一预设字段;若是,则利用grok表达式和剩余的Jmte表达式从日志中提取关键信息;若否,则判定日志异常并停止提取关键信息。
作为本申请的进一步改进,利用与特殊表达式对应的预设解析规则和特殊表达式从日志中提取关键信息,包括:当扩展表达式属于第二特殊表达式时,执行第二特殊表达式首位的第二Jmte表达式以获取日志的长度,第二特殊表达式的首位预设为用于获取日志的长度的第二Jmte表达式;判断日志的长度是否大于第一预设阈值或小于第二预设阈值,第一预设阈值大于第二预设阈值;若是,则判定日志异常并停止提取关键信息若否,则利用grok表达式和剩余的Jmte表达式从日志中提取关键信息。
作为本申请的进一步改进,获取日志类别对应的扩展表达式之后,还包括:解析扩展表达式,以将扩展表达式拆分为多段,每段对应一个grok表达式或一个Jmte表达式。
作为本申请的进一步改进,解析扩展表达式之前,还包括:判断存储器中是否存在解析好的扩展表达式;若存在,则直接调取解析好的扩展表达式;若不存在,则执行解析扩展表达式,以将扩展表达式拆分为多段的步骤,且将解析好的扩展表达式存储至存储器。
作为本申请的进一步改进,利用扩展表达式从日志中提取关键信息,包括:获取日志的文本信息;逐个利用grok表达式或Jmte表达式从文本信息中提取关键信息,并在提取到关键信息后从文本信息中移除关键信息,直至提取完成。
作为本申请的进一步改进,当扩展表达式中存在提取固定长度的字段信息的第三Jmte表达式时,方法还包括:通过第三Jmte表达式识别日志中的特殊字符后,获取任意相邻两个特殊字符间字段的字符串长度;从第三Jmte表达式中获取需要提取的字段信息的目标长度;提取与目标长度匹配的字段,得到字段信息。
为解决上述技术问题,本申请采用的另一个技术方案是:提供一种日志中关键信息提取装置,包括:识别模块,用于识别日志所属的日志类别,日志类别预先设定;获取模块,用于获取日志类别对应的扩展表达式,每种日志类别对应一个预先构建的扩展表达式,扩展表达式包括至少一个grok表达式和至少一个Jmte表达式,Jmte表达式根据所需提取的关键信息预先设定;判断模块,用于判断扩展表达式是否为特殊表达式;第一提取模块,用于当扩展表达式为特殊表达式时,利用与特殊表达式对应的预设解析规则和特殊表达式从日志中提取关键信息;第二提取模块,用于当扩展表达式不为特殊表达式时,利用扩展表达式从日志中提取关键信息。
为解决上述技术问题,本申请采用的再一个技术方案是:提供一种终端,该终端包括处理器、与处理器耦接的存储器,其中,存储器存储有用于实现上述日志中关键信息提取方法的程序指令;处理器用于执行存储器存储的程序指令以提取日志中的关键信息。
为解决上述技术问题,本申请采用的再一个技术方案是:提供一种存储介质,存储有能够实现上述日志中关键信息提取方法的程序文件。
本申请的有益效果是:本申请的日志中关键信息提取方法通过将日志在类别上进行划分,再针对于其中的部分特殊的日志类别设定特定的特殊表达式,当从日志类别中提取关键信息时,获取该日志类别对应的扩展表达式,再利用该扩展表达式从日志中提取关键信息,并且,扩展表达式是由grok表达式与可以处理特定格式和字符、支持特定类型转换的Jmte表达式组成,使得每个扩展表达式可以完整提取一条日志的所有关键信息,解决了使用主提取器和附提取器同时提取同一条日志时配置复杂、效率低下的问题。此外,当扩展表达式为特殊表达式时,利用与该特殊表达式对应的预设解析规则和该特殊表达式从日志中提取关键信息,优化该类日志的提取过程,从而提升该类日志的提取效率。
附图说明
图1是本发明第一实施例的日志中关键信息提取方法的流程示意图;
图2是本发明第二实施例的日志中关键信息提取方法的流程示意图;
图3是本发明第三实施例的日志中关键信息提取方法的流程示意图;
图4是本发明实施例的日志中关键信息提取装置的功能模块示意图;
图5是本发明实施例的终端的结构示意图;
图6是本发明实施例的存储介质的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请中的术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、“第三”的特征可以明示或者隐含地包括至少一个该特征。本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。本申请实施例中所有方向性指示(诸如上、下、左、右、前、后……)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
图1是本发明第一实施例的日志中关键信息提取方法的流程示意图。需注意的是,若有实质上相同的结果,本发明的方法并不以图1所示的流程顺序为限。如图1所示,该方法包括步骤:
步骤S101:识别日志所属的日志类别,日志类别预先设定。
在步骤S101中,该日志类别是由用户预先各个日志之间的共同特征后,根据日志之间的共同特征划分的类别。例如,用户访问产生的日志可以归类为访问日志,应用程序的运行日志等。通过划分日志类别后,在获取到待提取的日志时,识别该日志所属的日志类别。
步骤S102:获取日志类别对应的扩展表达式,每种日志类别对应一个预先构建的扩展表达式。
需要说明的是,扩展表达式包括至少一个grok表达式和至少一个Jmte表达式,Jmte表达式根据所需提取的关键信息预先设定。
其中,grok是Logstash(是一个开源的日志收集管理工具)最重要的插件,可以在grok里预定义正则表达式,利用该正则表达式即可解析日志。Jmte(Java MinimalTemplate Engine)表达式通过调用Java方法将提取到的字段交给执行引擎保存,具有截取固定长度字符串、url解码、按固定分隔符、拆解字符串、跳过字符、校验特殊字符等作用,下表1展示了部分Jmte表达式及其用途,具体请参阅下表1:
表1
以一个例子说明本实施例中扩展表达式提取日志中的关键信息,例如,用户访问日志为:
2020-07-17 16:26:50.871DEBUG[accesslog]SomeOne192.168.1.1company.com.cn 200 0.030GET api/search?query=where&filter=group%3A001&limit=10&offset=20&sort=time%3Adesc"Mozilla/5.0(Windows NT6.1;Win64;x64)AppleWebKit/537.36(KHTML,like Gecko)Chrome/80.0.3987.122Safari/537.36";
其对应的扩展表达式为:
${@DateTime request_time 23}\s+(?<log_level>\w++)\s+\[accesslog\]\s+(?<user>\w++)\s+(?<client_ip>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s+(?<server>[a-zA-Z]\S++)\s+(?<status>\d++)\s+(?<time_taken>\d++\.\d++)\s+(?<cs_method>[A-Z]++)\s+(?<cs_uri>[^\?\s]++)\??${@URLDecode}${@KeyValue=&query_param_}${@Skip 1}${@QuotesString user_agent RL};
执行上述扩展表达式,提取的关键信息如下表2所示:
表2
本实施例中,扩展表达式包括至少一个grok表达式和至少一个Jmte表达式,而Jmte表达式中可以由用户注册对应的处理程序,用于解析不便于通过grok表达式解析的有嵌套格式的文本,还可用于增加grok不支持的类型转换,将获取到的文本转换为特定类型的字段,如date(日期)类型的字段。
步骤S103:判断扩展表达式是否为特殊表达式。若是,则执行步骤S104;若否,则执行步骤S105。
在步骤S103中,该特殊表达式是指所有扩展表达式中的一种表达式。
步骤S104:利用与特殊表达式对应的预设解析规则和特殊表达式从日志中提取关键信息。
在步骤S104中,每一个特殊表达式对应一种日志类别,同样也对应一种预设解析规则,预设解析规则是由开发人员根据同一类别的日志的共有特征信息设定的规则,其针对于日志的共有特征信息,采用相应的解析规则来提升提取日志的关键信息的效率。
进一步的,在一些实施例中,该特殊表达式包括第一特殊表达式,当扩展表达式为第一特殊表达式时,所述利用与特殊表达式对应的预设解析规则和特殊表达式从日志中提取关键信息的步骤,具体包括:
1、当扩展表达式为第一特殊表达式时,执行第一特殊表达式末尾的第一Jmte表达式以提取日志末尾的第一关键信息,第一特殊表达式的末尾预设为用于提取第一关键信息的第一Jmte表达式。
具体地,该第一特殊表达式是指末尾设置为第一Jmte表达式的扩展表达式,当日志对应的扩展表达式为第一特殊表达式时,优先执行第一Jmte表达式以提取日志末尾的第一关键信息。
2、判断第一关键信息中是否包括第一预设字段。
具体地,在获取到第一关键信息后,判断该第一关键信息中是否包括第一预设字段。其中,该第一预设字段由开发人员根据与第一特殊表达式对应的日志类别的日志设定,该日志类别的日志均是以第一预设字段结尾的日志,因此,当该日志类别的日志的末尾不包括第一预设字段时,即可确认该日志出现异常。
3、当第一关键信息中包括第一预设字段时,利用grok表达式和剩余的Jmte表达式从日志中提取关键信息。
4、当第一关键信息中不包括第一预设字段时,判定日志异常并停止提取关键信息。
本实施例中,当第一关键信息中不包括第一预设字段时,说明该日志出现异常,其中的数据也可能会存在异常,因此,通过停止利用扩展表达式提取关键信息,从而不需要执行其他的grok表达式或Jmte表达式,减少对资源的占用,同时也帮助开发人员提早发现日志异常,提升了日志批量处理的效率。需要说明的是,Jmte中调用的Java程序能直接识别出日志末尾的字符并进行提取,因此,该第一特殊表达式的末尾预设为第一Jmte表达式。
进一步的,在一些实施例中,该特殊表达式包括第二特殊表达式,当扩展表达式为第二特殊表达式时,所述利用与特殊表达式对应的预设解析规则和特殊表达式从日志中提取关键信息的步骤,具体包括:
1、当扩展表达式属于第二特殊表达式时,执行第二特殊表达式首位的第二Jmte表达式以获取日志的长度,第二特殊表达式的首位预设为用于获取日志的长度的第二Jmte表达式。
具体地,该第二特殊表达式是指首位设置为第二Jmte表达式的扩展表达式,当日志对应的扩展表达式为第二特殊表达式时,优先执行第二Jmte表达式以获取日志的长度,该日志的长度是指日志中的所有字符串的长度。
2、判断日志的长度是否大于第一预设阈值或小于第二预设阈值。
需要说明的是,第一预设阈值和第二预设阈值由开发人员预先设置,且第一预设阈值大于第二预设阈值。其中,第一预设阈值和第二预设阈值由开发人员对同一日志类别的众多样本日志进行研究后设定的,当该日志类别的日志的长度在不第一预设阈值和第二预设阈值范围内时,即可确认该日志异常。
3、当日志的长度大于第一预设阈值或小于第二预设阈值时,判定日志异常并停止提取关键信息。
4、当日志的长度在第一预设阈值和第二预设阈值之间时(包括与第一预设阈值或第二预设阈值相等时),利用grok表达式和剩余的Jmte表达式从日志中提取关键信息。
本实施例中,当日志对应第二特殊表达式时,获取该日志的长度,并利用日志的长度判断日志是否为正常日志,而在执行所有的grok表达式和Jmte表达式之前进行判断,从而筛选出异常的日志,且不需要耗费资源去提取其关键信息,提升了日志批量处理的效率。
步骤S105:利用扩展表达式从日志中提取关键信息。
在步骤S105中,在使用扩展表达式从日志中提取关键信息时,分别利用扩展表达式中的grok表达式和Jmte表达式从日志中提取对应的关键信息。
进一步的,本实施例中,在执行步骤S104或步骤S105时,若扩展表达式中存在提取固定长度的字段信息的第三Jmte表达式,则利用第三Jmte表达式提取固定长度的字段信息的步骤具体包括:
1、通过第三Jmte表达式识别日志中的特殊字符后,获取任意相邻两个特殊字符间字段的字符串长度。
需要说明的是,该第三Jmte表达式被开发人员配置为用于识别日志中的特殊字符并获取相邻两个特殊字符间字段的长度,例如第三Jmte表达式可以识别空格符,两个空格符之间的字符串为一个字段。
2、从第三Jmte表达式中获取需要提取的字段信息的目标长度。
具体地,每个第三Jmte表达式均预先设定了需要提取的字段信息的目标长度。
3、提取与目标长度匹配的字段,得到字段信息。
具体地,通过利用第三Jmte表达式匹配固定长度字段信息来提取需要的关键信息,其不需要逐个字符进行匹配,大幅度降低了数据处理量,使得日志中关键信息的提取效率更高。
本发明第一实施例的日志中关键信息提取方法通过将日志在类别上进行划分,再针对于其中的部分特殊的日志类别设定特定的解析规则,当从该特殊的日志类别中提取关键信息时,利用该特定的解析规则和对应的扩展表达式从日志中提取,以提升日志的关键信息的提取效率,并且,扩展表达式是由grok表达式与可以处理特定格式和字符、支持特定类型转换的Jmte表达式组成,使得每个扩展表达式可以完整提取一条日志的所有关键信息,解决了使用主提取器和附提取器同时提取同一条日志时配置复杂、效率低下的问题,优化了日志信息的提取过程,提升了日志提取效率。
图2是本发明第二实施例的日志中关键信息提取方法的流程示意图。需注意的是,若有实质上相同的结果,本发明的方法并不以图2所示的流程顺序为限。如图2所示,该方法包括步骤:
步骤S201:识别日志所属的日志类别,日志类别预先设定。
在本实施例中,图2中的步骤S201和图1中的步骤S101类似,为简约起见,在此不再赘述。
步骤S202:获取日志类别对应的扩展表达式,每种日志类别对应一个预先构建的扩展表达式。
在本实施例中,图2中的步骤S202和图1中的步骤S102类似,为简约起见,在此不再赘述。
步骤S203:解析扩展表达式,以将扩展表达式拆分为多段,每段对应一个grok表达式或一个Jmte表达式。
在步骤S203中,首先需要理解的是,本实施例中的扩展表达式是由至少一个grok表达式和至少一个Jmte表达式组成,因此,为了简化关键信息的提取过程,预先将扩展表达式拆分为多段,每段对应一个grok表达式或一个Jmte表达式,后续再逐个执行grok表达式或Jmte表达式,以从日志中提取关键信息。
步骤S204:判断扩展表达式是否为特殊表达式。若是,则执行步骤S205;若否,则执行步骤S206。
在本实施例中,图2中的步骤S204和图1中的步骤S103类似,为简约起见,在此不再赘述。
步骤S205:利用与特殊表达式对应的预设解析规则和特殊表达式从日志中提取关键信息。
在本实施例中,图2中的步骤S205和图1中的步骤S104类似,为简约起见,在此不再赘述。
步骤S206:利用扩展表达式从日志中提取关键信息
在本实施例中,图2中的步骤S206和图1中的步骤S105类似,为简约起见,在此不再赘述。
进一步的,为了进一步提升提取效率,在一些实施例中,利用扩展表达式从日志中提取关键信息具体包括:
1、获取日志的文本信息。
需要说明的是,日志通常会以文本的形式生成和存储,本实施例中,在从日志中提取关键信息时,先获取日志的所有文本信息。
2、逐个利用grok表达式或Jmte表达式从文本信息中提取关键信息,并在提取到关键信息后从文本信息中移除关键信息,直至提取完成。
具体地,从文本信息中提取关键信息时,首先利用grok表达式或Jmte表达式从文本信息提取关键信息,且将被提取的关键信息从文本信息中删除,再将剩余的文本信息交由下一个grok表达式或Jmte表达式进行提取,因此,每提取一次关键信息,剩余的文本信息中包括的数据减少一部分,从而后续的表达式在提取关键信息时需要处理的数据量更少,使得关键信息的提取速度越来越快,从而提升日志中关键信息的提取效率。
需要说明的是,步骤S205中利用与特殊表达式对应的预设解析规则和特殊表达式从日志中提取关键信息时,同样可以采用上述方式以提升日志中关键信息的提取效率。
本发明第二实施例的日志中关键信息提取方法在第一实施例的基础上,通过将扩展表达式拆分为多段,每段对应一个grok表达式或一个Jmte表达式,再逐个利用grok表达式或Jmte表达式从日志中提取关键信息,并且,每执行一个grok表达式或Jmte表达式,则将被提取的关键信息从日志的文本信息中剔除,从而使得后续的grok表达式或Jmte表达式所需要匹配的数据越来越少,提取的效率越来越高。
图3是本发明第三实施例的日志中关键信息提取方法的流程示意图。需注意的是,若有实质上相同的结果,本发明的方法并不以图3所示的流程顺序为限。如图3所示,该方法包括步骤:
步骤S301:识别日志所属的日志类别,日志类别预先设定。
在本实施例中,图3中的步骤S301和图2中的步骤S201类似,为简约起见,在此不再赘述。
步骤S302:获取日志类别对应的扩展表达式,每种日志类别对应一个预先构建的扩展表达式。
在本实施例中,图3中的步骤S302和图2中的步骤S202类似,为简约起见,在此不再赘述。
步骤S303:判断存储器中是否存在解析好的扩展表达式。若存在,则执行步骤S304;若不存在,则执行步骤S305。
步骤S304:直接调取解析好的扩展表达式。
步骤S305:解析扩展表达式,以将扩展表达式拆分为多段,每段对应一个grok表达式或一个Jmte表达式,且将解析好的扩展表达式存储至存储器。
在步骤S303~步骤S305中,将拆分好的扩展表达式存储至存储器中,当需要使用该扩展表达式时,直接从存储器中调取即可使用,不需要再对扩展表达式进行解析拆分,进一步避免占用系统资源,同时缩减了处理流程,提升了提取效率。并且,当存储器中不存在解析好的扩展表达式时,将其解析后存储至存储器中,以供后续使用。
步骤S306:判断扩展表达式是否为特殊表达式。若是,则执行步骤S307;若否,则执行步骤S308。
在本实施例中,图3中的步骤S306和图2中的步骤S204类似,为简约起见,在此不再赘述。
步骤S307:利用与特殊表达式对应的预设解析规则和特殊表达式从日志中提取关键信息。
在本实施例中,图3中的步骤S307和图2中的步骤S205类似,为简约起见,在此不再赘述。
步骤S308:利用扩展表达式从日志中提取关键信息
在本实施例中,图3中的步骤S308和图2中的步骤S206类似,为简约起见,在此不再赘述。
本发明第三实施例的日志中关键信息提取方法在第二实施例的基础上,通过设置存储器存储解析好的扩展表达式,从而在日志的关键信息提取过程中,不需要每次都对扩展表达式进行解析,使得日志提取速度更快,效率更高。
图4是本发明实施例的日志中关键信息提取装置的功能模块示意图。如图4所示,该装置40包括识别模块41、获取模块42、判断模块43、第一提取模块44和第二提取模块45。
识别模块41,用于识别日志所属的日志类别,日志类别预先设定。
获取模块42,用于获取日志类别对应的扩展表达式,每种日志类别对应一个预先构建的扩展表达式,扩展表达式包括至少一个grok表达式和至少一个Jmte表达式,Jmte表达式根据所需提取的关键信息预先设定。
判断模块43,用于判断扩展表达式是否为特殊表达式。
第一提取模块44,用于当扩展表达式为特殊表达式时,利用与特殊表达式对应的预设解析规则和特殊表达式从日志中提取关键信息。
第二提取模块45,用于当扩展表达式不为特殊表达式时,利用扩展表达式从日志中提取关键信息。
可选地,第一提取模块44利用与特殊表达式对应的预设解析规则和特殊表达式从日志中提取关键信息的操作还可以为:当扩展表达式为第一特殊表达式时,执行第一特殊表达式末尾的第一Jmte表达式以提取日志末尾的第一关键信息,第一特殊表达式的末尾预设为用于提取第一关键信息的第一Jmte表达式;判断第一关键信息中是否包括第一预设字段;若是,则利用grok表达式和剩余的Jmte表达式从日志中提取关键信息;若否,则判定日志异常并停止提取关键信息。
可选地,第一提取模块44利用与特殊表达式对应的预设解析规则和特殊表达式从日志中提取关键信息的操作还可以为:当扩展表达式属于第二特殊表达式时,执行第二特殊表达式首位的第二Jmte表达式以获取日志的长度,第二特殊表达式的首位预设为用于获取日志的长度的第二Jmte表达式;判断日志的长度是否大于第一预设阈值或小于第二预设阈值;若是,则判定日志异常并停止提取关键信息若否,则利用grok表达式和剩余的Jmte表达式从日志中提取关键信息。
可选地,获取模块42获取日志类别对应的扩展表达式的操作之后,还用于解析扩展表达式,以将扩展表达式拆分为多段,每段对应一个grok表达式或一个Jmte表达式。
可选地,获取模块42解析扩展表达式的操作之前,还用于:判断存储器中是否存在解析好的扩展表达式;若存在,则直接调取解析好的扩展表达式;若不存在,则执行解析扩展表达式,以将扩展表达式拆分为多段的操作,且将解析好的扩展表达式存储至存储器。
可选地,第二提取模块45利用扩展表达式从日志中提取关键信息的操作,还可以为:获取日志的文本信息;逐个利用grok表达式或Jmte表达式从文本信息中提取关键信息,并在提取到关键信息后从文本信息中移除关键信息,直至提取完成。
可选地,当扩展表达式中存在提取固定长度的字段信息的第三Jmte表达式时,第一提取模块44或第二提取模块45执行第三Jmte表达式的操作具体为:通过第三Jmte表达式识别日志中的特殊字符后,获取任意相邻两个特殊字符间字段的字符串长度;从第三Jmte表达式中获取需要提取的字段信息的目标长度;提取与目标长度匹配的字段,得到字段信息。
请参阅图5,图5为本发明实施例的终端的结构示意图。如图5所示,该终端50包括处理器51及和处理器51耦接的存储器52。
存储器52存储有用于实现上述任一实施例所述的日志中关键信息提取方法的程序指令。
处理器51用于执行存储器52存储的程序指令以提取日志中的关键信息。
其中,处理器51还可以称为CPU(Central Processing Unit,中央处理单元)。处理器51可能是一种集成电路芯片,具有信号的处理能力。处理器51还可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
参阅图6,图6为本发明实施例的存储介质的结构示意图。本发明实施例的存储介质存储有能够实现上述所有方法的程序文件61,其中,该程序文件61可以以软件产品的形式存储在上述存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质,或者是计算机、服务器、手机、平板等终端设备。
在本申请所提供的几个实施例中,应该理解到,所揭露的终端,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。以上仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (7)
1.一种日志中关键信息提取方法,其特征在于,包括:
识别日志所属的日志类别,所述日志类别预先设定;
获取所述日志类别对应的扩展表达式,每种日志类别对应一个预先构建的扩展表达式,所述扩展表达式包括至少一个grok表达式和至少一个Jmte(JavaMinimalTemplateEngine)表达式,所述Jmte表达式通过调用Java方法将提取到的字段交给执行引擎保存,具有截取固定长度字符串、url解码、按固定分隔符、拆解字符串、跳过字符、校验特殊字符的作用;
当所述扩展表达式为第一特殊表达式时,执行第一特殊表达式末尾的第一Jmte表达式以提取日志末尾的第一关键信息,所述第一特殊表达式末尾预设为用于提取第一关键信息的所述第一Jmte表达式;
判断所述第一关键信息中是否包括第一预设字段;
若是,则利用所述grok表达式和剩余的所述Jmte表达式从所述日志中提取关键信息;
若否,则判定所述日志异常并停止提取所述关键信息;
当所述扩展表达式为第二特殊表达式时,执行第二特殊表达式首位的第二Jmte表达式以获取所述日志的长度,所述第二特殊表达式的首位预设为用于获取所述日志的长度的所述第二Jmte表达式;
判断所述日志的长度是否大于第一预设阈值或小于第二预设阈值,所述第一预设阈值大于所述第二预设阈值;
若是,则判定所述日志异常并停止提取所述关键信息;
若否,则利用所述grok表达式和剩余的所述Jmte表达式从所述日志中提取关键信息;
当所述扩展表达式中存在提取固定长度的字段信息的第三Jmte表达式时,
通过所述第三Jmte表达式识别所述日志中的特殊字符后,获取任意相邻两个所述特殊字符间字段的字符串长度;
从所述第三Jmte表达式中获取需要提取的字段信息的目标长度;
提取与所述目标长度匹配的字段,得到所述字段信息。
2.根据权利要求1所述的日志中关键信息提取方法,其特征在于,所述获取所述日志类别对应的扩展表达式之后,还包括:
解析所述扩展表达式,以将所述扩展表达式拆分为多段,每段对应一个所述grok表达式或一个所述Jmte表达式。
3.根据权利要求2所述的日志中关键信息提取方法,其特征在于,所述解析所述扩展表达式之前,还包括:
判断存储器中是否存在解析好的所述扩展表达式;
若存在,则直接调取解析好的所述扩展表达式;
若不存在,则执行解析所述扩展表达式,以将所述扩展表达式拆分为多段的步骤,且将解析好的所述扩展表达式存储至所述存储器。
4.根据权利要求2所述的日志中关键信息提取方法,其特征在于,所述利用所述扩展表达式从所述日志中提取关键信息,包括:
获取所述日志的文本信息;
逐个利用所述grok表达式或所述Jmte表达式从所述文本信息中提取所述关键信息,并在提取到所述关键信息后从所述文本信息中移除所述关键信息,直至提取完成。
5.一种日志中关键信息提取装置,其特征在于,包括:
识别模块,用于识别日志所属的日志类别,所述日志类别预先设定;
获取模块,用于获取所述日志类别对应的扩展表达式,每种日志类别对应一个预先构建的扩展表达式,所述扩展表达式包括至少一个grok表达式和至少一个Jmte表达式,预先设定第一Jmte表达式用以提取日志末尾的第一关键信息,第二Jmte表达式用以获取所述日志的长度,第三Jmte表达式用以获取需要提取的字段信息的目标长度;
判断模块,用于判断所述扩展表达式是否为特殊表达式;
第一提取模块,用于当所述扩展表达式为特殊表达式时,利用与所述特殊表达式对应的预设解析规则和所述特殊表达式从所述日志中提取关键信息,当所述扩展表达式为第一特殊表达式时,执行第一特殊表达式末尾的所述第一Jmte表达式以提取所述日志末尾的所述第一关键信息,所述第一特殊表达式末尾预设为用于提取所述第一关键信息的所述第一Jmte表达式;
判断所述第一关键信息中是否包括第一预设字段;
若是,则利用所述grok表达式和剩余的所述Jmte表达式从所述日志中提取关键信息;
若否,则判定所述日志异常并停止提取所述关键信息;
当所述扩展表达式为第二特殊表达式时,执行第二特殊表达式首位的所述第二Jmte表达式以获取所述日志的长度,所述第二特殊表达式的首位预设为用于获取所述日志的长度的所述第二Jmte表达式;
判断所述日志的长度是否大于第一预设阈值或小于第二预设阈值,所述第一预设阈值大于所述第二预设阈值;
若是,则判定所述日志异常并停止提取所述关键信息;
若否,则利用所述grok表达式和剩余的所述Jmte表达式从所述日志中提取关键信息;
当所述扩展表达式中存在提取固定长度的字段信息的所述第三Jmte表达式时,
通过所述第三Jmte表达式识别所述日志中的特殊字符后,获取任意相邻两个所述特殊字符间字段的字符串长度;
从所述第三Jmte表达式中获取需要提取的字段信息的目标长度;
提取与所述目标长度匹配的字段,得到所述字段信息;
第二提取模块,用于当所述扩展表达式不为特殊表达式时,利用所述扩展表达式从所述日志中提取关键信息。
6.一种终端,其特征在于,所述终端包括处理器、与所述处理器耦接的存储器,其中,
所述存储器存储有用于实现如权利要求1-4中任一项所述的日志中关键信息提取方法的程序指令;
所述处理器用于执行所述存储器存储的所述程序指令以提取日志中的关键信息。
7.一种存储介质,其特征在于,存储有能够实现如权利要求1-4中任一项所述的日志中关键信息提取方法的程序文件。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010737229.9A CN111881094B (zh) | 2020-07-28 | 2020-07-28 | 日志中关键信息提取方法、装置、终端及存储介质 |
PCT/CN2020/118501 WO2021120782A1 (zh) | 2020-07-28 | 2020-09-28 | 日志中关键信息提取方法、装置、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010737229.9A CN111881094B (zh) | 2020-07-28 | 2020-07-28 | 日志中关键信息提取方法、装置、终端及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111881094A CN111881094A (zh) | 2020-11-03 |
CN111881094B true CN111881094B (zh) | 2023-07-18 |
Family
ID=73200814
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010737229.9A Active CN111881094B (zh) | 2020-07-28 | 2020-07-28 | 日志中关键信息提取方法、装置、终端及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111881094B (zh) |
WO (1) | WO2021120782A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112381519A (zh) * | 2020-11-20 | 2021-02-19 | 北京云族佳科技有限公司 | 一种工作日志的处理方法及装置、可读存储介质 |
CN115118582B (zh) * | 2022-06-15 | 2024-04-16 | 合肥移瑞通信技术有限公司 | 日志分析的方法和装置 |
CN114818643B (zh) * | 2022-06-21 | 2022-10-04 | 北京必示科技有限公司 | 一种保留特定业务信息的日志模板提取方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105138593A (zh) * | 2015-07-31 | 2015-12-09 | 山东蚁巡网络科技有限公司 | 一种利用正则表达式自定义提取日志关键信息的方法 |
CN106055585A (zh) * | 2016-05-20 | 2016-10-26 | 北京神州绿盟信息安全科技股份有限公司 | 一种日志解析方法及装置 |
CN106407071A (zh) * | 2016-09-06 | 2017-02-15 | 珠海迈科智能科技股份有限公司 | 一种基于linux的内容服务后台日志自动分析工具 |
CN109408479A (zh) * | 2018-09-19 | 2019-03-01 | 平安科技(深圳)有限公司 | 日志数据添加方法、系统、计算机设备和存储介质 |
CN109408541A (zh) * | 2018-09-03 | 2019-03-01 | 平安科技(深圳)有限公司 | 报表分解统计方法、系统、计算机设备和存储介质 |
CN109582551A (zh) * | 2018-10-11 | 2019-04-05 | 平安科技(深圳)有限公司 | 日志数据解析方法、装置、计算机设备和存储介质 |
CN110287163A (zh) * | 2019-06-25 | 2019-09-27 | 浙江乾冠信息安全研究院有限公司 | 安全日志采集解析方法、装置、设备及介质 |
CN110427307A (zh) * | 2019-06-21 | 2019-11-08 | 平安科技(深圳)有限公司 | 日志解析方法、装置、计算机设备及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107025263A (zh) * | 2017-01-16 | 2017-08-08 | 中国银联股份有限公司 | 用于数据库语句的语句解析方法 |
US10678669B2 (en) * | 2017-04-21 | 2020-06-09 | Nec Corporation | Field content based pattern generation for heterogeneous logs |
CN110851414B (zh) * | 2019-11-06 | 2023-05-05 | 云南艾拓信息技术有限公司 | 一种以聚类法进行边界数据分析的方法及其系统 |
CN111339052A (zh) * | 2020-02-28 | 2020-06-26 | 中国银联股份有限公司 | 一种非结构化日志数据处理方法及装置 |
-
2020
- 2020-07-28 CN CN202010737229.9A patent/CN111881094B/zh active Active
- 2020-09-28 WO PCT/CN2020/118501 patent/WO2021120782A1/zh active Application Filing
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105138593A (zh) * | 2015-07-31 | 2015-12-09 | 山东蚁巡网络科技有限公司 | 一种利用正则表达式自定义提取日志关键信息的方法 |
CN106055585A (zh) * | 2016-05-20 | 2016-10-26 | 北京神州绿盟信息安全科技股份有限公司 | 一种日志解析方法及装置 |
CN106407071A (zh) * | 2016-09-06 | 2017-02-15 | 珠海迈科智能科技股份有限公司 | 一种基于linux的内容服务后台日志自动分析工具 |
CN109408541A (zh) * | 2018-09-03 | 2019-03-01 | 平安科技(深圳)有限公司 | 报表分解统计方法、系统、计算机设备和存储介质 |
CN109408479A (zh) * | 2018-09-19 | 2019-03-01 | 平安科技(深圳)有限公司 | 日志数据添加方法、系统、计算机设备和存储介质 |
CN109582551A (zh) * | 2018-10-11 | 2019-04-05 | 平安科技(深圳)有限公司 | 日志数据解析方法、装置、计算机设备和存储介质 |
CN110427307A (zh) * | 2019-06-21 | 2019-11-08 | 平安科技(深圳)有限公司 | 日志解析方法、装置、计算机设备及存储介质 |
CN110287163A (zh) * | 2019-06-25 | 2019-09-27 | 浙江乾冠信息安全研究院有限公司 | 安全日志采集解析方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111881094A (zh) | 2020-11-03 |
WO2021120782A1 (zh) | 2021-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111881094B (zh) | 日志中关键信息提取方法、装置、终端及存储介质 | |
CN108847977B (zh) | 一种业务数据的监控方法、存储介质和服务器 | |
CN110020422B (zh) | 特征词的确定方法、装置和服务器 | |
CN112162965B (zh) | 一种日志数据处理的方法、装置、计算机设备及存储介质 | |
CN110377651B (zh) | 批量数据的处理方法、装置、设备及存储介质 | |
CN110389941B (zh) | 数据库校验方法、装置、设备及存储介质 | |
CN110795069A (zh) | 代码分析方法、智能终端及计算机可读存储介质 | |
JP5731361B2 (ja) | 文字列変換方法及び文字列変換プログラム | |
CN113419721B (zh) | 基于web的表达式编辑方法、装置、设备和存储介质 | |
CN112363904B (zh) | log数据分析定位方法、装置及计算机可读存储介质 | |
CN103365934A (zh) | 复杂命名实体抽取方法及装置 | |
CN108287831B (zh) | 一种url分类方法和系统、数据处理方法和系统 | |
CN112463533A (zh) | 日志数据解析方法、装置、电子装置和存储介质 | |
CN111581057A (zh) | 一种通用日志解析方法、终端设备及存储介质 | |
CN110727565B (zh) | 一种网络设备平台信息收集方法及系统 | |
CN111159036A (zh) | 产品翻译功能准确性测试方法、系统、终端及存储介质 | |
CN116257850A (zh) | 一种病毒文件识别方法、装置、存储介质及电子设备 | |
CN113688240B (zh) | 威胁要素提取方法、装置、设备及存储介质 | |
CN115033451A (zh) | 数据生成方法、数据处理方法、装置、电子设备及介质 | |
CN110083576B (zh) | 一种缓存目录的识别方法及装置 | |
CN114090673A (zh) | 一种多数据源的数据处理方法、设备及存储介质 | |
CN113472686A (zh) | 信息识别方法、装置、设备及存储介质 | |
CN111949524A (zh) | 一种数据接口测试方法、装置、服务器和存储介质 | |
CN110851346A (zh) | 查询语句边界问题的检测方法、装置、设备及存储介质 | |
CN110806896A (zh) | 基于maven插件实现软件开发中国际化信息提取方法 |
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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20231030 Address after: Room 301-2, No. 206 Kaibin Road, Xuhui District, Shanghai, 200000 Patentee after: Ping An Technology (Shanghai) Co.,Ltd. Address before: 518000 Guangdong, Shenzhen, Futian District Futian street Fu'an community Yitian road 5033, Ping An financial center, 23 floor. Patentee before: PING AN TECHNOLOGY (SHENZHEN) Co.,Ltd. |