一种基于语法树解析的日志分析方法及装置

文档序号:1087395 发布日期:2020-10-20 浏览:7次 >En<

阅读说明:本技术 一种基于语法树解析的日志分析方法及装置 (Log analysis method and device based on syntax tree analysis ) 是由 陈飞 赵莹 王国平 赵川 于 2020-06-10 设计创作,主要内容包括:本发明涉及一种基于语法树解析的日志分析方法及装置,属于数据处理技术领域。本发明使用语法树分析器对用户输入的若干查询语句进行解析并得到若干查询类和/或分析类领域专用语言;对查询类领域专用语言进行并行检索;对各所述查询类领域专用语言并行检索后结果使用所述分析类领域专用语言进行并行分析;对并行分析后的结果进行汇聚产出运营分析仪表盘。本发明实现了通过定义的多个常见操作指令和计算函数结合语法树解析的日志分析思路对日志数据进行统计分析。(The invention relates to a log analysis method and device based on syntax tree parsing, and belongs to the technical field of data processing. The invention uses a syntax tree analyzer to analyze a plurality of query sentences input by a user and obtain a plurality of query and/or analysis field special languages; performing parallel retrieval on the special languages in the query field; performing parallel analysis on the result of parallel retrieval of the query domain specific language by using the analysis domain specific language; and collecting results after parallel analysis to output an operation analysis instrument panel. The invention realizes the statistical analysis of the log data by combining a plurality of defined common operation instructions and calculation functions with the log analysis thought of syntax tree analysis.)

一种基于语法树解析的日志分析方法及装置

技术领域

本发明涉及一种基于语法树解析的日志分析方法及装置,属于数据处理技术领域。

背景技术

在传统运维领域,日志是和指标和应用trace同样重要的数据,有助于企业进行故障排查、监控、安全审计、合规、回溯等。并且企业还会对日志数据进行分析,产出运营报表,日志存在很大的潜在分析价值。随着企业对微服务架构、云原生的运用日渐成熟,IT架构越来越复杂,日志产生速度加快、数据量巨大,无法靠人工分析如此巨量的数据,也不能靠人工直接识别日志数据中的大多数独特的内容。造成了对日志内容进行分析发现问题越来越困难。

运维领域比较常用大数据分布式架构譬如Hadoop、HBase、Hive等大数据组件对日志进行处理存储和数据分析,但使用者往往需要编写大量的复杂的大数据处理编程模型去处理数据并分析问题。在分析过程中,用户通常都会经过多次修改分析目标才能最终确认分析需求,用传统的大数据分布式架构去分析日志会大幅度提高时间成本和学习成本。

发明内容

为了克服相关技术中存在的日志分析复杂度高、学习成本高的问题,本发明提供一种基于语法树解析的日志分析方法及装置,以实现通过定义的多个常见操作指令和计算函数结合语法树解析的日志分析思路对日志数据进行统计分析。

本发明的技术方案是:第一方面,本发明提供了一种基于语法树解析的日志分析方法,所述方法包括:

使用语法树分析器对用户输入的若干查询语句进行解析并得到若干领域专用语言,用户输入的查询语句包含预设的多个常见操作指令和计算函数。

对所述的若干查询语句进行语法树解析得到若干类型的领域专用语言;

对各所述查询类领域专用语言进行并行检索;

对各所述查询类领域专用语言并行检索后结果使用所述分析类领域专用语言进行并行统计分析;

对并行分析结果进行聚合,生成运营分析仪表盘。

结合另一方面,根据对各所述查询类领域专用语言进行并行检索时,包括:

搜索框获取用户输入的若干查询语句;

通过关键字匹配、通配符匹配、关键词组匹配、字段匹配、范围匹配等方式对分布在不同机器的日志数据进行并行检索。

结合另一方面,根据对各所述检索结果使用分析类领域专用语言进行并行分析时,包括:

获取每一所述领域专用语言对应的操作指令和/或计算函数的类型;

根据所述指令和/或函数类型输出分析类的领域专用语言;

对每一所述分析类的领域专用语言进行并行统计分析。

结合另一方面,本发明另一可行的实施方式中,所述方法还包括:

搜索框获取用户输入的若干查询语句;

通过管道符对所述若干查询语句进行组合、传递和嵌套,其中,可以使用一个或以上所述管道符进行组合检索和分析。

结合另一方面,本发明另一可实行实施方案中,所述根据对各所述检索结果进行并行分析时还包括:

对每个所述管道符左侧的查询语句进行分析计算会得到第一次分析结果;

将所述第一次分析结果作为所述管道符右侧的查询语句的初始数据输入。并对所述管道符右侧的查询语句进行分析并得到第二次分析结果;

在对各所述检索结果进行并行分析时,展示包括第一次分析结果和第二次分析结果的临时结果。

第二方面,本发明还提供一种语法树解析的日志分析装置,所述装置包括:

语法树解析模块,用于对用户输入的查询语句进行解析并得到若干领域专用语言,用户输入的查询语句包含预设的多个常见操作指令和计算函数组合;

并行检索模块,用于对各所述查询类领域专用语言进行并行检索;

并行分析模块,用于对各所述分析类领域专用语言并行检索后结果使用所述分析类领域专用语言进行并行分析;

结果汇聚模块,用于对所述并行分析结果进行统一汇聚;

仪表盘生成模块,用于对所述并行分析结果进行统计计算和聚合,生成运营分析仪表盘。

上述的装置,所述语法树解析模块包括:

指令解析子模块,用于解析所述查询语言中每一所述领域专用语言对应的指令和/或函数的类型;

指令转换子模块,用于根据所述指令和/或函数的类型判断所述领域专用语言并行分析时转换成查询类或分析类领域专用语言;

语句获取模块,用于在搜索框获取用户输入的若干查询语句;

语句组合模块,用于通过管道符对所述若干查询语句进行组合、传递和嵌套,其中,可以使用一个或以上所述管道符进行组合检索和分析。

对各所述查询语句进行解析时还包括:

第一次分析模块,对每个管道符左侧的查询语句进行分析计算会得到第一次分析结果;

第二次分析模块,将第一次分析结果作为管道符右侧的查询语句的初始数据输入。并对管道符右侧的查询语句进行分析并得到第二次分析结果;

临时展示模块,在对各所述检索结果进行并行分析时,展示包括第一次分析结果和第二次分析结果的临时结果。

本发明的有益效果为:通过对日志数据分析定义并抽象出最常见的若干指令和函数组成一个集合,并结合语法树解析用户输入的查询语言形成可供检索分析的领域专用语言。使用者可以使用其中的指令和函数灵活地组合、计算和嵌套,使用者无需编程基础即可使用查询语言分析日志,解决目前使用者需要编写复杂的大数据分析程序的问题,实现灵活易用的效果。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

图1是根据一示例性实施例示出的一种基于语法树解析的日志分析方法的流程图;

图2是根据一示例性实施例示出的查询实施时的流程图;

图3是根据一示例性实施例示出的顺序查询时的流程图;

图4是根据一示例性实施例示出的一种基于动态感知的日志数据分析装置的框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

本发明涉及一种基于语法树解析的日志分析方法、装置,其主要运用于能够灵活地运用日志进行价值挖掘和运营分析的场景中,其基本思想是:对日志分析抽象出最常见的若干指令和函数组成一个集合,集合中包括从统计学、机器学习、图形可视化等学术领域总结出几十、几百及以上的指令和函数,使用者可以使用其中的指令和函数灵活地组合、计算和嵌套,使用者无需编程基础即可使用查询语言分析日志,解决目前使用者需要编写复杂的大数据分析程序的问题,实现灵活易用的效果。

本实施例可适用于带有CPU(中央处理器)的终端中以进行基于语法树解析的日志分析情况中,该方法可以由带有CPU的装置来执行,其中该装置可以由硬件来实现,一般地可集成于设备终端中,例如封装程序的存储装置,在与待分析装置的日志数据完成接入之后即可执行上述方法,如图1所示,为本发明的一种基于语法树解析的日志分析方法的流程示意图,所述方法具体包括如下步骤:

在步骤11中,使用语法树分析器对用户输入的若干查询语句进行解析并得到若干领域专用语言,所述查询语句包括预设的若干指令和/或函数的组合;

本发明实施例所有步骤的执行主体可以是CPU(中央处理器),也可以是独立的日志解析模块,其可以将用户输入的若干查询语句拆分为内置的指令和函数,通过语法树解析得到若干领域专用语言对日志进行检索和分析,帮助用户理解日志价值。

使用者输入的查询语句可以是有多个查询语句通过管道符组合而成,其中每个查询语句包含一个或多个指令及函数组合,其中管道符可以为一个或多个。指令及函数预先由日志解析模块内置支持,包括从统计学、机器学习、图形可视化等学术领域总结抽象出几十、几百及以上的指令和函数。并且根据具体的日志类型或者新的日志分析场景,还可以增加新的指令及函数类型。

在步骤12中,对各所述领域专用语言进行并行检索;

将得到的各查询类领域专用语言传输至并行检索模块进行并行检索,并行检索会对每批次的检索任务分配独立的线程进行运作并得到检索结果,因此可以提升多个查询类领域专用语言的检索效率,这种拆分独立线程的方式有利于减少每个线程间因查询带来的性能影响。

在步骤13中,对各领域专用语言并行检索后结果使用领域专用语言进行并行统计分析;

将得到的各所述并行检索结果运用基于统计学和机器学习方法论抽象出的分析指令和函数进行统计、分组、计算、串联、检测和预测,得到并行分析结果,其并行执行方式与并行检索执行方式类似,均分配了独立的线程进行运作。

在步骤14中,对并行分析结果进行聚合,生成运营分析仪表盘。

本发明的方法,通过在日志解析模块中内置用于日志分析的指令和函数,使用者可以通过统计学原理和机器学习方法论将抽象出的指令和函数通过管道符进行自由组合和分析,当使用者输入复杂的组合查询语句分析日志时,解析树分析器可将复杂的组合查询语句解析为一个个可关联的领域专用语言,并通过并行检索和并行分析进行查询和计算,大大降低使用者在分析日志时的工作量,提升工作效率,实现方便易用、快速便捷地组织问题解决方案以及灵活利用解决方案解决问题的效果。

如图2所示,为本发明具体实施例的查询语句的查询过程,一个或多个查询语句通过语法树解析模块进行识别和解析,拆分成查询类领域专用语言和分析类领域专用语言,被拆分的领域专用语言会被传入并行检索模块进行分布式并行的检索,加快检索效率。并行检索模块会对所述的查询类领域专用语言进行数据检索。第一各方面,若经解析后只有查询类领域专用语言,没有分析类领域专用语言,则并行检索结果会直接由结果汇聚模块进行统一汇聚,将结果进行整理组合,而后结束查询,收集结果并返回给使用者;另一方面,若经解析后同时包含查询类领域专用语言和分析类领域专用语言,并行检索结果会传入并行分析模块,所述并行分析模块会利用分析类领域专用语言进行并行分析得到并行分析结果,再由结果汇聚模块进行统一汇聚,将结果进行整理组合,而后结束查询,收集结果并返回给使用者。

如图3所示,为本发明具体实施例的顺序查询时的流程图,在根据所述领域专用语言对各所述查询语言进行并行检索和分析时还包括对组合的查询语句进行顺序查询的步骤,这一过程可包括如下步骤:

在步骤31中,对每个管道符左侧的查询语句进行分析计算会得到第一次分析结果;

在步骤32中,将第一次分析结果作为管道符右侧的查询语句的初始数据输入。并对管道符右侧的查询语句进行分析并得到第二次分析结果;

在步骤33中,在对各所述检索结果进行并行分析时,展示包括第一次分析结果和第二次分析结果的临时结果。

本发明的示例性实施例中,管道符表现形式为 "|" ,用于连接不同的查询语句,其表现形式和作用相当于bash中的管道符命令,可以将 "|" 左侧的结果用于 "|" 右侧的检索统计组合当中。在检索的过程中,使用者还可以按照管道符分阶段地将查询语句的运行结果进行展示。

本发明的顺序查询方法,通过以管道符为两个查询语句的顺序查询连接命令,使整个复杂查询过程更加有序,并且还能够更方便地将查询语句的运行过程展示给使用者查看,以便于使用者了解查询语句运行过程,更有利于使用者在此过程中的对日志进行分析。

图4为本发明实施例提供的一种基于语法树解析的日志分析装置的结构示意图,该装置由软件实现,一般地集成于终端中。如图所示,以上述实施例为基础,提供了一种基于语法树解析的日志分析装置,其主要包括了语法解析模块41、并行检索模块42、并行分析模块43、结果汇聚模块44以及仪表盘生成模块44。

其中的语法解析模块41,用于对用户输入的查询语句进行解析并得到若干查询类和/或分析类领域专用语言,所述查询语句包括预设的若干指令和/或函数的组合;

其中的并行检索模块42,用于对各所述查询类领域专用语言进行并行检索;

其中的并行分析模块43,用于根据所述对各所述分析类领域专用语言进行并行分析;

其中的结果汇聚模块44,用于对并行分析结果进行聚合输出;

其中的仪表盘生成模块45,用于对输出的结果进行展示,生成运营分析仪表盘。

本发明示例性实施例所述语法树解析模块包括:

指令解析子模块,用于解析所述查询语言中每一所述领域专用语言对应的指令和/或函数的类型;

指令转换子模块,用于根据所述指令和/或函数的类型判断所述领域专用语言并行分析时转换成查询类或分析类领域专用语言;

语句获取模块,用于在搜索框获取用户输入的若干查询语句;

语句组合模块,用于通过管道符对所述若干查询语句进行组合、传递和嵌套,其中,可以使用一个或以上所述管道符进行组合检索和分析。

本发明示例性实施例的一种可行的实施场景中,根据所述领域专用语言对各所述查询语句进行并行分析时还包括:

第一次分析模块,对每个管道符左侧的查询语句进行分析计算会得到第一次分析结果;

第二次分析模块,将第一次分析结果作为管道符右侧的查询语句的初始数据输入。并对管道符右侧的查询语句进行分析并得到第二次分析结果;

临时展示模块,在对各所述检索结果进行并行分析时,展示包括第一次分析结果和第二次分析结果的临时结果。

上面结合附图对本发明的具体实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。

10页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:根据公式自动计算观察项的装置及方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!