一、ELK简介
ELK:是有三个组件组成ElasticSearch、Logstash、Kibana组成,其中Logtash负责获取数据,ElasticSearch负责存储和索引数据,Kibana则是一个可视化的部件,负责展示,这三者构成了一个开源的日志分析平台,是目前的主流的企业级日志分析平台解决方案。更为详细的介绍请参考维基百科:https://en.wikipedia.org/wiki/Elk。
介绍ELK的文章非常多,随着机器学习、人工智能概念在运维领域的渗透,AIops概念的流行,ELK在其X-PACK插件中,也增加了Machine Learning模块,其主要是采用机器学习中的无监督算法,实现时序数列的异常发现。由于X-PACK中商用收费软件,目前网上关于X-PACK Machine Learning的介绍非常少,官网上只有需要翻墙的视频可以看。笔者个人下载了X-PACK试用版,试用期30天,本文将主要介绍笔者在X-PACK Machine Learning功能的试用经验。
二、 X-PACK安装
假设环境已安装好ELK。
1、X-PACK在ElasticSearch的安装:
下掉ElasticSearch,在ElasticSearch解压目录下,执行命令,完成安装,es如果是一个集群,在每一个节点上安装
bin/elasticsearch-plugin install x-pack
安装完成后,启动elasticsearch。
2、X-PACK在Kibana的安装:
下掉Kibana,在Kibana解压目录下,执行命令,完成安装。
bin/kibana-plugin install x-pack
安装完成后,启动Kibana。
注意:如果安装环境不能上网,自动完成x-pack包的下载,则去官方自行下载和ElasticSearch及传到安装环境,将x-pack替换成完成路径加文件名即可。
安装X-PACK后,需要用户名和密码登陆才能打开Kibana,默认的用户名和密码是:elastic changeme。打开Kibana界面后,可以发现页面说多了很多导航栏,如:Machine Learning,Graph,Monitoring等。本文主要介绍Machine Learning模块的使用。
三、X-PACK Machine Learning模块应用及效果
创建一个Single Metric过程如下:
1、选择Machine Learning导航栏,看到如下界面,单机Create new job
2、选择Create a single metric job
3、选择一个数据源:此处,我们选择一个之前一个保存好的Search:
4、设置聚合指标及聚合方式
Bucket span默认是5分钟,也可以根据需求自行设置。单击三角框,即可出现下图的时间序列曲线。单击左下角的create job按钮,job建立成功。
5、创建成功之后,很快就出现异常探测图,单击View Result按钮,查看
上图因为异常点较少,下图是选取了另外一个时间序列指标做的异常分析图。因为是无监督的算法,不需要单独的学习阶段,也不需要使用批量处理系统去更新模型,定义好数据源,模型会根据数据不断的更新,而且数据越多时,会越准。当鼠标移到圆圈位置是,会出现上线基线。
可以看出该功能,可以对某一KPI根据历史数据建立起上下动态基线,根据动态极限标记异常。
创建Multiple Metric Job的方法同上,就是在选择KPI时,可以选择index中多个指标。
2、多KPI异常统计:
针对多个KPI创建了JOB之后,在Anomaly Explorer菜单栏中,可以看到多个指标的异常统计。方法是:单击Anomaly Explorer菜单栏,选中想要查看的KPI的JOB,此处全选:
可以看到按时间窗口标记的异常,这个功能很容易看到同时有问题的KPI有哪些:
此处还有一个创建高级JOB,分析多个指标之间的关联关系,目前我还没研究清楚怎么搞。待研究清楚后补充。
3、ELK里面的时间序列Timelion曲线,可以通过做一些简单的移动平均来看KPI变化趋势。如下图所示:
四、X-PACK Machine Learning应用领域分析
通过上面的分析,可以看出,X-PACK Machine Learning模块可以很好的用户分析Elastic中的时序数据,并且是无监督算法,无需对数据进行实现标记。可以用于所有产生时序数据的领域,如运维领域,金融领域等。
本人致力于人工智能等技术在金融、科技领域的研究,欢迎交流。