创建或更新 Watch API
编辑创建或更新 Watch API编辑
在 Watcher 中注册新的 Watch 或更新现有的 Watch。
请求编辑
PUT _watcher/watch/<watch_id>
描述编辑
注册 Watch 时,会将代表 Watch 的新文档添加到 .watches
索引中,并且其触发器会立即在相关的触发器引擎中注册。通常,对于 schedule
触发器,调度程序是触发器引擎。
您必须使用 Kibana 或此 API 来创建 Watch。请勿使用 Elasticsearch 索引 API 将 Watch 直接添加到 .watches
索引中。如果启用了 Elasticsearch 安全功能,请勿授予用户对 .watches
索引的 write
权限。
添加 Watch 时,您还可以定义其初始 活动状态。您可以通过设置 active
参数来实现。
安全集成编辑
启用 Elasticsearch 安全功能后,您的 Watch 只能对存储 Watch 的用户具有权限的索引进行索引或搜索。如果用户可以读取索引 a
,但不能读取索引 b
,则在执行 Watch 时,也会适用相同的规则。
路径参数编辑
-
<watch_id>
- (必需,字符串) Watch 的标识符。
查询参数编辑
-
active
- (可选,布尔值) 定义 Watch 默认情况下是处于活动状态还是非活动状态。默认值为
true
,这意味着 Watch 默认情况下处于活动状态。
请求正文编辑
Watch 具有以下字段
名称 | 描述 |
---|---|
|
定义 Watch 应何时运行的 触发器。 |
|
定义加载 Watch 数据的输入的 输入。 |
|
定义是否应运行操作的 条件。 |
|
如果条件匹配,将运行的 操作 列表 |
|
处理 Watch 有效负载以将其准备用于 Watch 操作的 转换。 |
|
将复制到历史记录条目中的元数据 json。 |
|
操作运行之间的最短时间,默认值为 5 秒。此默认值可以在配置文件中使用设置 |
|
操作运行之间的最短时间(以毫秒为单位)。默认为 |
示例编辑
以下示例添加了一个 ID 为 my-watch
的 Watch,它具有以下特征
- Watch 计划每分钟触发一次。
- Watch 搜索输入查找过去五分钟内发生的任何 404 HTTP 响应。
- Watch 条件检查是否找到了任何搜索命中项。
- 如果找到,Watch 操作会向管理员发送电子邮件。
PUT _watcher/watch/my-watch { "trigger" : { "schedule" : { "cron" : "0 0/1 * * * ?" } }, "input" : { "search" : { "request" : { "indices" : [ "logstash*" ], "body" : { "query" : { "bool" : { "must" : { "match": { "response": 404 } }, "filter" : { "range": { "@timestamp": { "from": "{{ctx.trigger.scheduled_time}}||-5m", "to": "{{ctx.trigger.triggered_time}}" } } } } } } } } }, "condition" : { "compare" : { "ctx.payload.hits.total" : { "gt" : 0 }} }, "actions" : { "email_admin" : { "email" : { "to" : "[email protected]", "subject" : "404 recently encountered" } } } }
添加 Watch 时,您还可以定义其初始 活动状态。您可以通过设置 active
参数来实现。以下命令添加一个 Watch 并将其设置为默认情况下处于非活动状态
PUT _watcher/watch/my-watch?active=false
如果省略 active
参数,则 Watch 默认情况下处于活动状态。