Watcher

编辑

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

使用导航菜单或全局搜索字段转到 Watcher 页面。使用此 UI,你可以

Watcher list

关于集群和索引事件的告警 是关于 Watch 工作原理的详细信息的一个很好的来源。如果你正在使用 UI 创建阈值 Watch,请查看不同的 Watcher 操作。如果你正在创建高级 Watch,你应该熟悉 Watch 的各个部分 - 输入、计划、条件和操作。

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

Watcher 安全

编辑

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

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

要管理角色,请转到 角色 管理页面,或使用 角色 API。具有相同角色的所有用户之间共享 Watch。

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

创建阈值告警

编辑

阈值告警是你最常创建的 Watch 类型之一。此告警会定期检查你的数据在给定的时间间隔内何时高于、低于、等于或介于某个阈值之间。

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

定义 Watch 输入和计划

编辑
  1. 单击 创建,然后选择 创建阈值告警

    你将导航到一个页面,你需要在该页面定义 Watch 名称、你要评估的数据以及你希望触发 Watch 的频率。

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

    Input and schedule for threshold alert

添加条件

编辑

你现在应该看到一个面板,其中包含默认条件以及基于这些条件的数据可视化效果。该条件会评估你已加载到 Watch 中的数据,并确定是否需要执行任何操作。

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

    现在出现 OF 表达式。

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

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

    Condition for threshold alert

添加操作

编辑

现在设置了条件,你必须添加操作。当满足 Watch 条件时,将触发操作。有关操作的完整列表以及如何配置它们,请参阅 向操作添加条件

在此示例中,你将配置电子邮件操作。你必须在 Elasticsearch 中配置电子邮件帐户才能使此示例生效。

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

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

  5. 单击 创建告警

    该告警会出现在 Watcher 概述页面上,你可以在该页面深入查看 Watch 历史记录和状态。

删除告警

编辑

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

编辑告警

编辑

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

查看 Watch 历史记录和状态

编辑

Watcher 概述页面列出你的 Watch,包括每个 Watch 的状态、上次满足条件的时间、上次检查条件的时间以及是否已确认、限制或未能执行其任何操作。每个 Watch 可以处于以下三种状态之一

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

在此页面中,你可以深入查看 Watch 以调查其历史记录和状态。

查看 Watch 历史记录

编辑

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

Execution history tab

确认操作状态

编辑

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

Action status tab

停用和删除 Watch

编辑

用于停用和删除 Watch 的操作在每个 Watch 详细信息页面上

  • 如果你知道计划会引发误报,请停用 Watch。你可以在情况解决后重新激活 Watch。
  • 删除 Watch 将其从系统中永久删除。你可以删除当前正在查看的 Watch,或者转到 Watcher 概述并批量删除 Watch。

创建高级 Watch

编辑

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

创建 Watch

编辑

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

Create advanced watch

模拟 Watch

编辑

模拟 选项卡允许你覆盖 Watch 的某些部分,然后运行模拟。请注意以下关于覆盖的实现细节

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

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

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

Create advanced watch

高级 Watch 的示例

编辑

请参阅以下示例来创建高级 Watch