Watcher插件配置(创建预警任务)

watcher目前是沒有界面配置的,需要通过Resfulapi调用创建、管理、更新预警任务

创建一个Watcher任务的流程是怎样的?

我们先来看下创建一个预警demo的api

curl -XPUT 'http://localhost:9200/_watcher/watch/log_error_watch' -d '
{
"trigger": {
"schedule": {
"interval": "1m"
}
},
"input": {
"search": {
"request": {
"indices": [
"monitor_ticket_bargainfindermaxrq_201610"
],
"body": {
"query": {
"bool": {
"must": [
{
"match": {
"collectionName": "BargainFinderMaxRQ"
}
},
{
"range": {
"createTime": {
"gt" : "now-1m"
}
}
}
]
}
}
}
}
}
},
"condition": {
"compare": {
"ctx.payload.hits.total": {
"gt": 20
}
}
},
"actions": {
"send_email": {
"email": {
"to": "xxxxxx@xxx.com",
"subject": "TICKET_BFM 過去一分鐘內錯誤發生次數超過20,請關注",
"body": "TICKET_BFM 過去一分鐘內錯誤發生次數超過20,請關注"
}
}
}
}'

当然actions里面还支持模板,比如

"actions": {
"send_email": {
"email": {
"to": "xxx@xxx.com",
"subject": "TICKET_BFM 過去一分鐘內錯誤發生{{ctx.payload.hits.total}}次數超過20,請關注",
"body": "TICKET_BFM:{{ctx.watch_id}} 過去一分鐘內錯誤發生{{ctx.payload.hits.total}}次數超過20,請關注 Happened at {{ctx.execution_time}}"
}
}
}

从api的content我們可以看出,內容主要主体分成trigger(触发设置),input(来源设置),condition(条件),actions(触发动作设置)

这里我们设置触发间隔时间为1m,来源是monitor_ticket_bargainfindermaxrq_201610索引块,查询条件是collectionName字段值是BargainFinderMaxRQ,以及时间范围是过去1分钟到现在,然后触发条件是当数量大于20,动作设置的是发邮件

Action类型其实有4种,EMail(邮件),Webhook(第三方对接),Index(索引),Logging(日志记录),相关配置可以参考下官方文档

如果配置了发送邮件,那么需要在es的yml文件配置下邮件发送服务器

我这里设置的是公司的服务器

watcher.actions.email.service.account:
  work:
    profile: standard
    email_defaults:
      from: '<yourname>@xx.com'
    smtp:
      auth: true
      starttls.enable: true
      host: smtp.xx.com
      port: 25
      user: yourname@xx.com
      password: password

注:设置之后重启下es服务器

es上的的Watcher示例的更多相关文章

  1. 网络编程 UDP协议 TCP局域网客户端与服务端上传下载电影示例

    UDP协议 (了解) 称之为数据包协议,又称不可靠协议. 特点: 1) 不需要建立链接. 2) 不需要知道对方是否收到. 3) 数据不安全 4) 传输速度快 5)能支持并发 6) 不会粘包 7) 无需 ...

  2. KITTI数据集上MaskRCNN检测效果示例

    KITTI数据集上MaskRCNN检测效果示例 在Semantic Instance Segmentation Evaluation中,MaskRCNN性能效果排名第一. Test Image 0 I ...

  3. ajaxFileUpload上传文件简单示例

    写在前面: 上传文件的方式有很多,最近在做项目的时候,一开始也试用了利用jquery的插件ajaxFileUpload来上传大文件,下面,用一个上传文件的简单例子,记录下,学习的过程~~~ 还是老样子 ...

  4. .NetCore多文件上传进度的示例

    主要讲的内容有: 1-----form方式上传一组图片 2-----ajax上传一组图片 3-----ajax提交+上传进度+一组图片上传 4-----Task并行处理+ajax提交+上传进度+一组图 ...

  5. Struts2单文件上传原理及示例

    一.文件上传的原理 表单元素的enctype属性指定的是表单数据的编码方式,该属性有3个值: 1.application/x-www-form-urlencoded:这是默认编码方式,它只处理表单域里 ...

  6. Weui 文件上传完整版示例

    部分思路借用网友,部分是自己细化的. 先声明. 不多说,参考代码 @{ ViewBag.Title = "费用填报"; Layout = "~/Views/Shared/ ...

  7. 使用java的MultipartFile实现layui官网文件上传实现全部示例,java文件上传

    layui(谐音:类UI) 是一款采用自身模块规范编写的前端 UI 框架,遵循原生 HTML/CSS/JS 的书写与组织形式,门槛极低,拿来即用. layui文件上传示例地址:https://www. ...

  8. Dropzone.js拖拽上传(简单示例)

    今天碰到一个需求,页面上有“点击上传”的按钮,点击可以执行上传事件,从桌面拖拽图片拖拽到任何地方,都可以执行上传,且不影响点击按钮事件.下面是简单示例: 简单示例如下: <!DOCTYPE ht ...

  9. SpringMvc通过controller上传文件代码示例

    上传文件这个功能用的比较多,不难,但是每次写都很别扭.记录在此,以备以后copy用. package com.**.**.**.web.api; import io.swagger.annotatio ...

随机推荐

  1. 多维数据库 Oracle Essbase 和 IBM Cogons 底层原理

    多维数据库(Multi Dimensional Database,MDD)使用Dimension(维度)和Cube(数据立方体.数据集市)模型描述数据. 多维数据模型 关系型数据库(Relationa ...

  2. ASP.MVC学习资源总结

    自己动手写一个简单的MVC框架(第一版) 自己动手写一个简单的MVC框架(第二版) ASP.Net请求处理机制初步探索之旅 - Part 1 前奏 ASP.Net请求处理机制初步探索之旅 - Part ...

  3. 最小生成树(Prim算法)

    Java实现Prim算法 package com.java; import java.util.*; /** * 普里姆算法—Prim算法 * 算法思路:将图中所有的顶点分为两类:树顶点(已被选入生成 ...

  4. C# List集合去重使用lambda表达式

    name age sex Lucy 22 woman Lily 23 woman Tom 24 man Lucy 22 woman Lily 23 woman LiLei 25 man List< ...

  5. Linux Shell 返回值之 PIPESTATUS

    BASH SHELL中,通常使用 $? 来获取上一条命令的返回码,对于管道中的命令,使用$?只能获取管道中最后一条命令的返回码,例如: 下面的例子 /djdjal/dajiojidksj.file是一 ...

  6. python--继承--方法的重写---和父类的扩展

    1.方法的重写 父类的方法不能满足子类的需要,可以对方法重写 具体的实现方式,就相当于在子类中定义了一个和父类同名的方法并实现 重写之后只会对子类的方法调用,而不会调用父类封装的方法 2.对父类方法进 ...

  7. Linux学习之路(二)

    4.Linux文件查找工具. Linux经常使用locate与find作为文件查找命令.find可以认为是系统自带的命令,功能也挺多但是使用方法相对有点繁琐.find查找的是实时文件数据,一般用于查询 ...

  8. Linux运维高级-核心知识提高

    一.Linux之定时任务crond 二.Linux之用户管理 三.Linux之初识磁盘 四.Linux之磁盘管理 五.Linux三剑客-SED 六.Linux三剑客-AWK 七.初识shell编程 八 ...

  9. 异步渲染页面怎么点击checkbox获取value值

    前后端分离时 后端向前端传递json数据  前端根据需要进行页面渲染 因为是异步渲染 想要获取获取渲染数据里面的值时获取不到的 介绍两个方法: 1,设置全局变量 即渲染时在html页面设置全局变量 如 ...

  10. .net core EF的简单使用

    1.在mysql中新建一个表 2.在控制台中装个EF包  Install-Package Pomelo.EntityFrameworkCore.MySql 3.新建一个Person类 4.创建DbCo ...