带你读《Elastic Stack 实战手册》之55:——3.5.14.Watcher(2)

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 带你读《Elastic Stack 实战手册》之55:——3.5.14.Watcher(2)


《Elastic Stack 实战手册》——三、产品能力——3.5 进阶篇——3.5.14.Watcher(1) https://developer.aliyun.com/article/1228143



Watch 定义

 

Watch 由 Trigger、Input、Condition 、Transform 和在满足 Watch Condition 时希望执行的 Actions 组成。

 

l Trigger

l 确定何时检查 watch,watch 必须有触发器。

 

l Input

l 将数据加载到 watch 中。

 

l Condition

l 控制是否执行 watch 操作,如果没有指定条件,条件默认为 always。

 

l Transform

l 处理监视有效负载,使其为监视操作做好准备。你可以在监视级别定义转换或定义特定于操作的转换。可选的。

 

l Action

l 指定在满足监视条件时发生的动作。

 

例如,下面的代码片段显示了 Put Watch 请求,它定义了查找日志错误事件的监视


PUT _watcher/watch/log_error_watch
{
  "trigger": {
    "schedule": {
      "interval": "1m"
    }
  },
  "input": {
  "search": {
      "request": {
        "indices": [
          "logs"
        ],
        "body": {
          "query": {
            "bool": {
              "must": [
                {
                  "match": {
                    "message": "error"
                  }
                }
              ],
              "filter": [
                {
                  "range": {
                    "@timestamp": {
                      "from": "{{ctx.trigger.scheduled_time}}||-5m",
                      "to": "{{ctx.trigger.triggered_time}}"
                    }
                  }
                }
              ]
                  }
          }
        }
      }
    }
  },
  "condition": {
    "compare": {
      "ctx.payload.hits.total": {
        "gt": 3
      }
    }
  },
  "actions": {
    "log_error": {
      "logging": {
        "text": "Found {{ctx.payload.hits.total}} errors in the logs"
      }
    }
  }
  }

1、Metadata

元数据——可以将可选的静态元数据附加到 watch 上。

 

2、Trigger

触发器——这个调度触发器每5分钟执行一次 watch。

 

3、Input

输入—检索 log-events 索引中的错误。


 4、Condition

条件——这个条件检查是否有超过5个错误事件,如果满足条件,将触发 actions。

 

5、Actions

动作-这个 watch 有两个动作。my_webhook 动作将问题通知给第三方系统。 email_administrator 动作向系统管理员发送邮件。

 

测试Watcher

 

在上面,我们每隔 1 分钟检查一次,但是在实际的实践中,我们的这个 interval 可能会是1个小时,或者是1天的实践。我们不可能去等这么长的时间来测试这个 watcher。Elastic 为了方便我们的测试,提供了 _execute 接口:


PUT _watcher/watch/log_error_watch/_execute

通过上面的接口,我们不需要等在 schedule 中设置的那么久的时间才运行一下我们的 watcher。上面的命令可以直接帮我们运行 watcher。

 

我们连续运行如下的命令4次:


POST logs/event?pipeline=add-timestamp
{
  "request": "GET index.html",
  "status_code": 404,
  "message": "Error: File not found"
}

然后接着运行:

PUT _watcher/watch/log_error_watch/_execute

这样,我们就不用等每隔1分钟才可以看到输出的结果。我们立马在 Elasticsearch Server 的日志中看到输出:

image.png


至此,我们已经完整地创建并测试了我们的 Watcher。

 

《Elastic Stack 实战手册》——三、产品能力——3.5 进阶篇——3.5.14.Watcher(3) https://developer.aliyun.com/article/1228141


相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
监控 Java API
带你读《Elastic Stack 实战手册》之55:——3.5.14.Watcher(3)
带你读《Elastic Stack 实战手册》之55:——3.5.14.Watcher(3)
113 0
|
Cloud Native 大数据 程序员
带你读《Elastic Stack 实战手册》之55:——3.5.14.Watcher(4)
带你读《Elastic Stack 实战手册》之55:——3.5.14.Watcher(4)
100 0
带你读《Elastic Stack 实战手册》之55:——3.5.14.Watcher(1)
带你读《Elastic Stack 实战手册》之55:——3.5.14.Watcher(1)
159 0
|
自然语言处理 索引
带你读《Elastic Stack 实战手册》之33:——3.4.2.17.2.Schemaless(上)
带你读《Elastic Stack 实战手册》之33:——3.4.2.17.2.Schemaless(上)
130 0
|
JSON Java 数据格式
带你读《Elastic Stack 实战手册》之33:——3.4.2.17.2.Schemaless(下)
带你读《Elastic Stack 实战手册》之33:——3.4.2.17.2.Schemaless(下)
117 0
|
存储 运维 监控
带你读《Elastic Stack 实战手册》之2:——二、导读(下)
带你读《Elastic Stack 实战手册》之2:——二、导读(下)
281 0
|
SQL 自然语言处理 监控
带你读《Elastic Stack 实战手册》之2:——二、导读(上)
带你读《Elastic Stack 实战手册》之2:——二、导读(上)
354 0
|
机器学习/深度学习
带你读《Elastic Stack 实战手册》之58:——3.5.16.2.Getting started(下)
带你读《Elastic Stack 实战手册》之58:——3.5.16.2.Getting started(下)
|
机器学习/深度学习 数据建模 索引
带你读《Elastic Stack 实战手册》之58:——3.5.16.2.Getting started(中)
带你读《Elastic Stack 实战手册》之58:——3.5.16.2.Getting started(中)
110 0
|
机器学习/深度学习 运维 数据可视化
带你读《Elastic Stack 实战手册》之58:——3.5.16.2.Getting started(上)
带你读《Elastic Stack 实战手册》之58:——3.5.16.2.Getting started(上)
111 0