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];
文章归档
文章标签
友情链接