CN114503081A - 计算环境中增强的异常检测 - Google Patents
计算环境中增强的异常检测 Download PDFInfo
- Publication number
- CN114503081A CN114503081A CN202080069864.2A CN202080069864A CN114503081A CN 114503081 A CN114503081 A CN 114503081A CN 202080069864 A CN202080069864 A CN 202080069864A CN 114503081 A CN114503081 A CN 114503081A
- Authority
- CN
- China
- Prior art keywords
- sequence
- log
- vector
- anomaly
- computing device
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0706—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 the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0709—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 the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0751—Error or fault detection not based on redundancy
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0751—Error or fault detection not based on redundancy
- G06F11/0754—Error or fault detection not based on redundancy by exceeding limits
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0766—Error or fault reporting or storing
- G06F11/0775—Content or structure details of the error report, e.g. specific table structure, specific error fields
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/069—Management of faults, events, alarms or notifications using logs of notifications; Post-processing of notifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/83—Indexing scheme relating to error detection, to error correction, and to monitoring the solution involving signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0631—Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/147—Network analysis or design for predicting network behaviour
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/20—Arrangements for monitoring or testing data switching networks the monitoring system or the monitored elements being virtualised, abstracted or software-defined entities, e.g. SDN or NFV
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
Abstract
异常服务从计算环境中的节点接收日志数据,其包括指示由节点产生的日志消息的信息序列。异常服务识别信息序列中代表日志消息的非异常块的主导模式。在识别出主导模式后,服务能够从日志数据中提取非异常块,以揭示不符合主导模式的异常块。然后,服务可以基于异常块生成异常向量,异常块能够被分发到节点以检测异常。
Description
背景技术
现代信息服务处理大量数据,并且在该处理中生成大量日志数据。日志数据由运行时的代码产生,以提供对服务的一个或多个组件的状态的记录。在故障排除或以其它方式维护服务时,日志数据可以是有用的。日志数据的示例包括日志语句和操作度量,两者都可以被分析,以预测异常状况或事件,诸如处理故障、服务器故障和计算机硬件故障。
可以通过分析语句或度量中与过去的异常相关的模式的大量日志数据来检测和预测异常。然后可以针对数据部署模式,使得数据中给定模式的存在触发减轻动作或警报。遗憾的是,这种模式提取需要大量的日志数据,这对于运输和处理来说都是非常昂贵的。
事实上,为了成功提取有用的模式,需要从边缘发送到中央服务器的日志数据的量可以容易地接近以相同方向发送的正常操作数据的量-假设存在带宽这样做。此外,在合理的时间范围内查找模式所需的计算量可能超过首先分配给正常操作的计算量。迄今为止,这些限制阻碍了有效异常分析的开发和部署。
发明内容
本文公开了改进计算环境中的异常状况检测和预测的技术。在各种实施方式中,异常服务从计算环境中的边缘节点接收日志数据,其包括指示由节点产生的日志消息的信息序列。异常服务识别代表日志消息的非异常块的信息序列中的主导模式。在识别出主导模式后,服务能够从日志数据中提取非异常块以揭示不符合主导模式的异常块。然后,服务可以基于异常块生成异常向量,异常块可以被分发到边缘节点以检测异常。
在相同或其它实施方式中,计算环境中的一个或多个节点接收异常向量。当事件在计算环境中发生时产生日志消息,响应于此,节点生成对应的散列值序列。基于散列值序列产生序列向量,其可以与异常向量进行比较或以其它方式针对异常向量进行评估,以确定日志消息是否指示一个或多个异常事件的发生。
提供本概述是为了以简化的形式介绍一些概念,这些概念将在下面的技术公开中进一步描述。可以理解的是,本概述不旨在识别所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。
附图说明
参考以下附图可以更好地理解本公开的许多方面。虽然结合这些附图描述了若干实施方式,但是本公开不限于本文公开的实施方式。相反,其意图是涵盖所有替代方案、修改和等同物。
图1图示了实现中的操作体系架构。
图2图示了实现中的日志产生处理。
图3图示了实现中的异常块提取处理。
图4图示了实现中的异常检测处理。
图5图示了实现中的操作场景。
图6图示了实现中的日志产生场景。
图7图示了实现中的异常块提取场景。
图8进一步图示了异常块提取场景。
图9A-9C图示了实现中的异常检测场景。
图10图示了适用于实现本文公开的增强异常检测技术的计算系统,包括附图中示出并在下面具体实施方式中讨论的任何体系架构、处理、操作场景和操作序列。
具体实施方式
本文公开的解决方案涉及计算环境中低概率行为(例如,异常行为)的基于块的检测和预测。异常服务从一个或多个计算环境中的边缘节点接收日志数据,其中边缘节点可以远离服务和/或相对于服务共同定位。日志数据包括指示由节点在运行时产生的日志消息的信息序列。
异常服务识别代表日志消息的非异常块的信息序列中的主导模式。服务从日志数据中提取或以其它方式忽略非异常块,以揭示不符合主导模式的异常(或低概率)块。然后,服务基于异常块生成异常向量,并将它们分发给节点。
(一个或多个)计算环境中的一个或多个节点接收异常向量并使用它们来发现日志消息的流中的异常行为。给定节点基于与计算环境中的事件相关联的日志消息的序列生成散列值的序列。节点还基于散列值生成序列向量。序列向量包括例如通过位置与可能散列值集合对应的数字。
然后,节点执行序列向量与异常向量集合的比较,以确定散列值的至少一部分是否指示一个或多个异常事件的发生。如果是,那么可以采取一个或多个动作来减轻通过比较预测出的有问题或异常事件的风险。
返回去参考异常服务,服务可以通过在信息序列内找到潜在模式并对其进行评分来识别主导模式。然后可以基于评分来选择主导模式。在一些场景中,评分功能可以用于相对于在信息序列内出现较不频繁的潜在模式的不同子集提升在信息序列内频繁出现的潜在模式的子集。针对潜在模式中的每个潜在模式,评分功能基于当利用潜在模式的压缩表示进行编码时的信息序列的描述长度来确定潜在模式的相对优势。
在一些实施方式中,信息序列包括日志代码序列,并且每个日志代码可以是可能的散列值的符号表示。在这种情况下,日志数据还将包括将每个唯一日志代码映射到可能散列值集合中的不同散列值的码本或字典。
在各种实施方式中,每个异常向量包括一串数字,这些数字通过位置与可能日志代码集合对应。异常服务设置串中的每个数字的值,以指示由异常向量表示的异常块中的可能日志代码中的对应日志代码的存在或不存在。
再次参考客户端节点,给定节点通过为数字串的每个数字计算加权值来生成序列向量。节点通过将加权因子乘以二进制值来计算加权值,以获得加权值。二进制值指示散列值的序列是否包括与串中给定数字的位置对应的散列值,而加权因子指示日志消息与其它日志消息的相对重要性。
在一些实施方式中,节点通过将余弦相似度函数应用于序列向量与异常向量集合中的每个异常向量的内点积来执行序列向量与异常向量集合的比较。可以将结果进行比较,以确定序列向量是否与异常向量中的一个或多个充分匹配,以指示计算环境的异常状态。
可以认识到的是,本文公开的异常检测技术允许更高效地并且以较少的操作开销检测偏离标准、正常或预期的事件。例如,由客户端节点发送到异常服务的日志代码比完整日志语句本身需要更少的带宽,而将异常向量分发到边缘允许在其源处检测到异常。
可以进一步认识到的是,还可以预测和/或检测低概率事件-不仅仅是异常事件。在这样的实施方式中,服务从计算环境中的节点接收日志数据,其中日志数据包括指示由节点产生的日志消息的信息序列。服务在信息序列中识别代表日志消息的高概率块的主导模式,并基于主导模式从日志数据中提取高概率块,从而揭示不符合主导模式的低概率块。
然后,服务基于至少低概率块生成低概率向量,并将数据分发到节点以检测低概率事件。然后,节点可以针对新的日志消息流和其它此类数据来部署低概率向量(包括在数据中)。
转到附图,图1图示了实现中的操作环境100。操作体系架构100包括与计算环境101和计算环境111通信的异常服务110。计算环境101包括计算节点103和计算节点105所代表的一个或多个边缘计算节点。计算环境111也包括计算节点113和计算节点115所代表的一个或多个计算节点。异常服务110从计算环境101和111接收日志数据,并将异常向量发送到计算环境101和111。异常服务110以及计算环境101和111可以用图10中的计算系统1001所代表的一个或多个服务器计算机实现。
在操作中,计算环境101和111采用日志产生处理200来生成用于异常服务110的日志数据。异常服务110相对于日志数据采用提取处理300以提取异常块并生成稍后供给计算环境101和111的异常向量。然后,计算环境101和111采用检测处理400来检测、预测或以其它方式识别它们相应环境中的异常状况。
日志产生处理200可以在任何软件应用、模块、组件或计算环境101和111的其它此类程序元素的上下文中在程序指令中实现。例如,日志产生处理200可以在计算环境101中的计算节点103和105的上下文中以及在计算环境111中的计算节点113和115的上下文中实现。除了它们相应的计算节点之外或代替它们相应的计算节点,日志产生处理200还可以在计算环境101和111的任何其它计算元件上实现。程序指令指示(一个或多个)底层物理或虚拟计算系统如下操作,在表面上参考图2中所示的步骤。
首先,日志产生处理200指示(一个或多个)计算系统识别与给定计算环境的操作状态、应用、服务、处理或任何其它方面有关的日志消息或语句的流(步骤201)。示例包括描述处理开始、处理结束、处理失败、数据库的状态、应用的状态或可以被记录的任何其它事件的日志语句。日志消息可以由生成消息的相同或不同组件来识别。
接下来,日志产生处理200指示(一个或多个)计算系统生成消息的编码版本,下文中称为日志代码(步骤203)。例如,日志代码可以是由散列函数产生的散列值,该散列函数将日志语句作为输入并产生散列值作为输出。(一个或多个)计算系统可以在对日志消息进行散列之前修改日志消息,例如,通过用通用占位符代替消息的唯一识别部分,诸如服务器名称或处理标识符。这种技术将允许散列函数为日志消息产生相同的散列值,这些日志消息如果没有它们的唯一标识符的话将是相同的。
在一些场景中,可以通过用不同的符号替换由散列函数产生的各种散列值中的每一个来进一步编码和/或压缩日志代码。例如,散列函数可以输出与给定日志语句对应的数字串。可以用较短的字母数字符号替换数字串,从而减小日志代码的尺寸。
最后,日志产生处理200指示(一个或多个)计算系统将日志数据发送到包括日志代码的异常服务(例如,异常服务110)(步骤205)。字典可以包括有日志数据,该日志数据将各种日志代码以其通用形式映射到它们相应的日志语句。在日志代码是散列值的压缩表示的场景中,字典可以将压缩的表示映射到日志语句和/或它们对应的散列值。
图3中所示的提取处理300可以在任何软件应用、模块、组件或包括异常服务110的其它此类程序元素的上下文中在程序指令中实现。程序指令指示异常服务110的一个或多个底层物理或虚拟计算系统如下操作,在表面上参考图3中所示的步骤。
提取处理300开始于指示(一个或多个)计算系统从计算节点接收日志数据(步骤301)。日志数据包括信息序列,诸如由计算节点生成并加时间戳的日志代码。
接下来,提取处理300指示(一个或多个)计算系统识别信息序列中的主导模式(步骤303)。主导模式的示例包括相互连续的日志代码的模式,其在信息序列内重复出现或者具有超过其它较不主导模式的频率的某个频率。例如,日志数据的快照可以包括一千个日志代码,其中三个连续日志代码的块重复数百次。这种模式可以被认为是主导模式,因此可以被认为是非异常的。即,主导模式可能代表指示正常操作状态的日志消息模式,而不是保证警报或其它减轻的异常状态。
图3中的步骤303A-303D表示用于识别信息序列中的主导模式的子处理,但是其它技术是可能的并且在本公开的范围内。在步骤303A处,提取处理300指示(一个或多个)计算系统识别信息序列内的根块。根块可以是例如相对于任何其它日志代码在信息序列中出现最多(或最频繁)的日志代码。
接下来,提取处理300指示(一个或多个)计算系统在序列中其发生的每个位置处将根块生长至少一个代码或符号(步骤303B)并且为新根块计算元数据长度(MDL)得分(步骤303C)。通过用符号替换序列中每个位置处的新根块、然后计数需要多少元数据来描述被修改的信息序列来计算MDL得分。在信息序列已经包括符号而不是散列值本身的情况下,替换新根块的符号将代替构成新根块的连续符号的块。
然后,提取处理300在扩展根块之前继续将MDL得分的新值与MDL得分的先前值进行比较(步骤303D)。如果MDL得分小于先前的MDL得分,那么子处理前进到步骤303B,以在序列中的每个可能位置处使根块生长。如果根块不能再扩展,那么处理返回到步骤303A以识别下一个根块。
如果MDL得分不小于先前的MDL得分,那么处理也返回到步骤303A以识别下一个根块。如果不存在更多要识别和生长的根块,那么子处理将得到的非异常块返回到主处理。可替代地,子处理可以在找到阈值数量的非异常块后返回到主处理,即使可能存在一个或多个根块。
在识别出非异常块之后,提取处理300指示(一个或多个)计算系统从信息序列中提取非异常块,从而揭示可以被认为是异常的剩余块(步骤305)。然后,提取处理300指示(一个或多个)计算系统基于异常块生成异常向量(步骤307)并将向量分发到计算环境,以促进它们检测异常状况。
在一些实施方式中,可以将所揭示的块提交给标注和审查处理,以确认给定块表示异常。标注和审查处理可由人类操作员手动执行、自主执行,或通过手动和自主审查的组合执行。在其它实施方式中,不需要审查。在采用审查处理的情况下,提取处理300用于大大减少要手动审查、自主审查或手动和自主审查的日志语句的量。可选地,可以将审查处理的结果作为反馈提供给提取处理300,以进一步增强其识别异常块的能力。被揭示为不是非异常但在审查阶段期间作为非异常被拒绝的块可以被重新分类为非异常的并且被识别到提取处理300以供将来使用。
可以通过采用检测处理400来识别异常状况。检测处理400可以在任何软件应用、模块、组件或计算环境101和111的其它此类程序元素的上下文中在程序指令中实现。例如,检测处理400可以在计算环境101中的计算节点103和105的上下文中以及在计算环境111中的计算节点113和115的上下文中实现。除了它们相应的计算节点之外或代替它们相应的计算节点,检测处理400还可以在计算环境101和111的任何其它计算元件上实现。程序指令指示(一个或多个)底层物理或虚拟计算系统如下操作,在表面上参考图4中所示的步骤。
检测处理400首先指示(一个或多个)计算系统基于在运行时产生的日志消息生成散列值(步骤401)。然后,处理指示(一个或多个)计算系统基于散列值生成序列向量(步骤403)。序列向量是从日志消息产生的散列值序列的向量化版本。换句话说,散列值被置于向量化形式。在一些场景中,序列向量可以直接从日志消息而不是散列值或者从散列值的压缩表示产生。
在生成序列向量后,检测处理400指示(一个或多个)计算系统将序列向量与由异常服务提供的异常向量集合中的每个异常向量进行比较(步骤405)。在步骤407处,检测处理400指示(一个或多个)计算系统确定序列向量是否与异常向量中的一个或多个匹配。如果是,那么检测到异常(步骤409)。如果不是,那么处理对下一个信息序列继续。
不需要针对待识别的异常进行序列向量与异常向量之间的确切匹配。更确切地说,近似匹配可能足以被视为异常。在一些场景中可以采用相似度函数来确定异常向量中的哪一个与序列向量充分匹配。例如,可以应用余弦相似度函数来确定异常向量是否与序列向量充分匹配。此外,可以认识到的是,检测处理400在生成新的日志消息时连续进行。
图5包括简要操作场景500以图示示例中的操作序列。在操作中,计算环境101生成日志代码并将日志数据中的日志代码发送到异常服务110。异常服务110还从计算环境111接收日志数据。异常服务110处理日志数据中的日志代码以识别异常块,利用该异常块生成异常向量。
异常向量由异常服务110发送到计算环境101和计算环境111。相应的计算环境可以针对日志消息的流使用异常向量来检测流中的异常。以这种方式,可以检测和/或预测各种异常事件,诸如服务器故障、处理故障等。
返回去参考图1,操作场景120、130和140图示了日志产生处理200、提取处理300和检测处理400的示例实施方式。可以认识到的是,虽然关于计算环境101图示了操作方案120,但是也可以在计算环境111的上下文中发生。同样,关于计算环境111描绘了操作场景140,但是也可以在计算环境101的上下文中发生操作场景140。
在操作场景120中,计算环境101中的一个或多个计算节点生成日志消息的流121。流中的日志由它们的行号标识,诸如行x-1、行x和行x+1。在计算环境101中运行的日志产生处理对日志语句执行编码处理123,以生成日志代码。例如,处理可以通过用占位符信息替换特定于服务器或处理的信息来对每个日志语句进行匿名化。然后可以对匿名日志语句进行散列以产生散列值,并且将散列值进一步编码为散列值的符号、字或其它此类压缩表示。
作为示例,一旦匿名化,k个不同日志语句的总数就可以是可能的。因此,诸如散列之类的确定性编码算法将为每个相同的输入语句产生相同的输出代码。因此,statement_1将被编码为code_1,statement_2将被编码为code_2,依此类推直到statement_k。然后将代码进一步编码为符号或字。例如,code_1映射到alpha,code_2映射到bravo,依此类推直到code_k,但是任何符号都是可能的。
然后,将编码的流125从计算环境101发送到异常服务110。这个示例中的编码流125包括至少一个连续符号块–echo、alpha和bravo-分别追溯到code_4、code_2和code_1,它们本身分别追溯到匿名的statement_4、statement_1和statement_2。编码流可以与其它日志数据(诸如字典)一起发送,其中字典提供符号到代码以及可能到匿名语句的映射。
在操作场景130中,异常服务110接收由计算环境101生成的日志数据。异常服务110还可以从计算环境111接收日志数据。日志数据131表示可以从计算环境101、计算环境111或两者接收的数据。
日志数据包括异常服务110为异常块133挖掘的日志代码流。例如,异常服务110识别包括日志代码alpha、bravo、delta的非异常块。出于示例性目的,假设块以足够的频率(例如,三次)发生,使得它可以被认为是主导块。
移除(一个或多个)主导块产生异常块134(echo)和异常块135(lima、zulu)。可以可选地将揭示的块提交给标注和审查处理,以确认给定的块表示异常。标注和审查处理可以由人类操作员手动执行、自主执行,或通过手动和自主审查的组合执行。
异常服务110继续基于所揭示的异常块生成异常向量。异常块134导致异常向量138,而异常块133导致异常向量139。然后,异常服务110可以将异常向量发送到计算环境101和111中的一个或两个,以在异常检测/预测的推进中部署。
在操作场景130中,计算环境111已经接收到由异常服务110产生的异常向量。然后,当产生新的日志语句时,计算环境111能够对日志流进行向量化并将其与异常向量进行比较,以确定是否存在异常状况。
日志流141表示由计算环境111中的一个或多个元素产生的日志流。从日志流141产生流向量143,以便可以对异常向量145进行比较。可以基于比较的结果确定系统状态147。如果流向量143与异常向量145之一之间存在匹配,那么认为存在异常状态或状况。如果不是,那么系统状态被认为是正常的或至少是非异常的。
图6图示了日志产生处理的更详细示例中的操作场景600。在操作中,计算系统生成与信息服务的状态相关的日志消息流601。日志流的每一行描述了关于服务的一个或多个元素发生的事件。例如,line_1指示已起动新处理。该处理由处理ID识别,并且在其上起动处理的元件由主机ID和客户端ID识别。Line_2描述了与line_1不同的在同一计算元件上的处理的开始。
然后,在line_3,描述不同的事件。line_2中描述的处理由line_2中描述的元件组合重启。Line_4描述由于网络断开而导致失败的相同处理。最后,line_5描述line_4中描述的相同处理的重启失败。
可以认识到的是,所有五个示例性日志消息都属于相同的主机/客户端组合,但是引用了两个不同的处理。主机标识符从计算环境中的其它机器中唯一地识别机器,而客户端标识符从机器上的其它客户端中唯一地标识客户端。处理标识符还唯一地识别与机器上的其它处理相关的处理。但是,标识符会使得难以从日志语句中检测和/或预测异常状况,因为它们使每个语句与每个其它语句完全不同。(如本文所提到的,术语“机器”可以表示物理计算机、虚拟机、容器或任何其它类型的计算资源、变体或其组合。)
为了减轻这些影响,日志产生处理(例如,200)从日志消息的副本中移除处理、机器和客户端标识符,并用占位符信息代替它们。可以关于由给定计算环境中的所有其它机器生成的所有日志消息执行这个步骤,使得日志消息的聚合流被清除掉这样的区别标识符。标识符完整的日志消息的原始版本可以被保留用于其它目的。
经修改的日志流603提供了一个示例,其中行1-5中的处理标识符已被首字母缩略词“PH”代替,但是任何字或符号都是可能的。同样,主机和客户端标识符的组合已被相同的首字母缩略词代替。总的来说,对所有机器上的日志语句进行匿名化或扁平化可以提高它们对异常检测和预测的有用性。
然后将经修改的日志流603馈送到散列函数605。可以在计算系统上的程序指令中实现的散列函数将每一行作为输入,以生成对应的散列值。由于散列函数是确定性的,因此相同的输入总是产生相同的输出。与经修改的日志消息相结合,这个特征可以为最初不同但在修改后相同的多个日志语句产生相同的散列值。例如,原始日志流的line_1和line_2因其处理ID而不同,但在将其处理ID(和机器/客户端ID)替换为占位符之后,它们是相同的。因此,由散列函数605产生的散列值是相同的(例如hash_1)。由line_5的散列值产生了相同的结果,但是line_3和line_4的散列值不同(hash_2,hash_3),因为它们相应的日志语句在占位符替换之后与其它语句不同。
然后,可以将由散列函数605产生的编码的日志流607发送到异常服务(例如,110)。编码的日志流607包括与其实际值相对的编码/压缩形式(例如hash_1、hash_2)的散列值。还可以向异常服务提供用于解码/解压缩符号的字典。可选地,可以将实际散列值本身发送到异常服务。
图7图示了实现中的异常块提取处理(例如,300)的更详细示例中的操作场景700。在操作中,异常服务从一个或多个计算环境接收编码的日志流701所代表的一个或多个编码的日志流。出于示例性目的,编码的日志流701包括五行,每行具有包括如关于图6所讨论的散列值的符号/编码表示的日志代码。
异常服务将日志代码馈送到块提取功能703中,块提取功能703可以在服务的(一个或多个)计算系统上的程序指令中实现。块提取功能703检查日志代码序列以识别比其它代码更频繁出现的连续代码块。例如,出于示例性目的,假设该功能发现在被检查的日志代码序列中出现200次的候选块705。为了比较的目的,还发现了候选块707,但它仅在日志代码序列中出现一次。
然后将候选块及其相应的计数馈送到标注功能709,标注功能709也可以在服务的(一个或多个)计算系统上的程序指令中实现。标注功能709至少部分地基于其计数来确定是将给定候选块分类为非异常块还是异常块。候选块705被分类为非异常块711,因此从序列中移除。候选块707被分类为异常块712,并作为输入馈送到向量化功能713,向量化功能713对包含在异常块中的(一个或多个)日志代码进行向量化。
为了对异常块712进行向量化,向量化功能713识别哪些日志代码包括在块中。向量化功能713也可以在服务的(一个或多个)计算系统上的程序指令中实现。在这个示例中,块中仅包括一个日志代码(hash_3)。然后,向量化功能713将值供给异常向量715中与块中表示的日志代码对应的位置。例如,异常向量715中从右到左的第三位置被供给值“1”以指示异常块712包括日志代码“hash_3”。出于示例性目的,假设异常块还包括日志代码“hash_5”,然后异常向量中的第五位置将被供给值“1”。向量中的剩余位置被供给值“0”以指示块中不存在任何对应的日志代码。
图8图示了实现中的块提取处理的示例场景800。在示例场景800中,处理表801从上到下逐步通过在日志序列中识别异常块的示例中的操作次序。
处理表801的第一列描述了字母对散列码的简写替换。替换不需要实际执行,而是仅仅出于解释目的而示出。日志代码hash_1由A表示,hash_2由B表示,依此类推。出于示例性目的,假设在编码的日志流中存在二十六个唯一的日志代码,但是任何数量的日志代码都是可能的。
接下来,处理表801指示正在评估的当前根块以及日志序列中的字符和/或符号。在开始时,分析序列以找到最频繁的日志代码以设置为根块(r-block)的初始值。使用A作为根块,根块的元数据长度(MDL)得分最初是二十三。
因此,评估继续使根块A在它在序列中的所有位置处生长一个符号。因此,发现第一个潜在根块(p区块)是AB。连续符号AB在序列中的所有位置处被符号α代替,并且MDL得分被计算为十九。因为潜在块的MDL得分小于根块的MDL得分,所以评估继续用潜在块代替根块。
因此,根块变为α,并且评估尝试在根块在序列中的所有位置处使根块生长。在可以从根块生长多个潜在块的情况下,评估选择最频繁的潜在块。例如,α可以通过在四个位置处添加C并在三个位置处添加D来生长。因此,评估继续前进到αC作为下一个潜在块,并将在其其它位置的α恢复为其原始字符集AB。然后,潜在块αC在其在序列中的所有位置处被用符号λ代替,并十七的MDL得分被计算出。因为潜在块λ的MDL得分小于根块α的MDL得分,所以评估继续用潜在块代替根块。
然后,评估尝试在根块所有位置处使根块生长。但是,根块λ不能在序列中的任何位置生长。因此,根块λ被认为是非异常块,并且可以从序列中移除其字符或值。因此,根块恢复到其先前的值α并且评估再次开始,但是在所有位置处用λ替换ABC。
在根块被设置为α的情况下,评估尝试在其所有位置处使根块生长并且识别新的潜在块δ=αD或ABD。然后,潜在块ABD在其在序列中的所有位置处被用符号δ代替,并且十五的MDL得分被计算出。因为潜在块δ的MDL得分小于根块α的MDL得分,所以评估继续用潜在块代替根块。
然后,评估尝试在其所有位置处使根块δ生长,并且在确定其不能生长后,继续识别下一个根块。下一个根块是Y,其MDL得分为14。通过添加Z可以在仅一个位置处使Y生长,并且潜在块YZ的MDL得分是16。因为16大于14,所以YZ作为潜在根块失败,因此被揭示为异常块。
然后可以将异常块向量化并分发给客户端,以便检测和/或预测异常操作状态。图9A-9C图示了一种这样的场景,范围从异常服务中的异常向量的产生到向量在客户端上的部署。在图9A中所示的场景的900A的第一部分中,异常服务已经从由一个或多个计算环境中的一个或多个客户端产生的日志代码流中识别出异常块901。异常块901包括块903、块905和块907。块903包括由hash_1和hash_5表示的两个日志代码。块905包括仅由hash_3表示的一个日志代码。块907包括由hash_3和hash_n表示的两个日志代码。
向量表909的最左列列出了从hash_1到hash-n的所有可能的n个散列码。最上面的行识别从第一个块b_1到第k个块b_k的异常块。由给定散列码/块组合定义的每个单元格包含指示块是否包括散列码的值。零指示该块不包括散列码,而一指示该块确实包括散列码。关于异常块901,块603在向量表909中由hash_1和b_1定义的单元格处以及由hash_5和b_1定义的单元格处的一定义。列b_1中剩余的单元格具有零值,因为块903不包含其它散列码。
以相同的方式填充异常块b_2和b_3的向量值。即,块905在向量表909中由在hash_3和b_2定义的单元格处的一和在所有其它位置处的零来定义。块907在向量表909中由hash_3和b_3定义的单元格处以及由hash_n和b_3定义的单元格处的一定义。列b_3中的剩余单元格具有零值,因为块907不包含其它散列码。
得到的异常向量911是从右到左与向量表909中的每个块的单元格中的值对应的位置处的二进制值串。例如,与块903对应的异常向量913包括串0...0010001。最右侧位置中的“1”与由hash_1和b_1定义的单元格中的值对应,而右起第五个位置中的“1”与由hash_5和b_1定义的单元格中的值对应。异常向量913中的所有其它值都是“0”。
与块905对应的异常向量915遵循相同的惯例并且包括串0...0000100。右起第三个位置中的“1”与由hash_3和b_2定义的单元格中的值对应,而所有其它值都为零。
与块907对应的异常向量917包括串1...0000100。最左侧位置中的“1”与由hash_n和b_3定义的单元格中的值对应,而从右侧起第三个位置中的“1”与由hash_3和b_3定义的单元格中的值对应。异常向量917中的所有其它值都是“0”。
异常服务将向量分发到一个或多个计算环境以促进异常检测和预测,如图9A-9C所描述的操作场景的第二部分900B中所示。
图9B包括表示由客户端计算系统生成的日志代码流的日志流921。这个示例中的日志代码是散列值,客户端将其输入到向量化功能923。向量化功能对日志流921进行向量化以产生向量流925。与图9A中所示的向量化处理类似,可以通过在向量中与由日志代码表示的散列值对应的位置处指示“1”来对每个日志代码进行向量化。
作为示例,以粗体示出日志流921中间的日志代码集合,并且在向量流925中提供它们的对应向量。根据该惯例,由hash_4表示的日志代码转化为从右侧起第四个位置处具有“1”并且所有其它位置都为零的向量。因此,由hash_3表示的日志代码转化为从右侧起第三个位置处具有“1”并且所有其它位置都为零的向量。由hash_2表示的日志代码转化为从右侧起第二个位置处具有“1”并且所有其它位置都为零的向量。最后,由hash_n表示的日志代码转化为从右侧起第n个位置具有“1”并且所有其它位置都为零的向量。
客户端将向量流925输入到加权函数927中。权重函数927将加权的向量928应用于向量流925中的每个单独向量。加权的向量928包括在向量中的每个位置处的0和1之间的权重值,其与向量流925的向量中的位置对应。例如,加权的向量928的位置中的“1”指示向量流925中的对应位置应当被赋予其全值,而加权的向量的位置中的“.5”指示向量流925中的对应位置处于其全值的一半。
加权函数927产生加权的向量流929,其是加权的向量928中的每个位置与其在向量流925的每个向量中的对应位置的乘积。作为示例,向量流925和加权的向量流929中的中间向量以粗体示出,以突出显示给予hash_3的权重值(.7)乘以中间向量中的hash_3位置处的值(1)的乘积。作为另一个示例,来自向量流929加权的向量流929中的底部的第二向量以粗体示出,以突出显示给予加权的向量928中的hash_2的零权重。
最后,图9C图示了图9A-9C中所示的操作场景的最后部分900C。在图9C中,由异常服务产生的异常向量911已经分发给它们相应的计算环境中的客户端。每个客户端生成由加权的向量流929表示的其自己的向量流。
比较函数931接收异常向量911和加权的向量流929作为输入,并且针对异常向量911中的每个向量执行加权的向量流929中的每个向量的比较计算。比较函数可以是例如余弦相似函数,其评估每个异常向量乘以向量流中的每个向量的点积。然后比较函数分析计算的结果以确定加权的异常向量911之一是否包括与异常向量911中的一个或多个的充分匹配。如果是,那么认为存在或预测到异常状况。如果不是,那么存在正常状态。
图10图示了计算系统1001,其表示可以在其中实现本文公开的各种处理、程序、服务和场景的任何系统或系统集合。计算系统1001的示例包括但不限于服务器计算机、路由器、web服务器、云计算平台和数据中心装备,以及任何其它类型的物理或虚拟服务器机器、物理或虚拟路由器、容器,以及其任何变体或组合。
计算系统1001可以被实现为单个装置、系统或设备,或者可以以分布式方式被实现为多个装置、系统或设备。计算系统1001包括但不限于处理系统1002、存储系统1003、软件1005、通信接口系统1007和用户接口系统1009(可选)。处理系统1002可操作地与存储系统1003、通信接口系统1007和用户接口系统1009耦合。
处理系统1002从存储系统1003加载并执行软件1005。软件1005包括并实现异常处理1006,其表示关于前述附图所讨论的处理,包括日志产生处理200、提取处理300和检测处理400。当由处理系统1002执行以提供基于块的异常检测和预测时,软件1005指示处理系统1002如本文针对至少在前述实施方式中讨论的各种处理、操作场景和序列所描述的那样操作。计算系统1001可以可选地包括为简洁起见而未讨论的附加设备、特征或功能。
仍然参考图10,处理系统1002可以包括微处理器以及从存储系统1003检索和执行软件1005的其它电路系统。处理系统1002可以在单个处理设备内实现,但也可以分布在协作执行程序指令的多个处理设备或子系统上。处理系统1002的示例包括通用中央处理单元、图形处理单元、专用处理器和逻辑设备,以及任何其它类型的处理设备、其组合或变体。
存储系统1003可以包括可由处理系统1002读取并且能够存储软件1005的任何计算机可读存储介质。存储系统1003可以包括以用于存储信息(诸如计算机可读指令、数据结构、程序模块或其它数据)的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。存储介质的示例包括随机存取存储器、只读存储器、磁盘、光盘、光学介质、闪存、虚拟存储器和非虚拟存储器、磁带盒、磁带、磁盘存储装置或其它磁存储设备,或任何其它合适的存储介质。在任何情况下,计算机可读存储介质都不是传播信号。
除了计算机可读存储介质之外,在一些实施方式中,存储系统1003还可以包括计算机可读通信介质,在其上可以在内部或外部传送软件1005中的至少一些。存储系统1003可以被实现为单个存储设备,但也可以跨多个存储设备或子系统实现,这些存储设备或子系统相对于彼此共同定位或分布。存储系统1003可以包括能够与处理系统1002或可能的其它系统通信的附加元件,诸如控制器。
软件1005(包括异常处理1006)可以在程序指令中实现,并且除了其它功能,尤其可以在由处理系统1002执行时指示处理系统1002如关于本文说明的各种操作场景、序列和处理所描述的那样操作。例如,软件1005可以包括用于实现如本文所述的日志产生处理、异常块提取处理和异常检测处理的程序指令。
特别地,程序指令可以包括协作或以其它方式交互以执行本文描述的各种处理和操作场景的各种组件或模块。各种组件或模块可以在经编译或解释的指令中实施,或者在指令的一些其它变体或组合中实施。各种组件或模块可以以同步或异步方式、串行或并行、在单线程环境或多线程中或者根据任何其它合适的执行范例、变体或其组合来执行。软件1005可以包括附加处理、程序或组件,诸如操作系统软件、虚拟化软件或其它应用软件。软件1005还可以包括可由处理系统1002执行的固件或某种其它形式的机器可读处理指令。
一般而言,在被加载到处理系统1002中并且被执行时,软件1005可以将(计算系统1001表示的)合适的装置、系统或设备从通用计算系统整体变换为定制为提供如本文所述的基于块的异常处理的专用计算系统。实际上,存储系统1003上的编码软件1005可以变换存储系统1003的物理结构。物理结构的具体变换可以取决于本描述的不同实施方式中的各种因素。这些因素的示例可以包括但不限于用于实现存储系统1003的存储介质的技术以及计算机存储介质是否被表征为主存储或二级存储装置,以及其它因素。
例如,如果计算机可读存储介质被实现为基于半导体的存储器,那么软件1005可以在程序指令在其中被编码时变换半导体存储器的物理状态,诸如通过变换晶体管、电容器或构成半导体存储器的其它分立电路元件的状态。对于磁性或光学介质,可以发生类似的变换。在不脱离本说明书的范围的情况下,物理介质的其它变换是可能的,提供前述示例仅仅是为了便于本讨论。
通信接口系统1007可以包括通信连接和设备,其允许通过通信网络(未示出)与其它计算系统(未示出)通信。一起允许系统间通信的连接和设备的示例可以包括网络接口卡、天线、功率放大器、RF电路、收发器和其它通信电路系统。连接和设备可以通过通信介质进行通信,以与其它计算系统或系统的网络交换通信,诸如金属、玻璃、空气或任何其它合适的通信介质。上面提到的介质、连接和设备是众所周知的并且这里不需要详细讨论。
计算系统1001与其它计算系统(未示出)之间的通信可以在一个或多个通信网络上并根据各种通信协议、协议的组合或其变体发生。示例包括内联网、互联网、因特网、局域网、广域网、无线网络、有线网络、虚拟网络、软件定义网络、数据中心总线和背板,或任何其它类型的网络、网络的组合或其变体。上面提到的通信网络和协议是众所周知的并且这里不需要详细讨论。
如所属领域的技术人员将认识到的,本发明的各方面可以被实施为系统、方法或计算机程序产品。因而,本发明的各方面可以采取完全硬件实施例、完全软件实施例(包括固件、常驻软件、微代码等)的形式或者组合软件和硬件方面的实施例,这些实施例一般全都可以被称为“电路”、“模块”或“系统”。此外,本发明的各方面可以采取在一个或多个计算机可读介质中实施的计算机程序产品的形式,该计算机可读介质具有包含在其上的计算机可读程序代码。
所包括的描述和附图描绘了教导本领域技术人员如何制作和使用最佳模式的具体实施例。出于教导发明原理的目的,已经简化或省略了一些常规方面。本领域技术人员将认识到落入本公开范围内的这些实施例的变体。本领域技术人员还将认识到的是,上述特征可以以各种方式组合以形成多个实施例。因此,本发明不限于上述具体实施例,而是仅由权利要求及其等同物限制。
Claims (40)
1.一种计算装置,包括:
一个或多个计算机可读存储介质;
与所述一个或多个计算机可读存储介质可操作地耦合的一个或多个处理器;以及
用于检测异常的程序指令,所述程序指令在由所述一个或多个处理器执行时,指示所述计算装置至少:
至少基于与计算环境中的事件相关联的日志消息序列生成散列值序列;
基于散列值生成序列向量,其中所述序列向量包括通过位置与可能散列值集合对应的一串数字;以及
执行所述序列向量与异常向量集合的比较,以确定散列值的至少一部分是否指示一个或多个异常事件的发生。
2.如权利要求1所述的计算装置,其中,为了基于所述散列值序列生成所述序列向量,所述程序指令指示所述计算装置为所述一串数字中的每个数字计算加权值。
3.如权利要求2所述的计算装置,其中,为了为所述一串数字中的每个数字计算加权值,所述程序指令指示所述计算装置将加权因子乘以二进制值以获得加权值。
4.如权利要求3所述的计算装置,其中,所述二进制值指示所述散列值序列是否包括与给定数字在所述串中的位置对应的散列值。
5.如权利要求4所述的计算装置,其中,所述加权因子指示所述日志消息对于检测所述一个或多个异常事件的相对重要性。
6.如权利要求5所述的计算装置,其中,为了执行所述序列向量与所述异常向量集合的比较,所述程序指令指示所述计算装置将余弦相似度函数应用于所述序列向量与所述异常向量集合中的每个异常向量的内点积。
7.一种用于检测异常的方法,包括:
识别与计算环境中的事件相关联的日志消息序列;
将散列函数应用于所述日志消息序列以产生散列值序列;
基于散列值生成序列向量,其中所述序列向量包括通过位置与可能散列值集合对应的一串数字;以及
执行所述序列向量与异常向量集合的比较,以确定散列值的至少一部分是否指示一个或多个异常事件的发生。
8.如权利要求7所述的方法,其中,基于所述散列值序列生成所述序列向量包括为所述一串数字中的每个数字计算加权值。
9.如权利要求8所述的方法,其中,为所述一串数字中的每个数字计算加权值包括将加权因子乘以二进制值以获得加权值。
10.如权利要求9所述的方法,其中,所述二进制值指示所述散列值序列是否包括与给定数字在所述串中的位置对应的散列值。
11.如权利要求10所述的方法,其中,所述加权因子指示所述日志消息对于检测所述一个或多个异常事件的相对重要性。
12.如权利要求11所述的方法,其中,执行所述序列向量与所述异常向量集合的比较包括将余弦相似度函数应用于所述序列向量与所述异常向量集合中的每个异常向量的内点积。
13.一种计算装置,包括:
一个或多个计算机可读存储介质;
与所述一个或多个计算机可读存储介质可操作地耦合的一个或多个处理器;以及
用于检测异常的程序指令,所述程序指令在由所述一个或多个处理器执行时,指示所述计算装置至少:
识别与计算环境中的事件相关联的日志消息序列;
生成与所述日志消息序列对应的压缩消息序列;
基于所述压缩消息序列生成序列向量,其中所述序列向量包括通过位置与可能压缩消息集合对应的一串数字;以及
执行所述序列向量与异常向量集合的比较,以确定所述日志消息序列的至少一部分是否指示一个或多个异常事件的发生。
14.如权利要求13所述的计算装置,其中,所述压缩消息序列包括散列值序列,并且所述可能压缩消息集合包括可能散列值集合。
15.如权利要求14所述的计算装置,其中,为了生成所述压缩消息序列,所述程序指令指示所述计算系统将散列函数应用于所述日志消息序列以产生所述散列值序列。
16.如权利要求15所述的计算装置,其中,为了基于所述散列值序列生成所述序列向量,所述程序指令指示所述计算装置为所述一串数字中的每个数字计算加权值。
17.如权利要求16所述的计算装置,其中,为了为所述一串数字中的每个数字计算加权值,所述程序指令指示所述计算装置将加权因子乘以二进制值以获得加权值。
18.如权利要求17所述的计算装置,其中,所述二进制值指示所述散列值序列是否包括与给定数字在所述串中的位置对应的散列值。
19.如权利要求18所述的计算装置,其中,所述加权因子指示所述日志消息对于检测所述一个或多个异常事件的相对重要性。
20.如权利要求19所述的计算装置,其中,为了执行所述序列向量与所述异常向量集合的比较,所述程序指令指示所述计算装置将余弦相似度函数应用于所述序列向量与所述异常向量集合中的每个异常向量的内点积。
21.一种用于识别计算环境中的异常的方法,所述方法包括:
从计算环境中的多个节点接收日志数据,其中所述日志数据包括指示由所述多个节点产生的日志消息的信息序列;
在所述信息序列中识别代表日志消息的非异常块的主导模式;
基于主导模式从所述日志数据中提取非异常块,以揭示不符合主导模式的异常块;
至少基于异常块生成异常向量;以及
将异常数据分发到所述多个节点中的至少一个节点以检测异常,其中所述异常数据包括异常向量。
22.如权利要求21所述的方法,其中,识别所述信息序列内的主导模式包括:
识别所述信息序列内的潜在模式;以及
至少基于应用于所述潜在模式中的一个或多个潜在模式的评分函数从所述潜在模式中选择主导模式。
23.如权利要求22所述的方法,其中所述评分函数相对于所述信息序列内出现较不频繁的潜在模式的不同子集提升在所述信息序列内频繁出现的潜在模式的子集。
24.如权利要求23所述的方法,其中,对于潜在模式中的每个潜在模式,当利用该潜在模式的压缩表示进行编码时,所述评分函数基于所述信息序列的描述长度来确定该潜在模式的相对主导。
25.如权利要求24所述的方法,其中,所述信息序列包括日志代码序列,并且其中所述日志代码序列中的每个日志代码包括可能散列值的符号表示,并且其中所述日志数据包括将每个唯一的日志代码映射到可能散列值集合中的不同散列值的码本。
26.如权利要求25所述的方法,其中,所述异常向量中的每个异常向量包括通过位置与可能日志代码集合对应的一串数字。
27.如权利要求26所述的方法,其中,至少基于异常块生成异常向量包括:对于异常向量中的每个异常向量,设置所述一串数字中的每个数字的值以指示由该异常向量表示的异常块中的可能日志代码集合中的对应日志代码的存在或不存在。
28.一种计算装置,包括:
一个或多个计算机可读存储介质;
与所述一个或多个计算机可读存储介质可操作地耦合的一个或多个处理器;以及
存储在所述一个或多个计算机可读存储介质上的程序指令,所述程序指令在由所述一个或多个处理器执行时,指示所述计算装置至少:
从计算环境中的多个节点接收日志数据,其中所述日志数据包括指示由所述多个节点产生的日志消息的信息序列;
在所述信息序列中识别代表日志消息的高概率块的主导模式;
基于主导模式从日志数据中提取高概率块,以揭示不符合主导模式的低概率块;
至少基于低概率块生成低概率向量;以及
将数据分发到所述多个节点中的至少一个节点以检测低概率事件,其中所述数据包括低概率向量。
29.如权利要求28所述的计算装置:
其中,所述高概率块包括非异常块,所述低概率块包括异常块,所述低概率向量包括异常向量,所述数据包括异常数据,并且所述低概率事件包括异常事件;以及
其中,为了识别所述信息序列中的主导模式,所述程序指令指示所述计算装置识别所述信息序列中的潜在模式以及至少基于应用于所述潜在模式中的一个或多个潜在模式的评分函数从所述潜在模式中选择主导模式。
30.如权利要求29所述的计算装置,其中所述评分函数相对于所述信息序列内出现较不频繁的潜在模式的不同子集提升在所述信息序列内频繁出现的潜在模式的子集。
31.如权利要求30所述的计算装置,其中,对于潜在模式中的每个潜在模式,当利用该潜在模式的压缩表示进行编码时,所述评分函数基于所述信息序列的描述长度来确定该潜在模式的相对主导。
32.如权利要求31所述的计算装置,其中,所述信息序列包括日志代码序列,并且其中所述日志代码序列中的每个日志代码包括可能散列值的符号表示,并且其中所述日志数据包括将每个唯一的日志代码映射到可能散列值集合中的不同散列值的码本。
33.如权利要求32所述的计算装置,其中,所述异常向量中的每个异常向量包括通过位置与可能日志代码集合对应的一串数字。
34.如权利要求33所述的计算装置,其中,至少基于异常块生成异常向量包括:对于异常向量中的每个异常向量,设置所述串中的每个数字的值以指示由该异常向量表示的异常块中的可能日志代码集合中的对应日志代码的存在或不存在。
35.一种用于识别异常的方法,所述方法包括:
从云计算环境中的一个或多个节点接收日志数据,其中所述日志数据包括由所述一个或多个节点生成的日志代码序列;
识别所述日志代码序列中的代码块;
将代码块分离成至少正常块和异常块;
至少基于异常块生成异常向量;以及
将异常数据分发到所述一个或多个节点以检测异常,其中所述异常数据包括异常向量。
36.如权利要求35所述的方法,其中,识别所述日志代码序列内的代码块包括:
识别所述日志代码序列内的潜在代码块;
至少基于应用于所述潜在代码块中的一个或多个潜在代码块的评分函数从所述潜在代码块中选择代码块;
其中,所述评分函数相对于日志代码的非主导子序列提升所述日志代码序列内的日志代码的主导子序列。
37.如权利要求36所述的方法,其中,将代码块分离成至少正常块和异常块包括:
识别在所述日志代码序列中频繁出现的代码块的子集作为正常块;以及
识别在所述日志代码序列中很少出现的代码块的不同子集作为异常块。
38.如权利要求37所述的方法,其中,对于潜在代码块中的每个潜在代码块,当利用该潜在代码块的压缩表示进行编码时,所述评分函数基于所述日志代码序列的描述长度来确定该潜在代码块的相对主导。
39.如权利要求38所述的方法,其中,所述日志代码序列中的每个日志代码包括可能散列值的符号表示,并且其中所述日志数据包括将每个唯一的日志代码映射到可能散列值集合中的不同散列值的码本。
40.如权利要求39所述的方法,其中:
所述异常向量中的每个异常向量包括通过位置与可能日志代码集合对应的一串数字;以及
至少基于异常块生成异常向量包括设置所述一串数字中的每个数字的值,以指示由异常向量表示的异常块中的可能日志代码集合中的对应日志代码的存在或不存在。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202510638022.9A CN120429155A (zh) | 2019-10-03 | 2020-10-02 | 计算环境中增强的异常检测 |
Applications Claiming Priority (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US16/591,856 US11307953B2 (en) | 2019-10-03 | 2019-10-03 | Block-based anomaly detection in computing environments |
| US16/591,856 | 2019-10-03 | ||
| US16/591,893 US11204823B2 (en) | 2019-10-03 | 2019-10-03 | Enhanced anomaly detection at edge devices in computing environments |
| US16/591,893 | 2019-10-03 | ||
| PCT/US2020/054132 WO2021067858A1 (en) | 2019-10-03 | 2020-10-02 | Enhanced anomaly detection in computing environments |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202510638022.9A Division CN120429155A (zh) | 2019-10-03 | 2020-10-02 | 计算环境中增强的异常检测 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN114503081A true CN114503081A (zh) | 2022-05-13 |
Family
ID=73014650
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202510638022.9A Pending CN120429155A (zh) | 2019-10-03 | 2020-10-02 | 计算环境中增强的异常检测 |
| CN202080069864.2A Pending CN114503081A (zh) | 2019-10-03 | 2020-10-02 | 计算环境中增强的异常检测 |
Family Applications Before (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202510638022.9A Pending CN120429155A (zh) | 2019-10-03 | 2020-10-02 | 计算环境中增强的异常检测 |
Country Status (3)
| Country | Link |
|---|---|
| EP (2) | EP4250116A3 (zh) |
| CN (2) | CN120429155A (zh) |
| WO (1) | WO2021067858A1 (zh) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP3905044B1 (fr) * | 2020-04-30 | 2023-05-10 | Bull SAS | Procédé d'analyse automatique des journaux de transactions d'un système informatique distribué |
| CN117762812B (zh) * | 2023-12-28 | 2024-08-13 | 北京天空卫士网络安全技术有限公司 | 一种处理日志信息的方法和装置 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20140344622A1 (en) * | 2013-05-20 | 2014-11-20 | Vmware, Inc. | Scalable Log Analytics |
| CN107111625A (zh) * | 2014-09-26 | 2017-08-29 | 甲骨文国际公司 | 实现数据的高效分类和探索的方法和系统 |
| US20180046529A1 (en) * | 2015-02-17 | 2018-02-15 | Nec Corporation | Log analysis system, log analysis method and program recording medium |
| WO2018130284A1 (en) * | 2017-01-12 | 2018-07-19 | Telefonaktiebolaget Lm Ericsson (Publ) | Anomaly detection of media event sequences |
| US20190102437A1 (en) * | 2017-09-30 | 2019-04-04 | Oracle International Corporation | Attribute-based detection of anomalous relational database queries |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2016049307A1 (en) * | 2014-09-26 | 2016-03-31 | Oracle International Corporation | Method and system for implementing efficient classification and exploration of data |
| US11086919B2 (en) * | 2018-02-19 | 2021-08-10 | Harness Inc. | Service regression detection using real-time anomaly detection of log data |
-
2020
- 2020-10-02 WO PCT/US2020/054132 patent/WO2021067858A1/en not_active Ceased
- 2020-10-02 CN CN202510638022.9A patent/CN120429155A/zh active Pending
- 2020-10-02 EP EP23184920.9A patent/EP4250116A3/en active Pending
- 2020-10-02 CN CN202080069864.2A patent/CN114503081A/zh active Pending
- 2020-10-02 EP EP20797305.8A patent/EP4038504A1/en active Pending
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20140344622A1 (en) * | 2013-05-20 | 2014-11-20 | Vmware, Inc. | Scalable Log Analytics |
| CN107111625A (zh) * | 2014-09-26 | 2017-08-29 | 甲骨文国际公司 | 实现数据的高效分类和探索的方法和系统 |
| US20180046529A1 (en) * | 2015-02-17 | 2018-02-15 | Nec Corporation | Log analysis system, log analysis method and program recording medium |
| WO2018130284A1 (en) * | 2017-01-12 | 2018-07-19 | Telefonaktiebolaget Lm Ericsson (Publ) | Anomaly detection of media event sequences |
| US20190102437A1 (en) * | 2017-09-30 | 2019-04-04 | Oracle International Corporation | Attribute-based detection of anomalous relational database queries |
Also Published As
| Publication number | Publication date |
|---|---|
| EP4038504A1 (en) | 2022-08-10 |
| EP4250116A3 (en) | 2024-04-10 |
| WO2021067858A1 (en) | 2021-04-08 |
| EP4250116A2 (en) | 2023-09-27 |
| CN120429155A (zh) | 2025-08-05 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11797412B2 (en) | Block-based anomaly detection in computing environments | |
| US10216960B2 (en) | Data masking systems and methods | |
| US11860721B2 (en) | Utilizing automatic labelling, prioritizing, and root cause analysis machine learning models and dependency graphs to determine recommendations for software products | |
| CN116210211B (zh) | 网络拓扑中的异常检测 | |
| US20180267858A1 (en) | Baseboard Management Controller To Deconfigure Field Replaceable Units According To Deep Learning Model | |
| CN113656254A (zh) | 基于日志信息的异常检测方法、系统和计算机设备 | |
| US20160098390A1 (en) | Command history analysis apparatus and command history analysis method | |
| US11182267B2 (en) | Methods and systems to determine baseline event-type distributions of event sources and detect changes in behavior of event sources | |
| US20230367636A1 (en) | System and method for determining memory resource configuration for network nodes to operate in a distributed computing network | |
| CN114503081A (zh) | 计算环境中增强的异常检测 | |
| US12254116B2 (en) | System and method for detecting and obfuscating confidential information in task logs | |
| CN112199344A (zh) | 一种日志分类的方法和装置 | |
| CN115495424A (zh) | 数据处理的方法、电子设备和计算机程序产品 | |
| US11204823B2 (en) | Enhanced anomaly detection at edge devices in computing environments | |
| Nolte et al. | The cool and the cruel: separating hard parts of LWE secrets | |
| Gong et al. | Scalable graph condensation with evolving capabilities | |
| US20220291859A1 (en) | Cloud-native cross-environment restoration | |
| Pektaş et al. | Runtime-behavior based malware classification using online machine learning | |
| Fazel | A new method to predict the software fault using improved genetic algorithm | |
| Ramoliya et al. | Advanced techniques to predict and detect cloud system failure: A survey | |
| EP3612980A1 (en) | Automatic feature selection in machine learning | |
| Rahman et al. | Advanced techniques for digital evidence preservation: the power of blockchain and machine learning | |
| Maroto et al. | Efficient worker assignment in crowdsourced data labeling using graph signal processing | |
| US12386963B2 (en) | Continuously propagating knowledge to decipher unknown malware in zero-trust architectures | |
| Ghiasvand | Toward Resilience in High Performance Computing:: A Prototype to Analyze and Predict System Behavior |
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 |