X-Pack的machine learning

2023-05-16

如何使用X-Pack的machine learning

最近在使用X-Pack中的机器学习功能,主要的就是利用非监督的时间序列模型,用来检测流量的变化,关于X-Pack这块的文章好像可以参考的比较少,所以我在这篇文章中大致的把X-Pack的机器学习功能做一个简单的介绍。

1. X-Pack的安装

我们本身是要搭建一个ELK平台,X-Pack只是其中的一部分,ELK平台的搭建网上有很多的教程,大家按照教程来搭建基本不会有什么问题,需要注意的是最新的X-Pack有些功能是需要购买授权才能使用的。

2. 数据的准备

我们用来分析的数据是access log,所以在录入elasticsearch中的时候@timestamp取得就是日志的请求时间,因为我们利用的就是X-Pack中的时间序列模型,所以在elasticsearch的数据中需要特别注意的就是你数据的时间戳。

3. 新建Job

我们第一步就是要建立我们学习的Job,具体的过程如下:
新建Job 1

选择Job的数据源
这里就是选择我们Job的数据源,可以从es的索引或者从我们保存的search中选择数据源。

Job类型选择

这里就涉及到我们Job的类型了,有三种类型可选择,如果系统默认自带的这三种类型满足不了你的需求那么可以用自定义的这种高级方式。
如果你一开始还不太清楚你的数据的分布情况,那么你可以先试试用X-Pack的”数据可视化(Data Visualizer)”来先了解一下你的数据。
“单一度量(Single metric)”是指只对一个指标进行度量,例如你的数据是某款产品的销售数据那么你可以用这个模型来做销售数据的异常检测数据预测
“多维度度量(Multi metric)”是指可以把数据按照某一个维度进行拆分,单纯的文字可能不太好理解,后面我举的一个例子会帮助大家比较好的理解。
至于”Population”因为没有深入去了解所以就不述了,有兴趣的可以自己去尝试。

4. Job的参数

这里写图片描述
这里的Fields就是我们要评估的字段,例如你想要对销售数据做评估那么这里就选择销售额字段,后面的下拉框是说对字段做怎么样的聚合运算,例如销售数据可能取Mean平均值这种聚合运算。
Split Data是指对数据根据什么字段来拆分,例如销售数据可以根据客户来拆分,选择了对应的字段以后在右边就会显示拆分后的图表。
说明:我截图的是我自己的需求,计算每一个域名的qps值,大家看看是否理解了。
这里写图片描述
接着就到了另外两个重要的参数了。
Bucket span就是说我们学习阶段取样分析的周期和后面实时计算检测的窗口周期,如果大家知道spark streaming那么就比较容易理解这个参数了。例如我们的销售数据可以根据天来计算,那么就可以把这个设置成24*60m了,在学习阶段就是把一天的销售额做平均值计算,在检测、预测阶段也是根据一天来运行。
Advanced->Use dedicated index选项是指你需要把这个机器学习的结果存入单独的elasticsearch的索引中不,如果不勾选那么默认就是存入.ml-anomalies-shared这个索引中。
最后就是看你机器学习的数据集的选择了,你可以自由选择数据集的大小:
这里写图片描述

5. Job的管理

Job的管理我只说一点,就是如何做到类似spark streaming一样的实时检测,就是在Job management中点击action中的第一个按钮。
这里写图片描述
接着我们选择No end time(Real-time search)即可。
这里写图片描述

6. 异常检测、预测

机器学习完了以后就能用到Anomaly detectForecast这两个主要的功能了,详细的不再细述,相信大家用一下就知道了。
不得不说在异常检测中,检测结果还是挺强大的。

7. 如何读取结果

一开始我想通过API的方式来读取检测的结果,在官网上面找到了对应的API接口,但是除了个别的能用外,很多接口都是报404错误,尝试了半天没有找到原因,后来抓包看了一下kibana的请求,发现kibana根本就没有用这些接口而是直接读取的.ml-anomalies*这样的索引,然后我猜想这些接口在最新的版本中可能都没有实现,目前我用的Version: 6.1.1

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

X-Pack的machine learning 的相关文章

随机推荐

  • URL格式

    一 URL基本格式 一个完整的url包含方案 用户名 密码 主机名 端口 路径 参数 查询和片段 xff0c 格式如下 xff1a lt scheme gt lt user gt lt password gt 64 lt host gt l
  • __IO uint16_t

    STM32里的类型定义 xff0c 见如下说明 xff1a typedef volatile unsigned short vu16 typedef IO uint16 t vu16 IO definitions access restri
  • 串口波形分析(TTL,RS232,RS485)

    TTL xff0c RS232 xff0c RS485波形分析 本文转自 xff1a http blog 163 com qiu zhi2008 blog static 60140977201092651854445 http www cn
  • Java数字类型转byte数组

    文章目录 方法1 自己写int转byte数组byte数组转int参考 xff1a https blog csdn net qq 41054313 article details 88424454 方法2 使用java NIO包的功能int转
  • 头文件和库函数的区别

    1 头文件中有函数的申明 xff0c 库文件实现函数的定义 比如 xff0c printf函数 使用时应包括stdio h xff0c 打开stdio h你只能看到 xff0c printf这 个函数的申明 却看不到printf具体是怎么实
  • C语言--字符串的截取

    今天碰到了一个字符串截取的功能实现问题 xff0c 比较常见所以就做下记录 一般的实现是这样的 xff1a include lt stdio h gt include lt string h gt int main void char de
  • 使用 JWT 让你的 RESTful API 更安全

    传统的 cookie session 机制可以保证的接口安全 xff0c 在没有通过认证的情况下会跳转至登入界面或者调用失败 在如今 RESTful 化的 API 接口下 xff0c cookie session 已经不能很好发挥其余热保护
  • CAN报文解析—案例

    1 CAN报文定义 CAN报文是指发送单元向接受单元传送数据的帧 我们通常所说的CAN报文是指在CAN线 xff08 内部CAN 整车CAN 充电CAN xff09 上利用ECU和CAN卡接收到的十六进制报文 2 CAN协议中CAN报文种类
  • 单片机中,intrins.h头文件中各函数详解:空指令_nop_(),移位函数_crol_、_cror_

    intrins h 在 C51单片机编程中 xff0c 我们经常使用到 nop 延时一个机器周期 如果晶振是12M xff0c 则延时1 us xff0c 该空函数在头文件intrins h中 头文件 INTRINS H 中的函数使用很方便
  • Linux 下模拟Http 的get or post请求(curl和wget两种方法)

    一 get请求 xff1a 1 使用curl命令 xff1a curl 34 http www baidu com 34 如果这里的URL指向的是一个文件或者一幅图都可以直接下载到本地 curl i 34 http www baidu co
  • QT入门基础认知(三个常用类、三种对话框类型、信号和槽)

    1 简单介绍 xff1a 1 1 三个常用类 xff08 Qwidget类 QDialog类 QMainwindow类 xff09 Qwidget类 xff1a 继承与QObject类和QPaintdevice类 xff0c 所有用户界面对
  • socket函数的domain、type、protocol解析

    socket 函数的 domain type protocol 解析 lxg 64 2015 04 09 内核中的 socket 概览 图一 xff1a socket 概览 内核中套接字是一层一层进行抽象展示的 xff0c 把共性的东西抽取
  • code的用法

    今天写程序的时候用了const xff0c 想到之前遇到的code的用法 xff0c 那是第一次遇到code的那样的用法 xff0c 查了一下 xff0c 解释如下 xff1a 在单片机使用C语言进行编程的时候 xff0c 经常使用到cod
  • Linux的system()和popen()差异

    Linux的system 和popen 差异 1 system 和popen 简介 在linux中我们可以通过system 来执行一个shell命令 xff0c popen 也是执行shell命令并且通过管道和shell命令进行通信 sys
  • HTTP的303、307状态码

    之前在 http权威指南 中看到了HTTP的307状态码 xff0c 当时因为没有找到可以实验的网站所以没有比较深的印象 xff0c 今天在排查一个问题的时候恰巧遇到了HTTP 1 1 307 TemporaryRedirect xff0c
  • 如果获得页面跳转的最终URL

    最近做一个小功能 xff0c 就是获取一个页面经过跳转后的最终页面URL xff0c 这里的跳转方式包含但不仅限于HTTP 301 302 js meta refresh 下面是我想到的三种可能的解决方式 xff0c 可能会有更优的方法 x
  • pykafka的NoBrokersAvailableError原因

    今天在使用pykafka的时候遇到一个问题 xff0c 我的kafka和zookeeper运行在一台机器上面 xff0c 然后应用程序跑在另外一台机器上面 当我调用pykafka中的KafkaClient zookeeper host 61
  • pyspark的pickle.PicklingError

    今天在用pyspark的时候在一个类中调用rdd的map的时候报错 xff0c 代码如下 xff1a rdd 61 df filter size df emission gt span class hljs number 50 span r
  • 一行代码引发的"血案"

    昨天在使用pykafka的时候又遇到了之前我遇到过的PartitionOwnedError ConsumerStoppedException异常 xff0c 关于这个异常我之前写过一篇分析的文章 链接在这里 xff0c 我自认为之前应该是把
  • X-Pack的machine learning

    如何使用X Pack的machine learning 最近在使用X Pack中的机器学习功能 xff0c 主要的就是利用非监督的时间序列模型 xff0c 用来检测流量的变化 xff0c 关于X Pack这块的文章好像可以参考的比较少 xf