Kibana:可视化机器学习中的异常

309 阅读2分钟

在今天的文章中,我将使用 Lens 来对机器学习中的异常进行可视化。

 在今天的展示中,我将使用 Elastic Stack 8.2 来进行展示。

安装

我们首先参考如下的文章来安装 Elasticsearch 及 Kibana:

特别需要指出的是,你需要按照 Elastic Stack 8.x 的部分来进行安装。如果你是使用 macOS,你可以参考文章 “Elastic Stack 8.0 安装 - 保护你的 Elastic Stack 现在比以往任何时候都简单” 即可。

启动白金试用功能

由于机器学习属于白金版功能,我们在安装中启动试用功能:

 

我们到上述位置启动白金版试用功能。更多关于订阅方面的知识,请阅读官方文档:订阅 | Elastic Stack 产品和支持 | Elastic 。

准备数据

在今天的演示中,我将使用 Kibana 自带的数据来进行展示:

这样我就在 Elasticsearch 中创建了一个叫做  kibana_sample_data_logs 的索引。

创建一个机器学习任务

我们来创建一个比较简单的任务:

 

在上面,我们选择 event rate 来作为异常分析的 KPI。我们可以通过这个来了解在什么时候事件很多或什么时间事件特别少。

我们需要等一段时间来完成这个机器学习的任务:

在上面,我们可以看到异常事件的发生时间。 

可视化化异常

接下来我们在 Kibana 中查看如下的一个索引 .ml-anomalies-shared。这个索引的首字母是点,表示它是一个系统索引:

在这个索引中,它详细地描述了异常发生的时间以及分数。

我们首先为这个索引创建一个 data view:

这样我们就创建一个叫做 .ml-anomalies-shared 的 data view。

我们接着下来做可视化:

这样我们就完成了事件发生数量的可视化。

我们接下来创建另外一个层。它使用  .ml-anomalies-shared 来把异常发生的时间来叠加到当前的可视化图中:

 从上面,我们可以看出来,除了可视化,我们还可以添加 annotation。我们选择可视化:

 

 

 这样就得到了我们的可视化图。 通过上面的图,通过两个图的叠加,我们可以看出来异常和请求数量的关系。在请求多的时候,异常就出现了。