7.ElasticSearch预警服务-Watcher详解-Action设置

编程技术  /  houtizong 发布于 3年前   73

ElasticSearch预警服务-Watcher详解-Action设置
Watcher中的Action指配置指定的预警动作,在满足触发条件且不节流的情况下执行。
每个Action动作执行一次,Action之间相互独立。执行过程中,发生任何错误都会记录结果,可以在历史记录中查看。Action可以访问Context中的内容。

Watcher支持的Action类型有四种:EMail(邮件),Webhook(第三方对接),Index(索引),Logging(日志记录)
1.EMail
发送通知邮件,可以配置至少一个邮箱账号。
需要在elasticsearch.yml中配置邮箱账号,每个账号需要一个唯一的名称,并配置SMTP相关信息,可以对
账号信息设置默认值。
设置属性:watcher.actions.email.service.account

watcher.actions.email.service.account:    work:        profile: gmail #邮箱账号,要求唯一        email_defaults:            from: 'John Doe <[email protected]>' #设置默认属性            bcc: [email protected] #设置默认属性        smtp:            auth: true            starttls.enable: true            host: smtp.gmail.com            port: 587            user: <username>            password: <password>

 使用account属性配置多个发送邮件,如果只有一个邮箱,可以不配置改属性。

来看一个完成的EMail Action配置例子:

$ curl -XPUT 'http://localhost:9200/_watcher/watch/my-watch' -d '{   "actions" : {    "email_admin" : {      "transform" : {      },      "email": {        "account":"gmail",#如不设置,则为默认邮箱,        "to": "'John Doe <[email protected]>'", #如果没有设置,则从ElasticSearch.yml默认配置中读取。         #收件人列表可以是多个,         #可是'Personal Name <[email protected]>, [email protected]'         #或者 [ 'Personal Name <[email protected]>', '[email protected]' ]        "subject": "{{ctx.watch_id}} executed",  #邮件标题        "body": "{{ctx.watch_id}} executed with {{ctx.payload.hits.total}} hits"  #邮件内容      }    }  }  ...}

 
2.WebHook
指连接到某个web服务器并监听指定端口,支持Http及Https。

简单配置如下:

PUT /_watcher/watch/my-watch{  ...  "actions" : {    "my_webhook" : {      "transform" : {        ...      },      "webhook" : {        "method" : "POST", #请求方式        "host" : "mylisteningserver", #请求服务器        "port" : 9200, #请求端口        "path": ":/{{ctx.watch_id}", #请求路径        "body" : "{{ctx.watch_id}}:{{ctx.payload.hits.total}}" #消息体      }    }  }}

 

需要验证的配置信息

PUT /_watcher/watch/my-watch{  ...  "actions" : {    "my_webhook" : {      "transform" : {        ...      },      "webhook" : {        "auth" : {          "basic" : {            "username" : "<username>", #用户名            "password" : "<password>"  #密码,默认情况下,改数据会明文存储在索引中,如果安装SHILED服务,可以在存储前进行加密处理          }        }        "method" : "POST",        "host" : "mylisteningserver",        "port" : 9200,        "path": ":/{{ctx.watch_id}",        "body" : "{{ctx.watch_id}}:{{ctx.payload.hits.total}}"      }    }  }}

 通过参数的方式配置

PUT /_watcher/watch/my-watch{  ...  "actions" : {    "my_webhook" : {      "webhook" : {        "method" : "POST",        "host" : "mylisteningserver",        "port" : 9200,        "path": ":/alert",        "params" : { #请求参数          "watch_id" : "{{ctx.watch_id}}"        }      }    }  }}

 
自定义头部信息

PUT /_watcher/watch/my-watch{  ...  "actions" : {    "my_webhook" : {      "webhook" : {        "method" : "POST",        "host" : "mylisteningserver",        "port" : 9200,        "path": ":/alert/{{ctx.watch_id}}",        "headers" : { #自定义头部信息          "Content-Type" : "application/yaml"        },        "body" : "count: {{ctx.payload.hits.total}}"      }    }  }}

 
3.Index
以ElasticSearch索引的方式处理。

$ curl -XPUT 'http://localhost:9200/_watcher/watch/my-watch' -d '{  ... "actions" : {   "index_payload" : {     "transform: {     },     "index" : {       "index" : "my-index",  #索引名称       "doc_type" : "my-type" #索引类型     }  }}

 
4.Logging
记录普通的日志文本,常用于开发和调试情况下。

PUT /_watcher/watch/my-watch{  ...  "actions" : {    "log" : {      "transform" : {        ...      },      "logging" : {        "text" : "executed at {{ctx.execution_time}}"      }    }  }}

 

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!

留言需要登陆哦

技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成

网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];

      订阅博客周刊 去订阅

文章归档

文章标签

友情链接

Auther ·HouTiZong
侯体宗的博客
© 2020 zongscan.com
版权所有ICP证 : 粤ICP备20027696号
PHP交流群 也可以扫右边的二维码
侯体宗的博客