Watcher编辑

Watcher 是 Elasticsearch 的一项功能,您可以使用它根据条件创建操作,这些条件会使用数据查询定期进行评估。Watcher 有助于分析关键任务和业务关键型流数据。例如,您可以监视应用程序日志以了解性能中断或审核访问日志以了解安全威胁。

要开始使用,请打开主菜单,然后单击 堆栈管理 > Watcher。使用此 UI,您可以

Watcher list

对集群和索引事件发出警报 是有关监视器工作原理的详细信息的良好来源。如果您正在使用 UI 创建阈值监视器,请查看不同的监视器操作。如果您正在创建高级监视器,则应该熟悉监视器的各个部分 - 输入、计划、条件和操作。

Watcher 中存在影响 Kibana 的限制。有关信息,请参阅 警报

Watcher 安全性编辑

要在 Kibana 中使用 Watcher,您必须具有内置的 kibana_admin 角色以及以下任一 Watcher 角色

  • watcher_admin。您可以执行所有 Watcher 操作,包括创建和编辑监视器。
  • watcher_user。您可以查看监视器,但不能创建或编辑它们。

要管理角色,请打开主菜单,然后单击 堆栈管理 > 角色,或使用 Kibana 角色管理 API。监视器在具有相同角色的所有用户之间共享。

如果您正在创建阈值监视器,则还必须具有 view_index_metadata 索引权限。有关详细信息,请参阅 索引管理

创建阈值警报编辑

阈值警报是您可以创建的最常见的监视器类型之一。此警报会定期检查您的数据在给定时间间隔内何时高于、低于、等于或介于某个阈值之间。

以下示例将指导您完成创建阈值警报的过程。当机器上的最大 CPU 总使用率超过某个百分比时,将触发警报。该示例使用 Metricbeat 从您的系统和服务中收集指标。 了解更多 有关如何安装和开始使用 Metricbeat 的信息。

定义监视器输入和计划编辑

  1. 单击 创建,然后选择 创建阈值警报

    您将导航到一个页面,要求您定义监视器名称、要评估的数据以及要触发监视器的频率。

  2. 输入您要调用警报的名称,例如 cpu_threshold_alert
  3. 要查询的索引 字段中,输入 metricbeat-* 并选择 @timestamp 作为时间字段。
  4. 使用默认计划每 1 分钟运行一次监视器。

    Input and schedule for threshold alert

添加条件编辑

现在,您应该会看到一个面板,其中包含默认条件和基于这些条件的数据可视化。该条件会评估您已加载到监视器中的数据,并确定是否需要采取任何措施。

  1. 单击 WHEN 表达式并将值更改为 max()

    现在将出现 OF 表达式。

  2. 搜索 system.process.cpu.total.norm.pct 并从列表中选择它。
  3. 选择 IS ABOVE 表达式并将值更改为 .25,以便在 CPU 超过 25% 时触发警报。

    更改条件时,可视化会自动更新。黑线表示阈值 (25%),而绿色波动线表示设定时间段内 CPU 的变化。

    Condition for threshold alert

添加操作编辑

现在已经设置了条件,您必须添加一个操作。满足监视器条件时将触发该操作。有关操作的完整列表以及如何配置它们,请参阅 向操作添加条件

在此示例中,您将配置电子邮件操作。您必须在 Elasticsearch 中 配置电子邮件帐户 才能使此示例正常工作。

  1. 单击 添加操作 并选择 电子邮件
  2. 收件人电子邮件地址 字段中,输入一个或多个电子邮件地址,您希望在满足条件时向其发送消息。
  3. 输入电子邮件的主题和正文。
  4. 要在保存监视器之前测试操作,请单击 发送测试电子邮件

    将使用您设置的配置发送示例电子邮件。

  5. 单击 创建警报

    警报将显示在 Watcher 概览页面上,您可以在其中深入了解监视器历史记录和状态。

删除警报编辑

在此示例中,您将阈值设置为 25%,以便您可以看到监视器执行其操作。在实际情况下,此阈值可能太低,因为警报会过于频繁。完成实验后,您应该删除警报。在 Watcher 概览页面上找到警报,然后单击 操作 列中的垃圾桶图标。

编辑警报编辑

或者,您可以保留警报并调整阈值。要编辑警报,请在 Watcher 概览页面上找到警报,然后单击 操作 列中的铅笔图标。

查看监视器历史记录和状态编辑

Watcher 概览页面列出了您的监视器,包括每个监视器的状态、上次满足其条件的时间、上次检查条件的时间,以及其任何操作是否已确认、限制或执行失败。每个监视器可以处于以下三种状态之一

  • 活动。 监视器工作正常。
  • 非活动。 监视器工作正常,但被故意禁用,因此它不会执行任何操作。
  • 错误。 监视器工作不正常。

您可以从此页面深入了解监视器以调查其历史记录和状态。

查看监视器历史记录编辑

执行历史记录 选项卡显示每次触发监视器的时间以及查询结果、条件是否满足以及采取了哪些操作。

Execution history tab

确认操作状态编辑

操作状态 选项卡列出了与监视器关联的所有操作以及每个操作的状态。某些操作可以被确认,这将防止对相关监视器执行太多此类操作。有关详细信息,请参阅 确认和限制

Action status tab

停用和删除监视器编辑

用于停用和删除监视器的操作位于每个监视器详细信息页面上

  • 停用监视器 如果您知道某个情况已计划好,会导致误报。您可以在情况解决后重新激活监视器。
  • 删除监视器 以将其从系统中永久删除。您可以删除当前正在查看的监视器,或转到 Watcher 概览,然后批量删除监视器。

创建高级监视器编辑

高级监视器适用于更熟悉 Elasticsearch 查询语法和 Watcher 框架的用户。UI 与使用 REST API 一致。有关更多信息,请参阅 查询 DSL

创建监视器编辑

在“监视器概览”页面上,单击 创建 并选择 创建高级监视器。高级监视器需要名称和 ID。名称是一种用户友好的方式来标识监视器,而 ID 指的是 Elasticsearch 使用的标识符。有关如何输入监视器 JSON,请参阅 监视器定义

Create advanced watch

模拟监视器编辑

模拟 选项卡允许您覆盖监视器的部分内容,然后运行模拟。请注意有关覆盖的以下实现细节

  • 触发器覆盖使用 日期数学
  • 输入覆盖接受 JSON blob。
  • 条件覆盖表示您是否希望强制条件始终为 true
  • 操作覆盖支持 多个选项

某些监测器,例如使用基本身份验证凭据的监测器,包含密码。 出于安全原因,Watcher UI 加载的任何监测器都将删除这些密码。 您需要手动重新输入这些密码才能模拟监测器。

启动模拟后,您将看到结果屏幕。 有关响应中字段的更多信息,请参阅执行监测器 API

Create advanced watch

高级监测器示例编辑

参考这些示例来创建高级监测器