es上的的Watcher示例
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服务器
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2018-01-23 Redis基础、高级特性与性能调优
2018-01-23 Go实战--golang中使用JWT(JSON Web Token)
2018-01-23 从密码到token, 一个授权的故事 auth2.0
2015-01-23 Looper Handler Mssage
2015-01-23 activity window view 关系
2015-01-23 在Android中通过Intent使用Bundle传递对象