码迷,mamicode.com
首页 > 其他好文 > 详细

监视器入门

时间:2017-07-17 21:59:32      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:post   error:   做什么   examples   sea   div   添加   elastic   sch   

Getting Started with Watcher

  当您将X-Pack安装到Elasticsearch和Kibana时,监视器会自动启用。

  设置监控开始发送警报:

  • 计划监控并定义输入。
  • 添加一个条件,检查是否需要发送警报。
  • 配置一个在满足条件时发送警报的操作。

Schedule the Watch and Define an Input

  一个监控计划控制触发监控的频率。监控输入获取希望评估的数据。   

  要定期搜索日志数据并将结果加载到监控中,您可以使用间隔时间表和搜索输入。例如,以下监控每10秒搜索logs索引错误。 

PUT _xpack/watcher/watch/log_error_watch
{
  "trigger" : {
    "schedule" : { "interval" : "10s" } 【1】
  },
  "input" : {
    "search" : {
      "request" : {
        "indices" : [ "logs" ],
        "body" : {
          "query" : {
            "match" : { "message": "error" }
          }
        }
      }
    }
  }
}

  【1】计划通常配置为运行频率较低。该例子将间隔设置为10秒,以便你可以轻松的查看正在触发的监控。由于此监控运行频繁,不要忘记在完成实验后删除监控。

  假如你去检查监控的历史,你将看到该监控每10秒被触发。然而,搜索没有返回任何结果,所以没有什么被加载到监控的有效负荷。

  例如,以下请求从监视历史记录中检索最后十次监视执行(观察记录):

GET .watcher-history*/_search?pretty
{
  "sort" : [
    { "result.execution_time" : "desc" }
  ]
}

Add a Condition

  条件评估您加载到监视的数据,并确定是否需要执行任何操作。现在,您已经将错误日志加载到监视中,您可以定义一个条件,以检查是否发现任何错误。

  例如,以下比较条件只需检查查询输入是否返回任何命中。

PUT _xpack/watcher/watch/log_error_watch
{
  "trigger" : { "schedule" : { "interval" : "10s" }},
  "input" : {
    "search" : {
      "request" : {
        "indices" : [ "logs" ],
        "body" : {
          "query" : {
            "match" : { "message": "error" }
          }
        }
      }
    }
  },
  "condition" : {
    "compare" : { "ctx.payload.hits.total" : { "gt" : 0 }} 【1】
  }
}  

  【1】:比较条件允许您轻松地与执行上下文中的值进行比较。

  为了将此比较条件求值为true,您需要向日志索引中添加一个包含错误的事件。例如,以下请求向日志索引中添加404错误:

POST logs/event
{
    "timestamp" : "2015-05-17T18:12:07.613Z",
    "request" : "GET index.html",
    "status_code" : 404,
    "message" : "Error: File not found"
}

  一旦您添加了该事件,在监视下一次执行的时候,该条件将评估为true。每次执行监视时,条件结果都将作为watch_record的一部分进行记录,因此您可以通过搜索监视历史记录来验证条件是否满足:

GET .watcher-history*/_search?pretty
{
  "query" : {
    "bool" : {
      "must" : [
        { "match" : { "result.condition.met" : true }},
        { "range" : { "result.execution_time" : { "from" : "now-10s" }}}
      ]
    }
  }
}

Configure an Action

  在监视历史中记录监视记录是不错的,但是当监控条件被满足时,监控的真正实力就能够做到。当监视条件被评估为true时,监视的动作定义应做什么。你可以发送电子邮件,调用第三方webhooks,向Elasticsearch索引写文档,或向标准Elasticsearch日志文件中记录消息。

  例如,当检测到错误时,以下操作会将消息写入Elasticsearch日志。

PUT _xpack/watcher/watch/log_error_watch
{
  "trigger" : { "schedule" : { "interval" : "10s" }},
  "input" : {
    "search" : {
      "request" : {
        "indices" : [ "logs" ],
        "body" : {
          "query" : {
            "match" : { "message": "error" }
          }
        }
      }
    }
  },
  "condition" : {
    "compare" : { "ctx.payload.hits.total" : { "gt" : 0 }}
  },
  "actions" : {
    "log_error" : {
      "logging" : {
        "text" : "Found {{ctx.payload.hits.total}} errors in the logs"
      }
    }
  }
}

Delete the Watch

  自由于log_error_watch被配置为每10秒运行,因此在完成实验后请确保将其删除。否则,该样本监视的噪音(niose)将使您很难看到您的监视历史记录和日志中发生了什么。

  移除该监视,使用DELETE watch API:

DELETE _xpack/watcher/watch/log_error_watch

Where to Go Next

  • 有关监视和监视生命周期的解剖结构的更多信息,请参阅监控器的工作原理
  • 有关设置监视的更多实例,请参阅监视例子
  • 请参阅Elastic实例中的监视例子,以获取更多监视实例,您可以将其作为构建自定义监视的起点。

原文地址:https://www.elastic.co/guide/en/x-pack/5.0/watcher-getting-started.html

监视器入门

标签:post   error:   做什么   examples   sea   div   添加   elastic   sch   

原文地址:http://www.cnblogs.com/benjiming/p/7197360.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!