CN116881100A - 日志检测方法、日志告警方法、系统、设备及存储介质 - Google Patents
日志检测方法、日志告警方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN116881100A CN116881100A CN202310765237.8A CN202310765237A CN116881100A CN 116881100 A CN116881100 A CN 116881100A CN 202310765237 A CN202310765237 A CN 202310765237A CN 116881100 A CN116881100 A CN 116881100A
- Authority
- CN
- China
- Prior art keywords
- log
- alarm
- template
- time window
- alarm information
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000001514 detection method Methods 0.000 title claims abstract description 33
- 238000003860 storage Methods 0.000 title claims abstract description 18
- 238000012545 processing Methods 0.000 claims abstract description 99
- 239000000523 sample Substances 0.000 claims description 21
- 239000013598 vector Substances 0.000 claims description 16
- 239000003550 marker Substances 0.000 claims description 10
- 230000005540 biological transmission Effects 0.000 claims description 8
- 230000011218 segmentation Effects 0.000 claims description 7
- 238000001914 filtration Methods 0.000 claims description 4
- 238000004519 manufacturing process Methods 0.000 description 13
- 238000004458 analytical method Methods 0.000 description 10
- 230000005856 abnormality Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000012544 monitoring process Methods 0.000 description 6
- 230000006399 behavior Effects 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000013515 script Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000013480 data collection Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000002372 labelling Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/079—Root cause analysis, i.e. error or fault diagnosis
-
- 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/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- 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)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种日志检测方法、日志告警方法、系统、设备及存储介质,属于数据处理技术领域。所述方法包括:获取日志数据,并开启第一时间窗口;确定第一时间窗口内的标记值集,标记值集中标记值是由配置的日志模板的出现次数确定的,出现次数是在第一时间窗口内,配置的日志模板与获取的日志数据之间匹配成功状态的出现次数;从出现匹配成功状态的日志模板中,确定告警日志模板,并以告警日志模板生成告警信息;发送告警信息至告警中心,以使得告警中心基于第二时间窗口内的告警信息确定调用链路的根因告警信息。本发明可用于保障用户服务的持续可用性。
Description
技术领域
本发明涉及数据处理技术领域,具体地涉及一种日志检测方法、一种日志告警方法、一种日志处理系统、一种电子设备和一种机器可读存储介质。
背景技术
程序服务和程序服务之间的中间件等应用程序,可以部署于移动电子设备、微服务架构平台、云服务平台、服务器集群等,可以用于向用户提供通信服务、商品服务、交易服务和传感器采集和数据处理服务等用户服务,并产生日志数据,通过分析日志数据,发现和处理安全威胁、程序漏洞和服务中断等程序问题,能够为程序服务提供可用性、可靠性和数据安全性的保障基础,这对提供持续可用的用户服务也尤为重要。
随着用户交易、传感器活动和机器行为的爆炸式增长,对呈规模的日志数据进行日志分析,在受限的时间和成本内找到程序问题是非常困难的。同时,应用程序常常不是单独存在的,是与调用链路中的应用程序共同提供用户服务,在出现程序问题时,调用链路中的应用程序仍都会产生日志数据、或都发出异常告警信息,这将导致很难找到产生程序问题根本源头的应用程序或告警信息,进而难以及时解决程序问题,难以提供持续可用的用户服务。
发明内容
本发明的目的是提供一种日志检测方法、日志告警方法、系统、设备及存储介质,避免对用户服务中单独应用程序的日志进行分析导致的难以找到告警信息在调用链路中的定位、难以发现产生程序问题源头的应用程序和告警信息,进而为持续可用的用户服务提供日志检测和告警保障。
为了实现上述目的,本说明书采用下述方案:
第一方面,本发明实施例提供一种日志检测方法,应用于流处理引擎,该日志检测方法包括:
获取日志数据,并开启第一时间窗口,所述日志数据包括处于调用链路中应用程序的日志数据;
确定所述第一时间窗口内的标记值集,所述标记值集中标记值是由配置的日志模板的出现次数确定的,所述出现次数是在所述第一时间窗口内,配置的日志模板与获取的日志数据之间匹配成功状态的出现次数;
从出现匹配成功状态的日志模板中,确定告警日志模板,并以所述告警日志模板生成告警信息,与所述告警日志模板对应的标记值属于所述告警日志模板中配置的数值范围;
发送所述告警信息至告警中心,以使得所述告警中心基于第二时间窗口内的告警信息确定所述调用链路的根因告警信息。
第二方面,本发明实施例提供一种日志告警方法,应用于告警中心,该日志告警方法包括:
在第二时间窗口内接收由流处理引擎发送的告警信息;
确定配置的告警模板与接收的告警信息之间的相似度,执行相似度匹配,以从出现匹配成功状态的告警模板中,确定与所述第二时间窗口对应的关键告警模板;
确定与应用程序标识对应的调用链路,所述应用程序标识是从与所述关键告警模板匹配成功的告警信息中提取的;
基于所述调用链路中应用程序之间的调用关系,从所述第二时间窗口内的告警信息确定根因告警信息,并执行日志告警。
第三方面,本发明实施例提供一种日志告警处理系统,该日志处理告警系统包括:
获取模块,用于获取日志数据,并开启第一时间窗口,所述日志数据包括处于调用链路中应用程序的日志数据;
标记模块,用于确定所述第一时间窗口内的标记值集,所述标记值集中标记值是由配置的日志模板的出现次数确定的,所述出现次数是在所述第一时间窗口内,配置的日志模板与获取的日志数据之间匹配成功状态的出现次数;
确定模块,用于从出现匹配成功状态的日志模板中,确定告警日志模板,并以所述告警日志模板生成告警信息,与所述告警日志模板对应的标记值属于所述告警日志模板中配置的数值范围;
发送模块,用于发送所述告警信息至告警中心,以使得所述告警中心基于第二时间窗口内的告警信息确定所述调用链路的根因告警信息。
第四方面,本发明实施例提供一种电子设备,该电子设备包括:
至少一个处理器;
存储器,与所述至少一个处理器连接;
其中,所述存储器存储有能被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令,所述至少一个处理器通过执行所述存储器存储的指令实现前述的方法。
第五方面,本发明实施例提供一种机器可读存储介质,存储有机器指令,当所述机器指令在机器上运行时,使得机器执行前述的方法。
在本发明中,通过流处理引擎获取调用链路中应用程序的日志数据,并在开启的第一时间窗口中进行日志数据与日志模板之间的模板匹配,通过日志模板匹配成功状态的出现次数确定标记值。在出现匹配成功状态的日志模板之间,各标记值能够表现因产生了程序问题的应用程序在调用链路中的程序调用影响,同时能够表现各应用程序之间的告警信息与日志模板的匹配程度(匹配成功状态的出现数量越多,匹配程度相对越高),从而利用日志的出现密度和出现成功匹配模板的时间上相对分布规律,找到了受到程序问题影响最为严重的应用程序。通过处于数值范围内的标记值,确定该应用程序的告警信息与日志模板的匹配程度,高于其余应用程序的告警信息与日志模板的匹配程度。最后,流处理引擎可以将受到程序问题影响严重的应用程序的告警信息(在调用链路中应用程序之间告警信息特点最为突出)发送至告警中心,使得告警中结合调用链路和第二时间窗口中出现的各应用程序的告警信息,确定根因告警消息(及问题源头的应用程序),而不是对单独应用程序的告警信息进行日志分析,也不是使用单独应用程序的告警信息进行发送。
在本发明中,还通过了告警中心在第二时间窗口内接收前述的告警信息,找到与告警模板最为相似的告警信息,找到第二时间窗口对应的关键告警模板和告警信息,从而在第二时间窗口中受影响严重的应用程序的告警信息之间,确定相似于告警模板的告警信息。利用相似于告警模板的告警信息,结合调用链路,找到实际产生程序问题源头的应用程序的告警信息,即根因告警信息,其中,找到产生相似于告警模板的告警信息的应用程序,仅能说明,在调用链路的应用程序之间,易表现受程序问题的影响和易被检测到日志异常,并不一定是实际产生程序问题源头的应用程序,但能确定所处调用链路,并结合所处调用链路中应用程序之间的调用关系,找到实际产生程序问题源头的应用程序,能够避免实际产生程序问题源头的应用程序所发出的日志数据,在时间窗口内相对于调用链路中其余应用程序,呈现日志数据的信息密度低和告警信息相对分布稀疏等不易被检测识别或统计的特点,导致的难以确定根因告警信息,从而实现对调用链路中应用程序进行日志分析和确定根因告警信息,以及时解决程序问题,提供持续可用的用户服务。
举例而言,从与关键告警模板对应的告警信息中提取的应用程序标识是微服务2(客户端应用程序),微服务2的调用链路是微服务2作为中间件服务的消息消费者,中间件服务的消息生产者是微服务1(服务端应用程序)。微服务1(日志数据中信息密度低)未被流处理引擎检测作为受影响严重的应用程序,向告警中心发出的告警信息是微服务2的告警信息(例如日志数据中含大量服务端数据超时),若此时告警中心确定的关键告警模板是与微服务2的告警信息相似的告警模板,结合微服务2所处的调用链路中调用关系,可以查询存在的告警信息(可以包括微服务1、微服务2、中间件服务的告警信息),则可以确定微服务1的告警信息是根因告警信息。示例地,微服务1的程序问题是服务器节点带宽资源不足,则告警中心可以指示生产环境中服务资源管理系统更换在线冗余服务器节点,还可以指示生产环境中服务资源管理系统,以执行在线冗余服务器节点中微服务1的镜像备份的微服务,从而提供用户服务的持续可用性保障。
本发明实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施例,但并不构成对本发明实施例的限定。在附图中:
图1为本发明实施例的日志检测的主要方法步骤示意图;
图2为本发明实施例的一种示例性的日志处理流程示意图;
图3为本发明实施例的一种示例性的应用于流处理引擎的日志检测场景示意图;
图4为本发明实施例的日志告警的主要方法步骤示意图;
图5为本发明实施例的一种示例性的应用于告警中心的日志告警场景示意图;
图6为本发明实施例的一种示例性的电子设备模块示意图。
具体实施方式
为使本说明书的目的、技术方案和优点更加清楚,以下结合附图对本发明实施例的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施例,并不用于限制本发明实施例。
正如前文所述,通常针对独立的应用程序产生的日志数据,采用检测日志的异常判断策略,对日志数据进行检测,并将检测异常的应用程序作为产生程序问题的应用程序。但是处于调用链路中的应用程序(例如云平台、服务器集群内微服务和中间件,数量规模庞大、调用关系复杂),在一些可能的实现方式中,由于应用程序之间的数据对象和程序方法存在依赖和相互作用的影响,使得除了产生程序问题的应用程序会检测异常之外,还存在相同调用链路中其余的应用程序也检测异常,此时采用检测各应用程序的异常判断策略应对独立应用程序的日志数据进行检测,将难以确定从日志数据中检测出产生问题具体的调用链路,以及难以确定产生程序问题源头的应用程序和根因信息。在另一些可能的实现方式中,由于产生程序问题的应用程序不报送异常的日志数据(未定义的程序问题、隐藏的安全攻击的程序问题等),在相同调用链路中其余的应用程序也未报送异常的日志数据,则此时异常判断策略将难以生效。
鉴于此,本说明书提供了日志检测的方案,在获取到处于调用链路中应用程序的日志数据时,可以触发开启第一时间窗口;在第一时间窗口内,可以执行日志模板与日志数据的模板匹配,并确定各日志模板在第一时间窗口内匹配成功状态的出现次数,并以各出现次数得到第一时间窗口内的标记值集,标记值的大小能够度量日志数据与日志模板的匹配程度大小(匹配程度高,是出现相对更多次的匹配成功,并不是一次匹配后的相似性高),然后相对于受程序问题影响的应用程序,确定告警日志模板,告警日志模板生成的告警信息,从而表现受程序问题影响严重的应用程序的日志数据特点,以向告警中心传递受程序问题影响严重的应用程序的告警信息和应用程序所处的调用链路的信息,能够使得告警中心基于第二时间窗口内的告警信息确定所述调用链路的根因告警信息。应理解,本说明书提供的方法可以由具有计算和指令处理能力的设备执行,例如由服务器或电子设备执行。
在第一方面,请参考图1,本发明实施例提供了日志检测方法,可以应用于流处理引擎,该日志检测方法可以包括:
S1)流处理引擎可以获取日志数据,并开启第一时间窗口,所述日志数据包括处于调用链路中应用程序的日志数据。
在本发明实施例中,流处理引擎(或称流计算引擎)可以是物理服务器或服务器实例或容器实例,实例的硬件可以是服务器集群中由处理器资源和存储器资源构成的、具有计算及指令处理功能的资源实例,资源实例例如云服务器。流处理引擎被部署有脚本和/或程序,在执行脚本和/或程序时,流处理引擎可以实现前述的日志检测方法。流处理引擎可以提供用户服务(微服务和中间件服务等应用程序)的日志数据计算和处理能力。示例地,流处理引擎可以单独作为数据处理设备产品交付,并可以与生产环境中支持用户服务和/或日志数据采集的服务器连接,以及与该生产环境中用于信息告警的服务器连接。流处理引擎也可以与告警中心共同作为数据处理设备产品交付,可以与生产环境中支持用户服务和/或日志数据采集的服务器连接。示例地,数据处理设备产品可以是文件服务器或监控服务器/工控机等设备。
在一些可能的实现方式中,日志数据可以包括时间戳、应用程序标识、日志文件等。时间戳可以用于指示第一时间窗口开启(如果没有已开启)或确定获取的日志数据是否在第一时间窗口的结束时刻(如果已开启)之内。应用程序标识可以包括应用程序名称、应用程序网络标识、版本标识等。日志文件可以包括正常数据处理信息的日志文件和异常数据处理信息的日志文件。正常数据处理信息的日志文件可以包括无异常级别标识和无异常的数据处理状态信息,例如无异常级别标识可以是通知级别标识[INFO]、调试级别标识[DEBUG],无异常的数据处理状态信息可以是数据(例如数据可以是图像文件、音频文件、消息、数据库表数据等)操作(例如发送请求、接收校验、复制、编码/解码、压缩/解压等程序堆栈打印信息)完成状态信息,以及还可以包括此数据操作采用的调用链路及(可选的)调用关系、依赖关系、回调函数和调用方法的信息。异常数据处理信息的日志文件可以包括异常级别标识和异常的数据处理状态信息,例如异常级别标识可以是警告级别标识[WARN]、错误级别标识[ERROR]、严重错误级别标识[FATAL],异常的数据处理状态信息可以是通信失败状态信息(例如无法连接至中间件服务)、数据操作失败状态信息(例如消息发送失败、数据调用失败等程序堆栈打印信息),以及还可以包括此数据操作采用的调用链路及(可选的)调用关系、依赖关系、回调函数和调用方法的信息。在一些可能的程序语言的应用中,可以通过探针服务基于微服务和中间件服务的请求信息,报送用于表示当前的应用程序所处调用链路(URL)的信息。
在一些可能的实现方式中,第一时间窗口可以是滑动时间窗口,滑动时间窗口是用于数据分组和计数等统计功能的参考时间窗口,滑动时间窗口可以有固定的时间长度且有指定的滑动区间,例如10秒滑动时间窗口的滑动区间可以指定为5秒,滑动时间窗口最初的起始时刻可以是在获取到日志数据的时刻,结束时刻受固定的时间长度限制,统计功能可以实现在各滑动区间内。
在本发明实施例中,为了减少对生产环境中已部署的微服务和中间件服务等应用程序的影响,可以部署探针服务至应用程序的生产环境中,并可以部署日志分类服务至应用程序的生产环境中,实现可被流处理引擎获取的日志数据。前述的步骤S1)可以包括:
S101)流处理引擎可以与中间件服务通信,流处理引擎可以读取由所述中间件服务存储的日志数据,用于消费所述中间件服务中主题内被日志分类服务写入的日志数据;其中,
所述日志分类服务用于基于由探针服务采集的日志数据和指定的程序标识字段进行日志分类;
所述探针服务用于对所述调用链路中应用程序进行日志数据采集。
在一些可能的实现方式中,步骤S101)中的中间件服务可以与生产环境中的中间件服务(例如包含消息中间件服务)相同或额外独立部署,步骤S101)中的中间件服务可以是消息中间件服务,例如Kafka消息中间件服务。
在步骤S101)中,请参考图2,探针服务可以是构造的脚本/程序或(PaaS云平台)部署的探针工具,探针服务可以被配置有构成日志数据的数据项(时间戳、应用程序标识、日志文件),可用于采集微服务和微服务之间的中间件服务的日志数据。在一些可能的应用中,在JAVA语言中,探针服务可以基于微服务和中间件服务的请求信息,报送用于表示当前的应用程序所处调用链路的信息,以及使用构造的方法(Method)或探针工具跟踪应用程序操作,并打印程序堆栈的信息。探针服务可以将采集的日志数据写入Kafka消息中间件服务中指定的探针服务主题(Kafka Topic)内,以生产主题数据,探针服务主题可以被日志分类服务订阅,当探针服务主题中被写入日志数据之后,Kafka消息中间件服务可以通知日志分类服务,日志分类服务在收到通知之后,可以读取探针服务主题中的日志数据,以消费主题数据。
在步骤S101)中,日志分类服务可以是部署的解析服务,日志分类服务可以被配置为用于基于日志数据中应用程序标识和指定的程序标识字段(例如微服务名称),进行日志分类。在一些可能的应用中,可以使用具有正则式解析规则的解析服务,识别日志数据中应用程序标识的字符,并可利用识别的字符,查询用户服务业务分类表,确定日志数据的业务分类,将日志数据写入该业务分类下的Kafka消息中间件服务中主题内,相同业务分类的日志数据均可以写入同一业务分类下的Kafka消息中间件服务中主题内。其中,业务分类可以包括支付业务分类1、社交消息业务分类2、商品服务业务分类3等,每个业务分类可以与Kafka消息中间件服务中主题一一对应,例如支付业务分类1与Kafka Topic1对应,社交消息业务分类2与Kafka Topic2对应,商品服务业务分类3与Kafka Topic3对应。
在步骤S101)中,流处理引擎可以订阅Kafka消息中间件服务中各主题KafkaTopic,在流处理引擎收到Kafka消息中间件服务的通知之后,流处理引擎响应于通知内的指示,可以读取主题内的日志数据,此时的日志数据可以被分类后的日志数据,从而能够有利于使用当前业务分类下的日志模板进行模板匹配,减少需要匹配的日志模板的数量,同时,可以在流处理引擎接收到分类的日志数据之后,触发开启第一时间窗口,分类的日志数据有利于增加第一时间窗口内日志数据的处理效率。其中,在开启第一时间窗口的同时,可以在流处理引擎中初始化指定的缓存空间,该缓存空间可以是流处理引擎中内存的指定存储地址段。其中,本发明实施例中日志模板可以包括描述程序问题的文本及程序问题对应的应用程序参数,程序问题可以基于业务分类下用户服务的测试、调试,进行标注和定义,例如软件更新失败(参数更新UPDATE)、调用失败(参数类文件名/微服务名,例如应用程序调用数据库的数据库驱动类文件名,以及该数据库的数据库服务名)、连接失败(参数微服务名)等,日志模板也可以包括描述隐藏安全攻击行为的文本及攻击对应的应用程序参数,例如收发正常日志文本的频率高于频率阈值(此时日志级别标识可以是[INFO]、[DEBUG],参数频率)、等间隔调用指定微服务的持续时长高于时长阈值(参数持续时长)等。
在本发明实施例中,在确定所述第一时间窗口内的标记值集之前,前述的日志检测方法还可以包括:
A1)流处理引擎可以确定获取的日志数据中日志级别,对获取的日志数据进行过滤,以保留具有指定日志级别的日志数据;
A2)流处理引擎可以对保留的日志数据进行分词,并以分词数量相同的日志数据为一个日志分组。
在一些可能的实现方式中,流处理引擎可以通过具有正则式解析规则的解析服务,对日志数据中日志级别进行解析(关键字识别),并可以基于日志级别进行日志数据过滤。在一些可能的应用中,可以指定保留携带错误级别标识[ERROR]和严重错误级别标识[FATAL]的日志数据,并删除携带其余日志级别标识的日志数据,其余日志级别标识例如警告级别标识[WARN]、通知级别标识[INFO]、调试级别标识[DEBUG]。然后,流处理引擎可以通过(调用/配置的)分词器对携带错误级别标识[ERROR]和严重错误级别标识[FATAL]的日志数据进行分词,确定分词数量,可以将分词数量相同的日志数据作为一个日志分组,并按照日志分组,分别保存于前述的缓存空间中。在另一些可能的应用中,为了发现针对用户服务可能的隐藏安全攻击和发现可能的用户服务未定义的程序问题,可以指定保留携带错误级别标识[ERROR]和严重错误级别标识[FATAL]的日志数据以及警告级别标识[WARN]、通知级别标识[INFO]、调试级别标识[DEBUG]。
在本发明实施例中,可以基于相似度进行模板匹配。在确定所述第一时间窗口内的标记值集之前,前述的日志检测方法还可以包括:
B1)流处理引擎可以确定配置的日志模板与获取的日志数据之间的相似度;
B2)流处理引擎可以执行相似度匹配,以确定各日志模板是否出现匹配成功状态;其中,若存在第i个日志模板与获取的日志数据的相似度高于相似度阈值,则确定所述第i个日志模板出现匹配成功状态,记录所述第i个日志模板出现匹配成功状态的出现次数,i为正整数。
在一些可能的实现方式中,在步骤B1)中,流处理引擎可以从前述的缓存空间中获取日志数据,可以是步骤S1)或步骤S101)之后获取的日志数据,为了增加日志数据的处理效率和模板匹配的准确性,获取的日志数据也可以是步骤A1)或步骤A2)处理完成之后的日志数据。在一些可能的应用中,流处理引擎可以调用/配置有词向量转换服务,例如Word2vec、FastText等转换算法实现的转换服务,可以将日志数据中与各微服务或各中间件服务对应的日志文件内文本,转换为数值向量(即词向量),前述的步骤B1)可以包括:
B101)流处理引擎可以将配置的日志模板和获取的日志数据分别转换为数值向量,配置的日志模板的数值向量可以在步骤B1)之前预先得到,可减少实时计算压力以及增加处理效率;
B102)流处理引擎可以计算所述数值向量之间的相似度。
其中,流处理引擎可以基于向量之间的距离大小,得到数值向量之间的相似度。在另一些可能的应用中,流处理引擎可以调用/配置有LSTM、BERT模型等自然语言处理模型,可以将日志数据进行语义解析,得到词向量,并可以基于曼哈顿距离计算得到相似度。从而可以确定获取的日志数据与各日志模板之间的相似度。
在步骤B2)中,日志模板可以还包括模板的唯一标识,流处理引擎可以记录与唯一标识对应的出现次数,若第i个日志模板与获取的日志数据的相似度高于相似度阈值,可以视为获取的日志数据中微服务或中间件服务的程序问题与第i个日志模板相似,即第i个日志模板与获取的日志数据是匹配成功状态,每出现一次匹配成功状态,可以在第i个日志模板的唯一标识对应的出现次数记录中,增加1次。
在本发明实施例中,适应于多种用户服务类型,以及配置探针服务用于在采集时将日志数据记录为可字符解析的文本结构,也可以基于相同字符数量进行模板匹配。在确定所述第一时间窗口内的标记值集之前,前述的日志检测方法还可以包括:
B1’)流处理引擎可以通过具有正则式解析规则的解析服务,确定获取的日志数据中日志文件中文本的字符,例如与注册程序、开始发送、连接失败、调用报错、心跳记录等程序操作关联的字符;
B2’)流处理引擎可以执行相同字符数量匹配,以确定各日志模板是否出现匹配成功状态;其中,若存在第i个日志模板与日志数据中日志文件中文本的字符相同的字符数量高于配置的字符数量阈值,则确定所述第i个日志模板出现匹配成功状态,记录所述第i个日志模板出现匹配成功状态的出现次数,其中日志文件可以采用键值关系的文本(例如.json文件中键值对),有利于模板匹配的执行效率。
在本发明实施例中,在配置的日志模板的出现次数确定之后,前述的日志检测方法还可以包括:
S2)流处理引擎可以确定所述第一时间窗口内的标记值集,所述标记值集中标记值是由配置的日志模板的出现次数确定的,所述出现次数是在所述第一时间窗口内,配置的日志模板与获取的日志数据之间匹配成功状态的出现次数。
在一些可能的实现方式中,可以初始化一个标记值集,用于统计各日志模板的匹配成功状态的出现情况。标记值集中标记值可以与日志模板一一对应,标记值可以是出现次数,也可以是出现次数的映射值。在一些可能的应用中,步骤S2)可以包括以下任意一项:
S201)流处理引擎可以基于线性关系计算数值(百分比值),该计算的数值可作为日志模板的标记值;
S202)流处理引擎可以以当前的(第i个)日志模板在各滑动区间内的出现次数,计算出现频率,将所有滑动区间中的最小出现频率和最大出现频率作为当前的日志模板在第一时间窗口内的标记值;
S203)流处理引擎可以计算所有滑动区间中的各日志模板的出现次数总数,出现次数总数分别作为各日志模板在第一时间窗口内的标记值。可以理解的,标记值的计算方式可以基于统计需求和在生产环境中的使用效果进行选择和设计。
在本发明实施例中,在模板匹配完成之后,可以在第一时间窗口内对各日志模板的标记值进行比较。前述的日志检测方法还可以包括:
S3)流处理引擎可以从出现匹配成功状态的日志模板中,确定告警日志模板,并以所述告警日志模板生成告警信息,与所述告警日志模板对应的标记值属于所述告警日志模板中配置的数值范围。其中,在一些可能的应用中,日志模板还可被配置有传递参数,传递参数可用于替换日志数据中日志文件、应用程序标识和调用链路等日志信息,替换传递参数后的日志模板将携带日志数据中微服务的日志信息,从而可使得生成的告警信息包括更多与程序问题或攻击行为相关联的语义信息。在另一些可能的应用中,可以将用户服务中的微服务或中间件的名称、唯一标识等应用程序标识以及描述(出现过的)程序问题或攻击行为的文本,标注至日志模板中,从而更有利于实时处理效率,此时告警信息的数据格式可以由告警中心提供,告警信息可以直接使用日志模板中的标注的信息形成,并按此数据格式封装为可发送至告警中心的消息。
在一些可能的实现方式中,前述的日志模板中可以配置有数值范围,该数值范围可以用于度量标记值的大小是否表现出应用程序存在程序问题或被隐藏安全攻击。若标记值为第一时间窗口内各日志模板的出现次数总数,数值范围可以是高于出现次数总数的最低值,前述的步骤S3)可以包括:
S301)当第一时间窗口内某日志模板的出现次数总数高于出现次数总数的最低值时(即属于所述告警日志模板中配置的数值范围),流处理引擎可以判定某日志模板是告警日志模板。
且可判定与告警日志模板对应的告警信息中应用程序标识所在的调用链路,存在程序问题或被隐藏安全攻击,此时具有与某日志模板对应的告警信息中应用程序标识的微服务或中间件服务,受程序问题或被隐藏安全攻击影响严重,从而以告警日志模板生成的告警信息,能够在确定受程序问题或被隐藏安全攻击影响严重的微服务或中间件服务的同时,定位了存在程序问题或被隐藏安全攻击的调用链路。
在一些可能的实现方式中,若将出现相似度高于相似度阈值作为出现匹配成功状态,则步骤S3)还可以包括:
S302)流处理引擎可以将在出现匹配成功状态的日志模板中,任意两个日志模板与获取的日志数据的相似度,进行相似度大小比较,迭代确定相似度最大的日志模板,相似度最大的日志模板即为告警日志模板;
其中,告警日志模板与获取的日志数据的相似度,大于出现匹配成功状态的日志模板中任意一个日志模板与获取的日志数据的相似度。步骤S302中可以对步骤S301)中判定是告警日志模板的某日志模板,进行相似度比较,以使得当某日志模板为多个日志模板时,确定一个与获取的日志数据最相似的日志模板。
需要补充说明的是,在一些可能的应用中,若未出现匹配成功状态的日志模板,流处理引擎可以将获取的日志数据中日志文件,按照未定义模板,生成告警信息,发送至告警中心,以使得由告警中心发送至指定的用户设备(计算机、移动电子设备等),使用该用户设备的用户进行人工标注,可定义和形成新的日志模板。
在本发明实施例中,在生成告警信息之后,前述的日志检测方法还可以包括:
S4)流处理引擎可以发送所述告警信息至告警中心,以使得所述告警中心基于第二时间窗口内的告警信息确定所述调用链路的根因告警信息。
在一些可能的实现方式中,流处理引擎可以被配置有告警中心的接口信息,可以基于接口信息将告警信息作为消息,发送至告警中心,以使得告警中心确定根因告警信息。
在本发明实施例公开的一种示例性的应用于流处理引擎的日志检测场景中,请参考图3,用户服务可以包括微服务Q1~Q6以及中间件服务K1~K2,微服务Q2是数据检索服务,微服务Q1和微服务Q3是数据库服务,中间件服务K1~K2可以是接口代理节点服务,微服务Q4~Q6是缴费、图片查看、音乐播放等应用程序服务。调用链路可以有多条,例如微服务Q2调用中间件服务K2,中间件服务K2调用微服务Q3,记为调用链路Q2→K2→Q3;微服务Q2调用中间件服务K1,中间件服务K1调用微服务Q1,记为调用链路Q2→K1→Q1;微服务Q6调用中间件服务K2,中间件服务K2调用微服务Q3,记为调用链路Q6→K2→Q3等。假设微服务Q3存在程序问题,例如服务器节点离线,微服务Q6的日志级别标识可以是[FATAL],中间件服务K2、微服务Q2的日志级别标识可以是[ERROR]。探针服务可以产生日志数据Log1,Log2,Log3……,流处理引擎可以将日志分类服务分类的以及分组的日志数据写入缓存空间,并在日志数据Log1写入时开启第一时间窗口Wa,此时缓存空间中可被写如Log1,Log3,Log6,Log7,Log9等日志数据,第一时间窗口Wa的滑动步长为ST,滑窗大小可取为3ST。流处理引擎可以从日志模板库调用各日志模板,在滑窗w0中,将日志模板1、2、3等分别与日志数据(Log1,Log3,Log6)进行模板匹配,确定各日志模板的相似度,例如日志模板1与日志数据(Log1,Log3,Log6)的相似度依次为p01、p02、p03,日志模板2与日志数据(Log1,Log3,Log6)的相似度依次为p04、p05、p06。
在该日志检测场景中,滑窗w1是滑窗w0滑动之后的滑窗,在滑窗w1中,将日志模板1、2、3等分别与日志数据(Log3,Log6,Log7)进行模板匹配,确定各日志模板的相似度,例如日志模板1与日志数据(Log3,Log6,Log7)的相似度依次为v01、v02、v03,其中,相似度p02、p03分别与相似度v01、v02可以相同或不同(例如转换、检测波动),但若在任意一个滑窗中,任意一个相似度高于相似度阈值,则可以对日志模板的标记值增加1,例如在滑窗w0中,相似度p07、p09高于相似度阈值,则日志模板3出现次数为两次,可在标记值集sig中增加2,而在滑窗w0中,相似度p07、p09高于相似度阈值,则日志模板3出现次数仍为两次,仍可在标记值集sig中增加2。流处理引擎可以筛选日志模板的标记值,确定是否属于数值范围的,例如出现次数总数是否高于配置的次数阈值,然后在筛选后的日志模板中,确定各日志模板在第一时间窗口中的最大相似度,比较各日志模板的最大相似度,确定告警日志模板sig_max(例如描述数据库服务离线的日志模板),生成告警信息,发送告警信息至告警中心。在持续一段时间之后,发送的告警信息中的应用程序标识可以包括微服务Q6的标识(相较于其余微服务,微服务Q6不可用,如无法播放音乐,将密集地报送告警信息),还可以包括微服务Q2的标识、中间件服务K2的标识(微服务Q2、中间件服务K2仍可用,将稀疏地报送告警信息),而微服务Q3因离线(状态不再改变)无法被采集到日志数据,探针服务(主要依据程序状态变化进行采集)可(在时间窗口内)报送一次或几次就不再报送、或等间隔报送,发送的告警信息还可包括信息密度很低的、包含微服务Q3的标识的告警信息。但微服务Q3的程序问题严重影响调用链路Q6→K2→Q3中微服务Q6,流处理引擎可以通过包含微服务Q6的标识的告警信息,向告警中心传输受影响严重的调用链路的定位信息。
在与本说明书前述方案同一发明构思下,本说明书还提供了日志告警的方案,可以通过告警中心确定在第二时间窗口内接收到的告警信息与告警中心中配置的告警模板的相似性,在受程序问题或被隐藏安全攻击影响严重的应用程序的告警信息之间,确定模板匹配成功的、关键的告警信息,在定位调用链路的基础上,依据调用链路上应用程序的告警信息分布情况,找到根因告警信息,以及执行关于该根因告警信息的日志告警,从而能够及时发现用户服务中程序问题或被隐藏安全攻击,提供持续可用的用户服务保障,同时,提供告警信息的压缩功能,发出的是根因告警信息,不是全部的告警信息,也不会高频地发出重复的告警信息。
在第二方面,请参考图4,本发明实施例提供了日志告警方法,可以应用于告警中心,该日志告警方法可以包括:
L1)告警中心可以在第二时间窗口内接收由流处理引擎发送的告警信息。
在本发明实施例中,告警中心可以是物理服务器或服务器实例或容器实例,实例的硬件可以是服务器集群中由处理器资源和存储器资源构成的、具有计算及指令处理功能的资源实例,资源实例例如云服务器。告警中心被部署有脚本和/或程序,在执行脚本和/或程序时,告警中心可以实现前述的日志告警方法。告警中心可以提供由流处理引擎发送的告警信息计算和处理能力。示例地,告警中心可以单独作为数据处理设备产品交付,并可以与生产环境中支持发送用户服务告警信息的服务器连接,以及可以与该生产环境中用于资源管理的服务器(可用于实现资源管理系统,资源管理系统可受告警中心/人工指示,恢复存在程序问题或被攻击的微服务或中间件服务)连接。告警中心也可以流处理引擎共同作为数据处理设备产品交付,可以与生产环境中支持用户服务和/或日志数据采集的服务器以及用于资源管理的服务器连接。示例地,数据处理设备产品可以是文件服务器或监控服务器或工控机等设备。
在一些可能的实现方式中,第二时间窗口的类型可以与第一时间窗口一致,可以是滑动时间窗口。告警中心在收到由流处理引擎发送的告警信息时,若未开启第二时间窗口,则该告警信息可以触发告警中心开启第二时间窗口,若已经开启第二时间窗口,则该告警信息可在当前的滑动区间内被统计。
在本发明实施例中,前述的日志告警方法还可以包括:
L2)告警中心可以确定配置的告警模板与接收的告警信息之间的相似度,执行相似度匹配,以从出现匹配成功状态的告警模板中,确定与所述第二时间窗口对应的关键告警模板。
在一些可能的实现方式中,告警模板可以包括描述告警信息消息内容的文本以及告警信息作为消息的数据格式,告警模板可以基于用户服务中微服务或中间件服务的程序调试和测试,标注和定义形成与各微服务或中间件服务对应的告警模板。告警模板与前述的日志模板,以及告警消息与日志数据,均可以转换为序列化的文本,可以将序列化的文本转换为词向量。前述步骤L2)中执行相似度匹配可以包括:
L201)若存在第j个告警模板与接收的告警信息的相似度,高于相似度阈值,则告警中心可以确定所述第j个告警模板出现匹配成功状态,j为正整数。
类似地,可以基于第j个告警模板的词向量和接收的告警信息的词向量之间的距离大小,计算相似度。前述步骤L2)中从出现匹配成功状态的告警模板中,确定与所述第二时间窗口对应的关键告警模板可以包括:
L202)告警中心可以将在出现匹配成功状态的告警模板中,任意两个告警模板与接收的告警信息的相似度,进行相似度大小比较,迭代确定相似度最大的告警模板,相似度最大的告警模板即为关键告警模板;其中,
关键告警模板与接收的告警信息的相似度,大于出现匹配成功状态的告警模板中,任意一个告警模板与接收的告警信息的相似度。从而告警中心可以在受影响严重的应用程序的告警信息之间,通过关键告警模板定位(处于受影响严重的调用链路)关键的应用程序的告警信息。
在本发明实施例中,前述的日志告警方法还可以包括:
L3)告警中心可以确定与应用程序标识对应的调用链路,所述应用程序标识是从与所述关键告警模板匹配成功的告警信息中提取的。
在一些可能的实现方式中,从与所述关键告警模板匹配成功的告警信息中提取的应用程序标识将视为处于受影响严重的调用链路,告警中心可以通过以该提取的应用程序标识,查询调用链路监控工具,确定具体的调用链路,例如提取微服务名/全局标识或中间件服务名/全局标识,查询监控工具skywalking中微服务或中间件服务所处的调用链路,实现定位受影响严重的调用链路。
在本发明实施例中,前述的日志告警方法还可以包括:
L4)告警中心可以基于所述调用链路中应用程序之间的调用关系,从所述第二时间窗口内的告警信息确定根因告警信息,并执行日志告警。
在一些可能的实现方式中,告警中心可以确定调用链路中应用程序标识,置入标识集合,通过标识集合和调用关系确定根因告警信息。在一些可能的应用中,前述的步骤S4)可以包括:
L401)提取所述第二时间窗口内的告警信息中应用程序标识,微服务M1的名称;
L402)将提取的应用程序标识作为应用程序标识集,确定所述应用程序标识集中存在与所述应用程序标识不同的应用程序标识(微服务M2的名称和微服务M3的名称,调用关系是微服务M2调用微服务M1(微服务M1的调用链路位置在微服务M2的调用链路位置之前),微服务M1调用微服务M3(微服务M3的调用链路位置在微服务M1的调用链路位置之前);
L403)确定具有指定应用程序标识的告警信息为根因告警信息;其中,
在所述调用链路中,具有所述指定应用程序标识(此时即微服务M3)的应用程序的调用链路位置,处于具有任意一个应用程序标识的应用程序的调用链路位置之前,具有所述指定应用程序标识的告警信息和具有所述任意一个应用程序标识的告警信息,均属于所述第二时间窗口内的告警信息。
在另一些可能的应用中,告警中心也可以确定调用链路中应用程序标识,置入标识集合1中,并可以提取第二时间窗口内的告警信息中应用程序标识,置入标识集合2中,取标识集合1和标识集合2的交集,然后,可以利用应用程序之间的调用关系,找到与交集中调用链路位置最靠前的应用程序标识对应的告警信息,作为根因告警信息,最靠前的应用程序标识的调用链路位置,在交集中其余任意一个应用程序标识的调用链路位置之前,例如,调用链路关系是微服务N1调用微服务N2(微服务N2的调用链路位置在微服务N1的调用链路位置之前)、微服务N2调用微服务N3(微服务N3的调用链路位置在微服务N2的调用链路位置之前)的关系,此时微服务N3的名称可以是最靠前的应用程序标识,则微服务N3在第二时间窗口内的告警信息为根因告警信息。在一些示例性应用中,此时微服务N1可以是应用数据库存取数据的应用程序,微服务N2可以是建立微服务N1和数据库之间通信的数据库驱动程序,微服务N3可以是通过微服务N2向微服务N1提供数据存取功能的数据库程序。
在一些可能的实现方式中,对于第二时间窗口内非根因告警信息的告警信息,告警中心可以将这些告警信息保存于指定的存储地址,并生成访问该存储地址的链接,可以将链接填入根因告警信息中配置的链接参数位置,以使得第二时间窗口内全部告警信息压缩为根因告警信息以及其余告警信息的链接,有利于发现和定位用户服务中的程序问题和注意到被隐藏的安全攻击行为,同时降低带宽资源开销,在规模化的云平台/服务器集群中节省了日志分析和监控所使用的通信资源。
在一些可能的实现方式中,告警中心可以通过消息发送队列根因告警信息。前述的步骤L4)中执行日志告警可以包括:
L404)将所述根因告警信息写入发送队列,并发送所述发送队列中的根因告警信息。
告警中心可以将根因告警信息的消息发送至指定的用户设备和/或资源管理系统,从而使得程序问题或被隐藏安全攻击能够被及时发现和解决,提供用户服务的持续可用性保障。
在一些可能的实现方式中,可以提供延迟时间计时器,避免告警中心短期(延迟时间之内)重复发送相同的根因告警信息。前述的步骤L4)中执行日志告警还可以包括:
L405)记录所述根因告警信息的关键词,并启动与所述关键词对应的延迟时间计时器;
L406)在所述延迟时间计时器计时结束之前,忽略由所述流处理引擎发送的、或所述发送队列中的新增告警信息,所述新增告警信息的关键词与所述根因告警信息的关键词相同;
L407)在所述延迟时间计时器计时结束之后,将所述延迟时间计时器置为初始化状态。
在一些可能的实现方式中,可以在根因告警信息中提取微服务或中间件服务的主题名称、程序问题、攻击行为等作为关键词,并启动与关键词一一对应的延迟时间计时器,计时器可以从0至T时刻计时,也可以从T至0时刻计时,初始化状态可以是0或T。忽略操作可以删除新增告警信息。
在本发明实施例公开的一种示例性的应用于告警中心的日志告警场景中,请参考图5,可接续前述的日志检测场景,告警中心可以缓存告警信息am1,0,am2,am3,0……等(缓存空间AW内0可表示等时间间隔没有收到告警信息)。告警中心可以在第二时间窗口Wb(步长ST’)内读取缓存中的告警信息和从告警模板库调用告警模板,进行模板匹配。在滑窗u0中,示例地,告警模板1与告警信息am1、0、am2的相似度可分别为r01、0、r03,若告警模板1的相似度r03高于相似度阈值,则出现匹配成功状态。在滑窗u1中,若告警模板1、3的相似度f02、f09高于相似度阈值,则出现匹配成功状态,依次类推。然后,告警中心可以进行相似度大小比较,确定与第二时间窗口对应的关键告警模板max,与关键告警模板max对应的告警信息中应用程序标识可以是微服务Q6的标识或中间件服务K2的标识,而不是微服务Q2的标识(微服务Q2仍可用,微服务Q2所处调用链路中的数据库服务还存在微服务Q1,微服务Q2的告警信息与数据库服务离线的告警模板相似度低),告警中心基于微服务Q6的标识或中间件服务K2的标识所处的调用链路,确定最靠前的微服务是微服务Q3,从而能够找到根因告警信息为微服务Q3的告警信息,告警中心可以发送根因告警信息至用户设备和/或资源管理系统,以使得用户设备和/或资源管理系统恢复微服务Q3,例如执行微服务Q3的镜像备份的微服务,从而保障用户服务的持续可用性。
本发明实施例通过滑动时间窗口对日志进行实时分析,并根据分析结果发出告警信息,再由告警中心对告警信息进行根因分析,并确定根因告警信息,将时间窗口内的告警信息进行压缩,同时在延迟时间内完成相同关键词的根因告警信息的聚合,实现应用于流处理引擎和告警中心的日志检测、日志告警,改善了日志分析和监控服务器产品性能,具有使得用户服务中的程序问题或被隐藏安全攻击能够被及时发现和解决的特点,能够提供用户服务持续可用性的保障。
在第三方面,本发明实施例还提供了与前述实施例同一发明构思下的一种日志告警处理系统,可以应用于前述的数据处理设备,该日志处理告警系统包括:
获取模块,用于获取日志数据,并开启第一时间窗口,所述日志数据包括处于调用链路中应用程序的日志数据;
标记模块,用于确定所述第一时间窗口内的标记值集,所述标记值集中标记值是由配置的日志模板的出现次数确定的,所述出现次数是在所述第一时间窗口内,配置的日志模板与获取的日志数据之间匹配成功状态的出现次数;
确定模块,用于从出现匹配成功状态的日志模板中,确定告警日志模板,并以所述告警日志模板生成告警信息,与所述告警日志模板对应的标记值属于所述告警日志模板中配置的数值范围;
发送模块,用于发送所述告警信息至告警中心,以使得所述告警中心基于第二时间窗口内的告警信息确定所述调用链路的根因告警信息。
具体的,获取日志数据,包括:
与中间件服务通信,读取由所述中间件服务存储的日志数据,用于消费所述中间件服务中主题内被日志分类服务写入的日志数据;其中,
所述日志分类服务用于基于由探针服务采集的日志数据和指定的程序标识字段进行日志分类;
所述探针服务用于对所述调用链路中应用程序进行日志数据采集。
具体的,该日志处理系统还包括:
过滤模块,用于确定获取的日志数据中日志级别,对获取的日志数据进行过滤,以保留具有指定日志级别的日志数据;
分组模块,用于对保留的日志数据进行分词,并以分词数量相同的日志数据为一个日志分组。
具体的,该日志处理系统还包括:
计算模块,用于确定配置的日志模板与获取的日志数据之间的相似度;
所述计算模块还用于执行相似度匹配,以确定各日志模板是否出现匹配成功状态;其中,
若存在第i个日志模板与获取的日志数据的相似度高于相似度阈值,则确定所述第i个日志模板出现匹配成功状态,记录所述第i个日志模板出现匹配成功状态的出现次数,i为正整数。
具体的,确定配置的日志模板与获取的日志数据之间的相似度,包括:
将配置的日志模板和获取的日志数据分别转换为数值向量;
计算所述数值向量之间的相似度。
具体的,其中,
所述告警日志模板与获取的日志数据的相似度,大于出现匹配成功状态的日志模板中任意一个日志模板与获取的日志数据的相似度;
所述第一时间窗口是滑动时间窗口。
具体的,该日志处理系统还包括:告警模块。所述告警模块用于:
在第二时间窗口内接收由流处理引擎发送的告警信息;
确定配置的告警模板与接收的告警信息之间的相似度,执行相似度匹配,以从出现匹配成功状态的告警模板中,确定与所述第二时间窗口对应的关键告警模板;
确定与应用程序标识对应的调用链路,所述应用程序标识是从与所述关键告警模板匹配成功的告警信息中提取的;
基于所述调用链路中应用程序之间的调用关系,从所述第二时间窗口内的告警信息确定根因告警信息,并执行日志告警。
具体的,其中,所述关键告警模板与接收的告警信息的相似度,大于出现匹配成功状态的告警模板中,任意一个告警模板与接收的告警信息的相似度。
具体的,其中,
若存在第j个告警模板与接收的告警信息的相似度,高于相似度阈值,则确定所述第j个告警模板出现匹配成功状态,j为正整数;
所述第二时间窗口为滑动时间窗口。
具体的,所述告警模块还用于:
提取所述第二时间窗口内的告警信息中应用程序标识;
将提取的应用程序标识作为应用程序标识集,确定所述应用程序标识集中存在与所述应用程序标识不同的应用程序标识;
确定具有指定应用程序标识的告警信息为根因告警信息;其中,
在所述调用链路中,具有所述指定应用程序标识的应用程序的调用链路位置,处于具有任意一个应用程序标识的应用程序的调用链路位置之前。
具体的,所述告警模块还具体用于:
将所述根因告警信息写入发送队列,并发送所述发送队列中的根因告警信息。
具体的,所述告警模块还具体用于:
记录所述根因告警信息的关键词,并启动与所述关键词对应的延迟时间计时器;
在所述延迟时间计时器计时结束之前,忽略由所述流处理引擎发送的、或所述发送队列中的新增告警信息,所述新增告警信息的关键词与所述根因告警信息的关键词相同;
在所述延迟时间计时器计时结束之后,将所述延迟时间计时器置为初始化状态。
在第四方面,本发明实施例还提供了与前述实施例同一发明构思下的电子设备,该电子设备包括:至少一个处理器;存储器,与所述至少一个处理器连接;其中,所述存储器存储有能被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令实现前述实施例中的方法。请参考图6,提供了一种示例性的电子设备,其内部结构图可以如图6所示,可以是服务器、工控机、终端设备、微控制器等。该电子设备包括通过总线连接的处理器A01、网络接口A02、存储器。其中,该电子设备的处理器A01用于提供计算、指令处理和控制能力。该电子设备的存储器包括内存存储器A03和非易失性的存储介质A04。该非易失性的存储介质A04存储有操作系统B01、计算机程序B02。该内存存储器A03为非易失性存储介质A04中的操作系统B01和计算机程序B02的运行提供环境。该电子设备的网络接口A02用于与网络通信。该计算机程序B02被处理器A01执行时以实现前述实施例中的方法。
在第五方面,本发明实施例还提供了与前述实施例同一发明构思下的机器可读存储介质,存储有机器指令,当所述机器指令在机器上运行时,使得机器执行前述实施例中的方法。
需要说明的是,本说明书所涉及信息采集、分析、使用、传输、存储等方面,应按照法律法规的规定,被用于合法且合理的用途,不在这些合法使用等方面之外共享、泄露或出售,并且依法接受监督管理。
以上结合附图详细描述了本发明实施例的可选实施方式,但是,本发明实施例并不限于上述实施方式中的具体细节,在本发明实施例的技术构思范围内,可以对本发明实施例的技术方案进行多种简单变型,这些简单变型均属于本发明实施例的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明实施例对各种可能的组合方式不再另行说明。
本领域技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得单片机、芯片或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质可以是非瞬时的,存储介质可以包括:U盘、硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、闪存(Flash memory)、磁磁性存储器、光学存储器等各种可以存储程序代码的介质。
此外,本发明实施例的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明实施例的思想,其同样应当视为本发明实施例所公开的内容。
Claims (15)
1.一种日志检测方法,其特征在于,应用于流处理引擎,该日志检测方法包括:
获取日志数据,并开启第一时间窗口,所述日志数据包括处于调用链路中应用程序的日志数据;
确定所述第一时间窗口内的标记值集,所述标记值集中标记值是由配置的日志模板的出现次数确定的,所述出现次数是在所述第一时间窗口内,配置的日志模板与获取的日志数据之间匹配成功状态的出现次数;
从出现匹配成功状态的日志模板中,确定告警日志模板,并以所述告警日志模板生成告警信息,与所述告警日志模板对应的标记值属于所述告警日志模板中配置的数值范围;
发送所述告警信息至告警中心,以使得所述告警中心基于第二时间窗口内的告警信息确定所述调用链路的根因告警信息。
2.根据权利要求1所述的日志检测方法,其特征在于,所述获取日志数据,包括:
与中间件服务通信,读取由所述中间件服务存储的日志数据,用于消费所述中间件服务中主题内被日志分类服务写入的日志数据;其中,
所述日志分类服务用于基于由探针服务采集的日志数据和指定的程序标识字段进行日志分类;
所述探针服务用于对所述调用链路中应用程序进行日志数据采集。
3.根据权利要求1所述的日志检测方法,其特征在于,在所述获取日志数据之后,且在所述确定所述第一时间窗口内的标记值集之前,该日志检测方法还包括:
确定获取的日志数据中日志级别,对获取的日志数据进行过滤,以保留具有指定日志级别的日志数据;
对保留的日志数据进行分词,并以分词数量相同的日志数据为一个日志分组。
4.根据权利要求1所述的日志检测方法,其特征在于,在所述获取日志数据之后,且在所述确定所述第一时间窗口内的标记值集之前,该日志检测方法还包括:
确定配置的日志模板与获取的日志数据之间的相似度;
执行相似度匹配,以确定各日志模板是否出现匹配成功状态;其中,
若存在第i个日志模板与获取的日志数据的相似度高于相似度阈值,则确定所述第i个日志模板出现匹配成功状态,记录所述第i个日志模板出现匹配成功状态的出现次数,i为正整数。
5.根据权利要求4所述的日志检测方法,其特征在于,所述确定配置的日志模板与获取的日志数据之间的相似度,包括:
将配置的日志模板和获取的日志数据分别转换为数值向量;
计算所述数值向量之间的相似度。
6.根据权利要求4所述的日志检测方法,其特征在于,其中,
所述告警日志模板与获取的日志数据的相似度,大于出现匹配成功状态的日志模板中任意一个日志模板与获取的日志数据的相似度;
所述第一时间窗口是滑动时间窗口。
7.一种日志告警方法,其特征在于,应用于告警中心,该日志告警方法包括:
在第二时间窗口内接收由流处理引擎发送的告警信息;
确定配置的告警模板与接收的告警信息之间的相似度,执行相似度匹配,以从出现匹配成功状态的告警模板中,确定与所述第二时间窗口对应的关键告警模板;
确定与应用程序标识对应的调用链路,所述应用程序标识是从与所述关键告警模板匹配成功的告警信息中提取的;
基于所述调用链路中应用程序之间的调用关系,从所述第二时间窗口内的告警信息确定根因告警信息,并执行日志告警。
8.根据权利要求7所述的日志告警方法,其特征在于,
所述关键告警模板与接收的告警信息的相似度,大于出现匹配成功状态的告警模板中,任意一个告警模板与接收的告警信息的相似度。
9.根据权利要求7所述的日志告警方法,其特征在于,该日志告警方法中,
若存在第j个告警模板与接收的告警信息的相似度,高于相似度阈值,则确定所述第j个告警模板出现匹配成功状态,j为正整数;
所述第二时间窗口为滑动时间窗口。
10.根据权利要求7所述的日志告警方法,其特征在于,所述基于所述调用链路中应用程序之间的调用关系,从所述第二时间窗口内的告警信息确定根因告警信息,包括:
提取所述第二时间窗口内的告警信息中应用程序标识;
将提取的应用程序标识作为应用程序标识集,确定所述应用程序标识集中存在与所述应用程序标识不同的应用程序标识;
确定具有指定应用程序标识的告警信息为根因告警信息;其中,
在所述调用链路中,具有所述指定应用程序标识的应用程序的调用链路位置,处于具有任意一个应用程序标识的应用程序的调用链路位置之前。
11.根据权利要求7至10中任意一项所述的日志告警方法,其特征在于,所述执行日志告警,包括:
将所述根因告警信息写入发送队列,并发送所述发送队列中的根因告警信息。
12.根据权利要求11所述的日志告警方法,其特征在于,所述执行日志告警,还包括:
记录所述根因告警信息的关键词,并启动与所述关键词对应的延迟时间计时器;
在所述延迟时间计时器计时结束之前,忽略由所述流处理引擎发送的、或所述发送队列中的新增告警信息,所述新增告警信息的关键词与所述根因告警信息的关键词相同;
在所述延迟时间计时器计时结束之后,将所述延迟时间计时器置为初始化状态。
13.一种日志处理系统,其特征在于,该日志处理系统包括:
获取模块,用于获取日志数据,并开启第一时间窗口,所述日志数据包括处于调用链路中应用程序的日志数据;
标记模块,用于确定所述第一时间窗口内的标记值集,所述标记值集中标记值是由配置的日志模板的出现次数确定的,所述出现次数是在所述第一时间窗口内,配置的日志模板与获取的日志数据之间匹配成功状态的出现次数;
确定模块,用于从出现匹配成功状态的日志模板中,确定告警日志模板,并以所述告警日志模板生成告警信息,与所述告警日志模板对应的标记值属于所述告警日志模板中配置的数值范围;
发送模块,用于发送所述告警信息至告警中心,以使得所述告警中心基于第二时间窗口内的告警信息确定所述调用链路的根因告警信息。
14.一种电子设备,其特征在于,该电子设备包括:
至少一个处理器;
存储器,与所述至少一个处理器连接;
其中,所述存储器存储有能被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令实现权利要求1至12中任意一项权利要求所述的方法。
15.一种机器可读存储介质,存储有机器指令,当所述机器指令在机器上运行时,使得机器执行权利要求1至12中任意一项权利要求所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310765237.8A CN116881100A (zh) | 2023-06-26 | 2023-06-26 | 日志检测方法、日志告警方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310765237.8A CN116881100A (zh) | 2023-06-26 | 2023-06-26 | 日志检测方法、日志告警方法、系统、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116881100A true CN116881100A (zh) | 2023-10-13 |
Family
ID=88268981
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310765237.8A Pending CN116881100A (zh) | 2023-06-26 | 2023-06-26 | 日志检测方法、日志告警方法、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116881100A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117112371A (zh) * | 2023-10-25 | 2023-11-24 | 杭银消费金融股份有限公司 | 一种可观测全链路日志追踪方法及系统 |
-
2023
- 2023-06-26 CN CN202310765237.8A patent/CN116881100A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117112371A (zh) * | 2023-10-25 | 2023-11-24 | 杭银消费金融股份有限公司 | 一种可观测全链路日志追踪方法及系统 |
CN117112371B (zh) * | 2023-10-25 | 2024-01-26 | 杭银消费金融股份有限公司 | 一种可观测全链路日志追踪方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110661659B (zh) | 一种告警方法、装置、系统及电子设备 | |
CN106656536B (zh) | 一种用于处理服务调用信息的方法与设备 | |
CN107729210B (zh) | 分布式服务集群的异常诊断方法和装置 | |
CN111881011A (zh) | 日志管理方法、平台、服务器及存储介质 | |
CN110958221B (zh) | 动态检测xml外部实体注入漏洞的方法及装置 | |
CN114356499A (zh) | Kubernetes集群告警根因分析方法及装置 | |
CN112395156A (zh) | 故障的告警方法和装置、存储介质和电子设备 | |
CN110222513B (zh) | 一种线上活动的异常监测方法、装置及存储介质 | |
CN113505044B (zh) | 数据库告警方法、装置、设备和存储介质 | |
CN116881100A (zh) | 日志检测方法、日志告警方法、系统、设备及存储介质 | |
CN113452607A (zh) | 分布式链路采集的方法、装置、计算设备和存储介质 | |
CN112506954A (zh) | 数据库审计方法和装置 | |
CN117312098B (zh) | 一种日志异常告警方法及装置 | |
CN116048866B (zh) | 基于实时流计算引擎的数据故障检测方法、系统及介质 | |
CN110442439B (zh) | 任务进程处理方法、装置和计算机设备 | |
CN114756401B (zh) | 基于日志的异常节点检测方法、装置、设备及介质 | |
KR20240072451A (ko) | 잠재 공간 기반 로그 모니터링 처리 시스템 및 방법 | |
CN116185856A (zh) | 一种软件系统健康检测方法、装置、存储介质及设备 | |
CN114996080A (zh) | 数据处理方法、装置、设备及存储介质 | |
US20210182453A1 (en) | Application behavior identification | |
CN114629786A (zh) | 日志实时分析方法、装置、存储介质及系统 | |
CN115941438B (zh) | 故障信息的处理方法及装置、存储介质及电子装置 | |
CN116431872B (zh) | 可观测系统及基于可观测系统的服务观测方法 | |
CN113900898B (zh) | 一种数据处理系统、设备及介质 | |
CN110069416B (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 |