解释 Elastic Machine Learning 检测到的异常

blog-thumb-blind-spots.png

为什么会出现这个异常?为什么这个异常分数不高?异常检测是在 Elastic 安全及可观测性解决方案中使用的一项非常重要的 Machine Learning 功能。但是,天哪,这些数字看起来真是令人费解。如果有人可以用简单明了的语言解释一下就好了。或者,如果能画图说明就更好了。

在 Elastic 8.6 版中,我们可展示异常记录的更多详细信息。通过这些详细信息,可让我们了解异常评分算法的幕后信息。

我们之前在这个博客中写过关于异常评分和规范化的文章。异常检测算法以在线方式分析数据的时间序列。这种算法会基于不同的时间尺度(如一天、一周、一个月或一年)确定趋势和周期模式。真实环境的数据通常会混合多个基于不同时间尺度的趋势和周期模式。此外,起初看起来的异常情况可能会变成一种新出现的重复执行模式。

异常检测作业会提出解释数据的多种假设,并利用所提供的证据对这些假设进行权衡和融合。所有假设均为概率分布。因此,我们可以就观测值的“正常”程度给出置信区间。超出这个置信区间的观测值则为异常。

异常分数影响因素

现在,您或许会认为:这个理论很简单。不过,一旦看到某种意外行为,我们如何量化它的异常程度呢?

以下三个因素可以构成我们对记录的初始异常评分:

  • 单存储桶影响
  • 多存储桶影响
  • 异常特点影响

提醒一下,异常检测作业会将时序数据拆分为一系列时间存储桶。存储桶中的数据使用函数进行聚合。然后,对存储桶值进行异常检测。请阅读这篇博文,详细了解存储桶以及为什么选择正确的存储桶跨度至关重要。
首先,我们在假设融合的情况下看一下存储桶中实际值的概率。这个概率取决于我们过去看到过多少个类似的值。通常,它与实际值和典型值之间的差异有关。典型值是存储桶的概率分布的中值。这个概率会产生单存储桶影响。它通常在短峰值或谷值的初始异常分数中占主导地位。

其次,我们看一下将当前存储桶值与前面 11 个存储桶的值一起观测的概率。实际值和典型值之间的累积差异会导致当前存储桶的初始异常分数受到多存储桶影响

下面我们来详细探讨这一点,因为多存储桶影响是造成异常分数混淆的第二个常见原因。我们看一下 12 个存储桶的综合偏差,并将影响分配给当前的存储桶。多存储桶影响大表示当前存储桶之前的区间出现了异常行为。没关系,当前存储桶值可能会回到 95% 的置信区间内。

为了突出显示这种差异,我们甚至会对多存储桶影响大的异常使用不同的标记。如果您仔细观察上图中的多存储桶异常,可以看到这种异常使用十字 (+)(而非圆圈)进行了标记。

最后,我们考虑异常特征(如长度和大小)的影响。在这里,我们考虑的是到目前为止这种异常的总持续时间,而不是如上所述的固定间隔。这可能是一个存储桶,也可能是三十个存储桶。通过将这种异常的长度和大小与历史平均值进行比较,可以适应数据中的客户域和模式。

此外,该算法的默认行为是对较长异常的评分高于短暂异常的评分。在实践中,短异常通常是数据中的小故障,而长异常则是您需要采取措施的情况。

为什么我们需要同时考虑固定间隔和可变间隔这两种因素?因为将这两种因素结合起来,可以更可靠地检测各个域的异常行为。

记录分数降低

接下来我们探讨一下评分混淆最常见的来源:分数重正化。异常分数被标准化为 0 到 100 之间的范围。接近 100 的值表示该作业迄今为止所看到的最大异常。这意味着,当我们看到比以往任何时候都大的异常时,我们就需要降低以往异常的分数。

上述三个因素会影响初始异常分数的值。初始分数很重要,因为系统会根据此值向操作员发出告警。当新数据到达时,异常检测算法会调整以往记录的异常分数。配置参数 renormalization_window_days 可针对这种调整指定时间间隔。因此,如果您想知道为什么极端异常会显示出较低的异常分数,那可能是因为该作业后来看到了更显著的异常。

Kibana 8.6 版中的“Single Metric Viewer”突出显示了这一变化。

分数降低的其他因素

还有两个因素可能会导致初始分数降低:高方差区间和不完整存储桶。

如果当前存储桶是数据变化很大的季节性模式的一部分,那么异常检测的可靠性会较低。例如,您可能会安排在每晚午夜执行服务器维护作业。这些作业可能会导致请求处理延迟出现很大的变化。

此外,如果当前存储桶收到的观测数量与历史预期数量相似,则会更可靠。

将多个因素综而观之

真实环境中的异常往往会表现出受多个因素的影响。总而言之,全新的“Single Metric Viewer”详细视图看起来就是下图的样子。

您还可以在获取记录 APIanomaly_score_explanation 字段中找到这些信息。

结论

您应试用最新版本的 Elastic Cloud 上的 Elasticsearch Service,并查看全新的异常记录详细视图。立即开始免费试用 Elastic Cloud,即可访问这个平台。祝您体验愉快!