CN110704290B - 日志分析方法及装置 - Google Patents

日志分析方法及装置 Download PDF

Info

Publication number
CN110704290B
CN110704290B CN201910926695.9A CN201910926695A CN110704290B CN 110704290 B CN110704290 B CN 110704290B CN 201910926695 A CN201910926695 A CN 201910926695A CN 110704290 B CN110704290 B CN 110704290B
Authority
CN
China
Prior art keywords
processing task
statement
flow chart
data
task flow
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
CN201910926695.9A
Other languages
English (en)
Other versions
CN110704290A (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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201910926695.9A priority Critical patent/CN110704290B/zh
Publication of CN110704290A publication Critical patent/CN110704290A/zh
Application granted granted Critical
Publication of CN110704290B publication Critical patent/CN110704290B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请公开了日志分析方法及装置,涉及计算机领域,尤其涉及大数据分析领域。具体实现方案为:获取预设的规则文件;根据所述规则文件,生成日志数据的处理任务;所述处理任务包括接口调用指令序列;根据所述接口调用指令序列,调用相应的函数的接口,采用所述函数计算所述日志数据。本申请能够对大数据级的日志进行日志分析,并且能够减少操作人员的工作量。

Description

日志分析方法及装置
技术领域
本申请涉及计算机领域,尤其涉及数据处理领域。
背景技术
近年来,随着互联网技术的飞速发展,给人们的生活带来了极大的便利。与此同时网络安全威胁问题也日益严峻。垃圾邮件、挖矿病毒、勒索病毒、DDOS(DistributedDenial-of-Service,分布式拒绝服务)攻击乃至APT(Advanced Persistent Threat,高级持续性威胁)攻击,给网络安全建设提出了很高的挑战。目前无论是入侵检测、攻击溯源还是安全运营等都依赖于对海量日志的分析。这些日志包括访问日志、***日志、审计日志等。这些日志通常数据量较大,在一个几千机器的机房内,日志量能达到每天数TB(Terabyte,太字节)。传统日志分析***难以处理如此规模的日志。这就得诉诸于大数据处理***。但是大数据处理***的学习成本较高,要写出稳定可靠的高性能处理程序,需要相当的实战经验和编程功底,对于安全工程师来说无疑是十分困难的。
发明内容
为了解决现有技术中至少一个问题,本申请提供一种日志分析方法及装置。
第一方面,本申请提供一种日志分析方法,包括:
获取预设的规则文件;
根据规则文件,生成日志数据的处理任务;处理任务包括接口调用指令序列;
根据接口调用指令序列,调用相应的函数的应用程序接口,采用函数计算日志数据。
在本申请实施例中,可以根据获取的规则文件,自动生成日志数据处理任务,然后调用相应的函数对日志数据进行计算分析,日志数据分析人员只需要预设日志处理规则,就能够对日志进行分析处理,从而降低日志分析人员的操作难度,提高日志大数据的分析效率。
在一种实施方式中,根据规则文件,生成日志数据的处理任务,包括:
根据规则文件生成配置文件;配置文件包括处理任务流程图;
将处理任务流程图映射成相应的接口调用指令序列;接口调用指令序列用于调用应用程序接口。
在本申请实施例中,根据处理规则生成任务流程图,进而生成接口调用指令序列,可以将规则文件转换为可执行的文件,执行该可执行文件,就能够对日志数据进行处理。
在一种实施方式中,处理任务流程图包括输入节点、输出节点和操作节点;将处理任务流程图映射成相应的接口调用指令序列,包括:
从输出节点出发,按照深度优先的搜索方式遍历处理任务流程图,生成接口调用指令序列;
接口调用指令序列包括至少一条接口调用指令;接口调用指令用于指示对根据输入节点的信息获取的数据,采用操作节点的信息对应的函数进行计算,然后将计算结果输出到输出节点的信息对应的地址。
通过上述操作,可以根据任务流程图生成接口调用指令序列。在一种实施方式中,根据规则文件生成配置文件,包括:
根据规则文件,生成单词序列字符串流;
对单词序列字符串流进行语法检查,确定语法结构;
根据语法结构生成语法分析树;
遍历语法分析树,解析语法分析树中的语句,确定处理任务流程图的结构、处理任务流程图的各节点相应的函数以及应用程序接口信息;
根据处理任务流程图的结构、处理任务流程图的各节点相应的函数以及应用程序接口信息,生成配置文件。
在本申请实施例中,能够将规则文件转换为配置文件,使得***能够根据配置文件生成可执行的接口调用指令序列。
在一种实施方式中,本申请实施例提供的方法还包括:
验证处理任务流程图的合理性,去除处理任务流程图中的冗余节点,并合并同类型的节点;
根据处理任务流程图,将重复使用的日志数据加入缓存。
在实际应用中,使用大数据平台,仅是完成基本逻辑代码编写是远远不够的,还需要对程序代码、平台参数和GC参数等进行细致充分的调优。这需要使用者花费大量的时间和精力,并且还需要使用者具备丰富的经验和一定的编程功底,从而导致大数据平台的使用成本较高。为解决这一问题,本申请通过验证合理性、去除冗余和合并同类型的节点的方式对处理任务流程图进行优化。验证处理任务流程图的合理性、去掉冗余节点,能够避免执行重复的操作。将重复使用的数据加入缓存,可以减少重复使用的数据的拉取时间,节省网络开销。合并同类型操作节点,尽可能减少操作节点数量,简化数据流图,以此减少生成RDD(Resilient Distributed Datasets,弹性分布式数据集)数量,当使用Spark平台获取数据处理接口时,本申请实施例合并同类型操作节点可以简化Lineage(血统)复杂度,减轻Driver(驱动)压力。
在一种实施方式中,规则文件包括过滤语句、联合语句、聚合语句和发送语句中的至少一种,其中,过滤语句用于过滤数据;联合语句用于关联数据;聚合语句用于聚合数据;发送语句用于输出数据到指定位置。
通过上述语句生成规则文件,能够被转化为指令序列,用于对日志数据进行分析。
第二方面,本申请实施例提供一种日志分析装置,包括:
规则文件获取模块:用于获取预设的规则文件;
处理任务生成模块:用于根据规则文件,生成日志数据的处理任务;处理任务包括接口调用指令序列;
日志数据计算模块:用于根据接口调用指令序列,调用相应的函数的接口,采用函数计算日志数据。
在一种实施方式中,处理任务生成模块包括:
配置文件生成单元:用于根据规则文件生成配置文件;配置文件包括处理任务流程图;
接口调用指令序列单元:用于将处理任务流程图映射成相应的接口调用指令序列;接口调用指令序列用于调用应用程序接口。
在一种实施方式中,处理任务流程图包括输入节点、输出节点和操作节点;接口调用指令序列单元还用于:
从输出节点出发,按照深度优先的搜索方式遍历处理任务流程图,生成接口调用指令序列;
接口调用指令序列包括至少一条接口调用指令;接口调用指令用于指示对根据输入节点的信息获取的数据,采用操作节点的信息对应的函数进行计算,然后将计算结果输出到输出节点的信息对应的地址。
在一种实施方式中,配置文件生成单元还用于:
根据规则文件,生成单词序列字符串流;
对单词序列字符串流进行语法检查,确定语法结构;
根据语法结构生成语法分析树;
遍历语法分析树,解析语法分析树中的语句,确定处理任务流程图的结构、处理任务流程图的各节点相应的函数以及应用程序接口信息;
根据处理任务流程图的结构、处理任务流程图的各节点相应的函数以及应用程序接口信息,生成配置文件。
在一种实施方式中,装置还包括:
验证模块:用于验证处理任务流程图的合理性,去除处理任务流程图中的冗余节点,并合并同类型的节点;
缓存模块:用于根据处理任务流程图,将重复使用的日志数据加入缓存。
在一种实施方式中,规则文件包括过滤语句、联合语句、聚合语句和发送语句中的至少一种,其中,过滤语句用于过滤数据;联合语句用于关联数据;聚合语句用于聚合数据;发送语句用于输出数据到指定位置。
第三方面,本申请实施例提供一种电子设备,包括:
至少一个处理器;以及
与至少一个处理器通信连接的存储器;其中,
存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行权利要求1-6中任一项的方法。
第四方面,本申请实施例提供一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,计算机指令用于使计算机执行权利要求1-6中任一项的方法。
上述申请中的一个实施例具有如下优点或有益效果:能够减少日志分析过程中的操作人员的工作量,能够对海量日志进行分析。因为采用将规则文件转化为接口调用指令序列的技术手段,所以克服了日志分析程序编写量大、对操作人员专业知识要求高等技术问题,进而达到减少操作人员工作量和降低对操作人员业务要求的技术效果。
上述可选方式所具有的其他效果将在下文中结合具体实施例加以说明。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是根据本申请第一实施例的日志分析方法流程示意图;
图2是根据本申请第二实施例的日志分析方法流程示意图;
图3是根据本申请第三实施例的日志分析方法装置结构示意图;
图4是根据本申请第四实施例的日志分析方法装置结构示意图;
图5是根据本申请第五实施例的日志分析装置实现构架示意图;
图6为图5中的规则引擎示意图;
图7为图5中的执行引擎示意图;
图8是用来实现本申请实施例的日志分析方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
本申请实施例提供一种日志分析***,如图1所示,包括:
步骤S11:获取预设的规则文件。
步骤S12:根据规则文件,生成日志数据的处理任务;处理任务包括接口调用指令序列。
步骤S13:根据接口调用指令序列,调用相应的应用程序接口,采用应用程序对应的函数计算日志数据。
在本申请实施例中,规则文件包括日志处理规则或日志分析规则。可以由分析人员预先设定,日志分析的规则可以利用已知函数实现,例如联合日志数据的规则可以通过联合函数计算。
在一种示例中,规则文件可以采用领域特定语言(Domain Specific Language,DSL)进行编写。语法设计上,重点描述执行流程,辅以常用基本表达式的支持,对于需要复杂逻辑的场景,通过提供用户自定义接口(User Define Function,UDF),由编写人员编写相应处理函数来解决。这样在保持DSL语法简洁性的同时,使***具备可扩展性,可以处理复杂场景下的计算问题。本示例中的DSL规则文件可以包括:数据源声明语句,例如,sources:source1,source2,...,sourceN。数据源声明语句用于定义输入数据源列表。其中列出的数据源为预定义数据源。本示例中的DSL规则文件还可以包括:输出sink(汇聚节点)声明语句,例如,sinks:sink1,sink2,...,sinkN。输出sink声明语句用于定义输出sink列表。其中列出的数据源为预定义Sink,可支持一些已有平台,例如Kafka(卡夫卡)、MySQL等。本示例中的DSL规则文件还可以包括:rules(规则)规则集,可支持多条规则,每条规则根据rule name(规则名)区分。每条规则的格式可以包括:规则编号、条件语句、动作语句。
规则文件可以包括对日志数据进行分析的至少一项规则。在一项规则中,条件语句和动作语句分别可以设置多条,它们之间是顺序执行的关系,首先执行条件语句,然后执行动作语句。条件语句由若干过滤(filter)语句和关联(join)语句构成。其中,filter语句用于过滤数据流,一条filter语句是一个逻辑表达式,它由算术表达式、字符串表达式、比较表达式及逻辑表达式等各种子表达式组合而成。join语句用于关联不同数据流。join语句的执行结果为两个数据流的笛卡尔积,join语句的执行类型默认为full join。join以两个数据流的特定字段为key(键)进行关联操作,生成新数据流。join语句中可以使用within关键字后跟一个以秒为单位的时间,作为join的时间窗口大小,join语句中还可以使用as关键字后跟一个新数据流名字,表示对新的数据流执行as关键字之后的操作。
动作语句用于对数据流施加操作,由若干聚合(aggregate)语句和发送(send)语句构成。aggregate(聚合)语句,用于数据流聚合操作,aggregate语句以日志数据的数据流的某些字段为key,对数据流进行聚合。对于没在任意key中出现的字段,操作人员需指定聚合函数,以便生产最终的聚合后数据。若未指定聚合函数,则使用默认聚合函数在所有相关数据的该字段中随机选一个,作为最终聚合后数据该字段的值。聚合语句中可使用within关键字后跟一个以秒为单位的时间,作为aggregate的时间窗口大小,聚合语句中还可使用as关键字后跟一个新数据流名字。目前支持min(最小值)、max(最大值)、sum(和)、concat(数组连接)等聚合函数。send语句用于将数据流输出到指定sink。可以通过with关键字指定待发送数据流的字段,如未指定默认将发送所有字段。发送具体目标可以通过“目标sink名.次级目标名”的方式来指定,例如语句KafkaSink.test_alert中,KafkaSink指定将数据流输出到Kafka,topic(主题)为test_alert。
操作人员可以注册并上传UDF(User Define Function,用户自定义函数),作为规则文件中的语法单元,其名字为驼峰命名,在规则文件里以下划线分割小写字母命名来引用相应函数。在规则文件中所有可以出现字段引用的地方都可以用UDF函数来替换。UDF函数以一条数据作为输入,输出一条处理后数据,UDF函数可以接受若干字符串类型的参数。执行引擎在运行时会根据名字动态加载相应的UDF。
在本申请实施例中,根据规则文件,生成日志数据的处理任务,包括根据规则文件生成日志分析操作的可执行文件。接口调用指令序列可以包括至少一个接口调用指令,还可以是两个或两个以上的接口调用指令组成的序列,接口调用指令序列可用于指示日志分析处理***按照顺序执行序列中的接口调用指令,调用相应的接口,利用接口对应的函数对日志数据进行分析处理。
在本申请实施例中,应用程序接口可以为Spark API(Application ProgrammingInterface,应用程序接口)接口。该接口可以包括预先定义的函数。
在本申请实施例中,可以根据获取的规则文件,自动生成日志数据处理任务,然后调用相应的函数对日志数据进行计算分析,日志数据分析人员只需要预设日志处理规则,就能够对日志进行分析处理,从而降低日志分析人员的操作难度,提高日志大数据的分析效率。
在一种实施方式中,根据处理规则,生成日志数据的处理任务,包括:
根据规则文件生成配置文件;配置文件包括处理任务流程图;
将处理任务流程图映射成相应的接口调用指令序列;接口调用指令序列用于调用应用程序接口。
在本申请实施例中,配置文件还可以包括执行日志数据的处理任务所需要的信息,例如,处理日志数据的函数所采用的参数等。处理任务流程图可以为数据流图。执行配置文件可以包含构建大数据流处理任务所需要的全部信息,它包含作业信息和描述流处理任务流程的有向无环图(Directed Acyclic Graph,DAG),该有向无环图为数据流图(Dataflow Graph)。数据流图包括顶点和边。数据流图的边表示数据流,记录了各个顶点对数据流的作用顺序,以及数据流间的关系。数据流图的顶点分为输入节点(Source,也可以称为源节点)、输出节点(Sink)和操作节点(Operator)。例如,在输入节点A位于边B的一端,边B从输入节点A指向操作节点C,边D从操作节点C指向输出节点E。那么从输入节点A到输出节点E之间的数据流图表示对输入节点A所对应的数据执行操作节点C对应的操作,最后输出到输出节点E对应的地址。
在本申请实施例中,根据处理规则生成任务流程图,进而生成接口调用指令序列,可以将规则文件转换为可执行的文件,执行该可执行文件,就能够对日志数据进行处理。
在一种实施方式中,处理任务流程图包括输入节点、输出节点和操作节点;将处理任务流程图映射成相应的接口调用指令序列,包括:
从输出节点出发,按照深度优先的搜索方式遍历处理任务流程图,生成接口调用指令序列;
接口调用指令序列包括至少一条接口调用指令;接口调用指令用于指示对根据输入节点的信息获取的数据,采用操作节点的信息对应的函数进行计算,然后将计算结果输出到输出节点的信息对应的地址。
在本申请实施例中,输入节点可以是源节点,用于获取日志数据及进行数据格式的转换。输出节点,可以实现Kafka、MySQL等输出方式,还可以指示输出地址。操作节点,记录应用到日志数据的数据流上的操作的信息,包括操作类型,参数,子函数等。例如Map(映射)操作需要指定Transformer(转换)类型子函数,Filter(过滤)操作需要指定Predictor(预测)类型子函数,Window(窗口)操作需要指定WindowSize(窗口大小)及Slide(滑动距离)等参数。
在本申请实施例中,根据规则文件生成配置文件,包括:
根据规则文件,生成单词序列字符串流;
对单词序列字符串流进行语法检查,确定语法结构;
根据语法结构生成语法分析树(Parse Trees);
遍历语法分析树,解析语法分析树中的语句,确定处理任务流程图的结构、处理任务流程图的各节点相应的函数以及应用程序接口信息;
根据处理任务流程图的结构、处理任务流程图的各节点相应的函数以及应用程序接口信息,生成配置文件。
在本申请实施例中,能够将规则文件转换为配置文件,使得***能够根据配置文件生成可执行的接口调用指令序列。
在一种实施方式中,如图2所示,该方法还包括:
步骤S21:验证处理任务流程图的合理性,去除处理任务流程图中的冗余节点,并合并同类型的节点;
步骤S22:根据处理任务流程图,将重复使用的日志数据加入缓存(cache)。
在本申请实施例中,冗余节点可以包括无需执行的多余节点,例如,根据任务流程图的边,一个任务中如果存在仅包含输入节点、操作节点,而没有输出节点的数据流,那么这个数据流对应的输入节点、操作节点可以视为冗余节点,可将这些节点删除。
同类型的节点可以通过合并处理函数的方式进行合并,在处理结果不变的前提下减少节点数量。例如一条输入日志经过两个连续Filter节点,并分别调用处理函数进行过滤后的结果,等价于在一个合并的Filter节点内,调用上述两个处理函数进行过滤的结果。
在实际应用中,使用大数据平台,仅是完成基本逻辑代码编写是远远不够的,还需要对程序代码、平台参数和GC参数等进行细致充分的调优。这需要使用者花费大量的时间和精力,并且还需要使用者具备丰富的经验和一定的编程功底,从而导致大数据平台的使用成本较高。为解决这一问题,本申请通过验证合理性、去除冗余和合并同类型的节点的方式对处理任务流程图进行优化。验证处理任务流程图的合理性、去掉冗余节点,能够避免执行重复的操作。将重复使用的数据加入缓存,可以减少重复使用的数据的拉取时间,节省网络开销。合并同类型操作节点,尽可能减少操作节点数量,简化数据流图,以此减少生成RDD(Resilient Distributed Datasets,弹性分布式数据集)数量,当使用Spark平台获取数据处理接口时,本申请实施例合并同类型操作节点可以简化Lineage(血统)复杂度,减轻Driver(驱动)压力。
本申请实施例还可以针对cache进行管理,通过调整操作执行顺序,尽快释放cache,减少Executor(执行器)内存压力。
在一种实施方式中,规则文件包括过滤语句、联合语句、聚合语句和发送语句中的至少一种,其中,过滤语句用于过滤数据;联合语句用于关联数据;聚合语句用于聚合数据;发送语句用于输出数据到指定位置。
本申请实施例还提供一种日志分析装置,如图3,包括:
规则文件获取模块31:用于获取预设的规则文件;
处理任务生成模块32:用于根据规则文件,生成日志数据的处理任务;处理任务包括接口调用指令序列;
日志数据计算模块33:用于根据接口调用指令序列,调用相应的函数的接口,采用函数计算日志数据。
在一种实施方式中,处理任务生成模块包括:
配置文件生成单元:用于根据规则文件生成配置文件;配置文件包括处理任务流程图;
接口调用指令序列单元:用于将处理任务流程图映射成相应的接口调用指令序列;接口调用指令序列用于调用应用程序接口。
在一种实施方式中,处理任务流程图包括输入节点、输出节点和操作节点;接口调用指令序列单元还用于:
从输出节点出发,按照深度优先的搜索方式遍历处理任务流程图,生成接口调用指令序列;
接口调用指令序列包括至少一条接口调用指令;接口调用指令用于指示对根据输入节点的信息获取的数据,采用操作节点的信息对应的函数进行计算,然后将计算结果输出到输出节点的信息对应的地址。
在一种实施方式中,配置文件生成单元还用于:
根据规则文件,生成单词序列字符串流;
对单词序列字符串流进行语法检查,确定语法结构;
根据语法结构生成语法分析树;
遍历语法分析树,解析语法分析树中的语句,确定处理任务流程图的结构、处理任务流程图的各节点相应的函数以及应用程序接口信息;
根据处理任务流程图的结构、处理任务流程图的各节点相应的函数以及应用程序接口信息,生成配置文件。
在一种实施方式中,如图4所示,该装置还包括:
验证模块41:用于验证处理任务流程图的合理性,去除处理任务流程图中的冗余节点,并合并同类型的节点;
缓存模块42:用于根据处理任务流程图,将重复使用的日志数据加入缓存。
在一种实施方式中,规则文件包括过滤语句、联合语句、聚合语句和发送语句中的至少一种,其中,过滤语句用于过滤数据;联合语句用于关联数据;聚合语句用于聚合数据;发送语句用于输出数据到指定位置。
在本申请一种示例中,日志分析装置所应用的***构架如图5所示,操作人员提交规则文件,将规则文件提交到作业管理模块51,作业管理模块51可以是一个存储单元,能够存储规则文件。本示例中,可以采用已知的Spark引擎54实现图3中的日志数据计算模块的功能,还可以使用其它具有数据流计算功能的已知产品。Spark即Apache Spark,是专为大规模数据处理而设计的快速通用的计算引擎。作业管理模块51将规则文件提交给规则引擎52,作业管理模块提交作业时,会根据数据源数据量的评估值和规则复杂度,自动化调整Spark参数,同时对内存GC(Garbage Collection,垃圾回收)参数进行调优。规则引擎52完成规则校验、规则解析、生成包含构建Spark Streaming(Spark流处理)任务所需要的全部信息的配置文件,并返回给作业管理模块51,支持包括Cache(缓存)、GroupByKey(按键分组)、Union(合并)、Join(联合)、Map(映射)、Filter(过滤)及Window(窗口)等常用流处理操作。作业管理模块51将配置文件提交给执行引擎53,执行引擎53根据文件包含信息,构建Spark Streaming任务,并由作业管理模块51提交到yarn集群运行。本示例中的yarn集群即Apache Hadoop(阿帕奇海杜普)YARN(Yet Another Resource Negotiator,另一种资源协调者)是一种新的Hadoop资源管理器,它是一个通用资源管理***,可为上层应用提供统一的资源管理和调度,是本示例中的Spark引擎的运行硬件基础。从各个渠道采集的日志经过初步处理以JSON(JavaScript Object Notation,JS对象简谱)格式或者Proto Buffer(Protocol Buffer,协议缓冲)格式发送到Kafka消息队列,并保证同一个Topic数据格式一致。本示例中的是Proto Buffer是一种独立的数据交换格式,可运用于多种领域。每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic(主题)。物理上不同Topic的消息分开存储,逻辑上一个Topic的消息虽然保存于一个或多个broker(缓存代理)上但用户只需指定消息的Topic即可生产或消费数据而不必关心数据存于何处。基于Spark Streaming日志数据的处理任务会基于规则,对指定Topic日志数据进行实时处理,并输出异常告警。在本示例中,规则引擎52和执行引擎53可以实现图3所示的处理任务生成模块32的功能。日志数据被转换为Kafka(卡夫卡)数据流,在Spark引擎54上利用规则文件解析后的接口调用指令序列进行分析,根据解析结果,对日志数据中的异常数据发出告警。
规则引擎(Rule Engine)的结构如图6所示,主要包括词法解析器(Lexer)61、语法解析器(Parser)62、规则解析模块63三个模块,及数据流图构造模块64、表达式解析模块65和语句解析模块66三个子模块。
其中词法解析器61和语法解析器62可以通过编写Antlr Grammar(Another Toolfor Language Recognition Grammar,另一种语言辨认工具语法)文件利用Antlr生成。Antlr是基于LL(*)算法实现的语法解析器生成器(parser generator)。规则文件经过词法解析器61和语法解析器62的解析,转换为语法树。规则解析模块63负责遍历语法树,通过Listener(收听者)回调接口,调用数据流图构造模块64、表达式解析模块65和语句解析模块66中的至少一个,构建配置文件。各个子模块功能如下:数据流图构造模块64为上层模块提供API接口,用于构造配置文件中的执行任务流程图;表达式解析模65块负责解析语法树中的算术表达式、字符串表达式、比较表达式及逻辑表达式等,生成相应的lambda表达式(Lambda Expression),作为执行任务流程图的操作节点的子函数;语句解析模块66根据DSL约定语义解析语法树中的语句,构建完整的操作节点,解析过程中可能需要用到表达式解析模块65。
本申请示例中的执行引擎的结构如图7所示。执行引擎提供一组读取和处理执行配置文件的接口,具体的,执行引擎需要实现一系列与底层流处理框架强绑定的操作配适器73(Operator Adapter),以此来将执行配置中的数据流图的操作节点映射成底层流处理***的API接口调用指令序列,从而在任务构造模块72中,将数据流图表示的数据流及其上操作关系,映射成相应的API调用指令序列。任务构造模块72相当于本申请示例中的配置文件生成单元;操作适配器73相当于本申请实施例中的接口调用指令序列单元。执行引擎还包括数据流图优化模块71,用于执行图4中的验证模块41和缓存模块42的功能。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图8所示,是根据本申请实施例的日志分析方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图8所示,该电子设备包括:一个或多个处理器801、存储器802,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示图形用户界面(Graphical User Interface,GUI)的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器***)。图8中以一个处理器801为例。
存储器802即为本申请所提供的非瞬时计算机可读存储介质。其中,存储器存储有可由至少一个处理器执行的指令,以使至少一个处理器执行本申请所提供的日志分析方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的日志分析方法。
存储器802作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的日志分析方法对应的程序指令/模块(例如,附图3所示规则文件获取模块31、处理任务生成模块32、日志数据计算模块33)。处理器801通过运行存储在存储器802中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的日志分析方法。
存储器802可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储根据日志分析电子设备的使用所创建的数据等。此外,存储器802可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器802可选包括相对于处理器801远程设置的存储器,这些远程存储器可以通过网络连接至日志分析电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
日志分析方法的电子设备还可以包括:输入装置803和输出装置804。处理器801、存储器802、输入装置803和输出装置804可以通过总线或者其他方式连接,图8中以通过总线连接为例。
输入装置803可接收输入的数字或字符信息,以及产生与日志分析电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置804可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(Liquid Crystal Display,LCD)、发光二极管(Light Emitting Diode,LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、专用集成电路(Application Specific Integrated Circuits,ASIC)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(programmable logic device,PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(Cathode Ray Tube,阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(Local Area Network,LAN)、广域网(Wide Area Network,WAN)和互联网。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
根据本申请实施例的技术方案,能有效解决大数据的实时异常检测问题,借助本申请提供的日志分析方法和装置,安全工程师可以通过简单的规则编写,实现稳定高效的大数据程序,对海量日志数据进行分析。本申请在构建和提交作业的同时对作业进行了深度优化,这样用户提交的规则生成的Spark任务,无论在性能还是稳定性上都有了保证,足以满足实际生产需求。本申请通过执行配置文件的引入,将规则引擎和执行引擎彻底解耦,并且主流大数据流处理程序提供的操作API类型及语义,具有一定的相似性,方案实施者可以根据实际需求,编写符合接口约定的目标平台的执行引擎,从而在其他大数据平台上实现本***。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

Claims (6)

1.一种日志分析方法,其特征在于,包括:
获取日志分析人员预设的规则文件;所述规则文件包括过滤语句、联合语句、聚合语句和发送语句,其中,所述过滤语句用于过滤数据;所述联合语句用于关联数据;所述聚合语句用于聚合数据;所述发送语句用于输出数据到指定位置;
根据所述规则文件,生成日志数据的处理任务;所述处理任务包括接口调用指令序列;
根据所述接口调用指令序列,调用相应的函数的应用程序接口,采用所述函数计算所述日志数据;
所述根据所述规则文件,生成日志数据的处理任务,包括:
根据所述过滤语句、联合语句、聚合语句和发送语句生成配置文件;所述配置文件包括处理任务流程图;
将所述处理任务流程图映射成相应的接口调用指令序列;所述接口调用指令序列用于调用所述应用程序接口;
根据所述过滤语句、联合语句、聚合语句和发送语句生成配置文件,包括:
根据所述过滤语句、联合语句、聚合语句和发送语句,生成单词序列字符串流;
对所述单词序列字符串流进行语法检查,确定语法结构;
根据所述语法结构生成语法分析树;
遍历所述语法分析树,解析所述语法分析树中的语句,确定所述处理任务流程图的结构、所述处理任务流程图的各节点相应的函数以及所述应用程序接口信息;
根据所述处理任务流程图的结构、所述处理任务流程图的各节点相应的函数以及所述应用程序接口信息,生成所述配置文件;
所述方法还包括:
验证所述处理任务流程图的合理性,去除所述处理任务流程图中的冗余节点,并合并同类型的节点;
根据所述处理任务流程图,将重复使用的日志数据加入缓存。
2.根据权利要求1所述的方法,其特征在于,所述处理任务流程图包括输入节点、输出节点和操作节点;将所述处理任务流程图映射成相应的接口调用指令序列,包括:
从所述输出节点出发,按照深度优先的搜索方式遍历所述处理任务流程图,生成所述接口调用指令序列;
所述接口调用指令序列包括至少一条接口调用指令;所述接口调用指令用于指示对根据所述输入节点的信息获取的数据,采用所述操作节点的信息对应的函数进行计算,然后将计算结果输出到所述输出节点的信息对应的地址。
3.一种日志分析装置,其特征在于,包括:
规则文件获取模块:用于获取日志分析人员预设的规则文件;所述规则文件包括过滤语句、联合语句、聚合语句和发送语句,其中,所述过滤语句用于过滤数据;所述联合语句用于关联数据;所述聚合语句用于聚合数据;所述发送语句用于输出数据到指定位置;
处理任务生成模块:用于根据所述规则文件,生成日志数据的处理任务;所述处理任务包括接口调用指令序列;
日志数据计算模块:用于根据所述接口调用指令序列,调用相应的函数的应用程序接口,采用所述函数计算所述日志数据;
所述处理任务生成模块包括:
配置文件生成单元:用于根据所述过滤语句、联合语句、聚合语句和发送语句生成配置文件;所述配置文件包括处理任务流程图;
接口调用指令序列单元:用于将所述处理任务流程图映射成相应的接口调用指令序列;所述接口调用指令序列用于调用所述应用程序接口;
所述配置文件生成单元还用于:
根据所述过滤语句、联合语句、聚合语句和发送语句,生成单词序列字符串流;
对所述单词序列字符串流进行语法检查,确定语法结构;
根据所述语法结构生成语法分析树;
遍历所述语法分析树,解析所述语法分析树中的语句,确定所述处理任务流程图的结构、所述处理任务流程图的各节点相应的函数以及所述应用程序接口信息;
根据所述处理任务流程图的结构、所述处理任务流程图的各节点相应的函数以及所述应用程序接口信息,生成所述配置文件;
所述装置还包括:
验证模块:用于验证所述处理任务流程图的合理性,去除所述处理任务流程图中的冗余节点,并合并同类型的节点;
缓存模块:用于根据所述处理任务流程图,将重复使用的日志数据加入缓存。
4.根据权利要求3所述的装置,其特征在于,所述处理任务流程图包括输入节点、输出节点和操作节点;所述接口调用指令序列单元还用于:
从所述输出节点出发,按照深度优先的搜索方式遍历所述处理任务流程图,生成所述接口调用指令序列;
所述接口调用指令序列包括至少一条接口调用指令;所述接口调用指令用于指示对根据所述输入节点的信息获取的数据,采用所述操作节点的信息对应的函数进行计算,然后将计算结果输出到所述输出节点的信息对应的地址。
5.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-2中任一项所述的方法。
6.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-2中任一项所述的方法。
CN201910926695.9A 2019-09-27 2019-09-27 日志分析方法及装置 Active CN110704290B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910926695.9A CN110704290B (zh) 2019-09-27 2019-09-27 日志分析方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910926695.9A CN110704290B (zh) 2019-09-27 2019-09-27 日志分析方法及装置

Publications (2)

Publication Number Publication Date
CN110704290A CN110704290A (zh) 2020-01-17
CN110704290B true CN110704290B (zh) 2024-02-13

Family

ID=69196877

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910926695.9A Active CN110704290B (zh) 2019-09-27 2019-09-27 日志分析方法及装置

Country Status (1)

Country Link
CN (1) CN110704290B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113360554B (zh) * 2020-03-06 2023-06-23 深圳法大大网络科技有限公司 一种数据抽取、转换和加载etl的方法和设备
CN111552648A (zh) * 2020-05-08 2020-08-18 支付宝(杭州)信息技术有限公司 用于应用的自动验证方法和***
CN113806429A (zh) * 2020-06-11 2021-12-17 深信服科技股份有限公司 基于大数据流处理框架的画布式日志分析方法
CN112099882B (zh) * 2020-09-11 2023-08-25 杭州海康威视数字技术股份有限公司 一种业务处理方法、装置及设备
CN112860482B (zh) * 2021-01-27 2021-11-12 西南林业大学 区块链共识性能优化方法
CN112947963A (zh) * 2021-02-26 2021-06-11 平安普惠企业管理有限公司 接口运维方法、装置、计算机设备和存储介质
CN113238912B (zh) * 2021-05-08 2022-12-06 国家计算机网络与信息安全管理中心 一种网络安全日志数据的聚合处理方法
CN113792019B (zh) * 2021-08-03 2023-08-18 RealMe重庆移动通信有限公司 一种分析方法、电子设备及计算机存储介质
CN115185525B (zh) * 2022-05-17 2023-07-18 贝壳找房(北京)科技有限公司 数据倾斜代码块定位方法、装置、设备及介质
CN115022055B (zh) * 2022-06-09 2024-04-19 武汉思普崚技术有限公司 一种基于动态时间窗口的网络攻击实时检测方法及装置

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105335412A (zh) * 2014-07-31 2016-02-17 阿里巴巴集团控股有限公司 用于数据转换、数据迁移的方法和装置
CN106104518A (zh) * 2014-03-08 2016-11-09 微软技术许可有限责任公司 用于按照示例的数据提取的框架
CN106168909A (zh) * 2016-06-30 2016-11-30 北京奇虎科技有限公司 一种日志的处理方法和装置
CN106201848A (zh) * 2016-06-30 2016-12-07 北京奇虎科技有限公司 一种实时计算平台的日志处理方法和装置
CN107608742A (zh) * 2017-10-12 2018-01-19 南京中新赛克科技有限责任公司 一种自助式分析挖掘工具中算子任务调度方法
CN108108288A (zh) * 2018-01-09 2018-06-01 北京奇艺世纪科技有限公司 一种日志数据解析方法、装置及设备
CN109324996A (zh) * 2018-10-12 2019-02-12 平安科技(深圳)有限公司 日志文件处理方法、装置、计算机设备及存储介质
CN109726185A (zh) * 2018-12-28 2019-05-07 杭州安恒信息技术股份有限公司 一种基于语法树的日志解析方法、***和计算机可读介质
CN110149801A (zh) * 2015-05-05 2019-08-20 华为技术有限公司 用于在处理***中进行数据流图转换的***和方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106104518A (zh) * 2014-03-08 2016-11-09 微软技术许可有限责任公司 用于按照示例的数据提取的框架
CN105335412A (zh) * 2014-07-31 2016-02-17 阿里巴巴集团控股有限公司 用于数据转换、数据迁移的方法和装置
CN110149801A (zh) * 2015-05-05 2019-08-20 华为技术有限公司 用于在处理***中进行数据流图转换的***和方法
CN106168909A (zh) * 2016-06-30 2016-11-30 北京奇虎科技有限公司 一种日志的处理方法和装置
CN106201848A (zh) * 2016-06-30 2016-12-07 北京奇虎科技有限公司 一种实时计算平台的日志处理方法和装置
CN107608742A (zh) * 2017-10-12 2018-01-19 南京中新赛克科技有限责任公司 一种自助式分析挖掘工具中算子任务调度方法
CN108108288A (zh) * 2018-01-09 2018-06-01 北京奇艺世纪科技有限公司 一种日志数据解析方法、装置及设备
CN109324996A (zh) * 2018-10-12 2019-02-12 平安科技(深圳)有限公司 日志文件处理方法、装置、计算机设备及存储介质
CN109726185A (zh) * 2018-12-28 2019-05-07 杭州安恒信息技术股份有限公司 一种基于语法树的日志解析方法、***和计算机可读介质

Also Published As

Publication number Publication date
CN110704290A (zh) 2020-01-17

Similar Documents

Publication Publication Date Title
CN110704290B (zh) 日志分析方法及装置
US11755630B2 (en) Regular expression generation using longest common subsequence algorithm on combinations of regular expression codes
JP7146007B2 (ja) ターゲットデータの取得方法、ターゲットデータの取得装置、電子機器、非一時的なコンピュータ可読記憶媒体およびコンピュータプログラム
US8572575B2 (en) Debugging a map reduce application on a cluster
US10572494B2 (en) Bootstrapping the data lake and glossaries with ‘dataset joins’ metadata from existing application patterns
US10606851B1 (en) Intelligent compute request scoring and routing
US20210385251A1 (en) System and methods for integrating datasets and automating transformation workflows using a distributed computational graph
US10360004B2 (en) Using dynamic information to refine control flow graphs
US11546380B2 (en) System and method for creation and implementation of data processing workflows using a distributed computational graph
US9753978B2 (en) Dynamic combination of processes for sub-queries
US11573790B2 (en) Generation of knowledge graphs based on repositories of code
CN113419789A (zh) 数据模型脚本的生成方法和装置
US10318532B2 (en) Discovery of application information for structured data
CN115904369A (zh) 一种网络安全源数据高效聚合及关联分析的方法与***
US20210224325A1 (en) Method and apparatus for converting undirected relationship to directed relationship, device and storage medium
Becker et al. Streamlined and accelerated cyber analyst workflows with clx and rapids
US20230010906A1 (en) System event analysis and data management
CN116302414A (zh) 任务的调度方法、装置、电子设备和存储介质
CN116955056A (zh) 数据关系的处理方法和装置
WO2023230047A1 (en) Enriching search results with provenance information in an observability pipeline system
CN115687141A (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