创建索引阈值规则

编辑

创建索引阈值规则

编辑

索引阈值规则类型运行一个 Elasticsearch 查询。它聚合文档中的字段值,将它们与阈值进行比较,并在满足阈值时安排操作运行。

Stack Management(堆栈管理) > Rules(规则) 中,单击 Create rule(创建规则)。选择 Index threshold(索引阈值) 规则类型,然后填写名称和可选标签。

定义条件

编辑

创建索引阈值规则时,必须定义规则要检测的条件。例如:

Defining index threshold rule conditions in Kibana
  1. 指定要查询的索引和将用于时间窗口的时间字段。
  2. WHEN 子句中,指定如何计算与阈值进行比较的值。该值是通过聚合时间窗口中的数字字段来计算的。聚合选项有:计数、平均值、总和、最小值和最大值。使用计数时,将使用文档计数,不需要聚合字段。
  3. OVERGROUPED OVER 子句中,指定聚合是应用于所有文档还是使用分组字段拆分为组。如果使用分组,则当每个组超过阈值时,将为每个组创建一个警报。要限制高基数字段上的警报数量,必须指定要针对阈值检查的组数。仅检查顶部组。
  4. 选择一个阈值和一个比较运算符(高于高于或等于低于低于或等于介于)。聚合的结果将与此阈值进行比较。
  5. FOR THE LAST 子句中,指定一个时间窗口。它确定搜索文档的回溯时间,并使用索引子句中设置的时间字段。
  6. (可选)添加一个 KQL 表达式以进一步细化规则检测到的条件。
  7. 设置检查间隔,该间隔定义了评估规则条件的频率。通常,此值应设置为小于时间窗口的值,以避免检测中的空白。
  8. 在高级选项中,您可以更改在发生警报之前必须满足规则条件的连续运行次数。默认值为 1

如果数据可用并且已定义所有子句,则预览图表将呈现阈值,并显示一个折线图,该图显示最近 30 个间隔的值。这可以指示最近的值及其与阈值的接近程度,并帮助您调整子句。

添加操作

编辑

您可以选择在满足规则条件和不再满足规则条件时发送通知。特别是,此规则类型支持:

  • 警报摘要
  • 满足阈值时运行的操作
  • 不再满足规则条件时运行的恢复操作

对于每个操作,您必须选择一个连接器,该连接器提供 Kibana 服务或第三方集成的连接信息。有关所有支持的连接器的更多信息,请转到连接器

选择连接器后,必须设置操作频率。您可以选择在每个检查间隔或自定义间隔上创建警报摘要。例如,在自定义间隔上汇总新的、正在进行的和已恢复的警报。

UI for defining alert summary action in an index threshold rule

或者,您可以设置操作频率,以便为每个警报运行操作。选择操作的运行频率(在每个检查间隔、仅在警报状态更改时或在自定义操作间隔)。您还必须选择一个操作组,该组指示操作是在满足阈值时运行还是在警报恢复时运行。每个连接器都为每个操作组支持一组特定的操作。例如:

UI for defining an action for each alert

您可以通过指定仅当操作与 KQL 查询匹配或在特定时间范围内发生警报时才运行操作来进一步细化操作运行的条件。

添加操作变量

编辑

以下操作变量特定于索引阈值规则。您还可以指定所有规则通用的变量

context.conditions
阈值条件的描述。示例:计数大于 4
context.date
规则满足阈值条件的日期,采用 ISO 格式。示例:2020-01-01T00:00:00.000Z
context.group
与阈值条件关联的操作组的名称。示例:满足阈值
context.message
规则的预构建消息。示例:
规则“kibana sites - high egress”对于组“threshold met”处于活动状态
- 值:42
- 满足的条件:5m 内计数大于 4
- 时间戳:2020-01-01T00:00:00.000Z
context.title
规则的预构建标题。示例:规则 kibana sites - high egress 满足阈值
context.value
满足阈值条件的规则的值。

示例

编辑

在此示例中,您将使用 Kibana 示例 Weblog 数据集来设置和调整索引阈值规则的条件。在此示例中,您想要检测当任何前四个站点在 24 小时内提供超过 420,000 字节时。

  1. 转到 Stack Management(堆栈管理) > Rules(规则) 并单击 Create rule(创建规则)
  2. 选择 Index threshold(索引阈值) 规则类型。

    1. 提供规则名称。
    2. 选择一个索引。单击 Index(索引),并将 Indices to query(要查询的索引) 设置为 kibana_sample_data_logs。将 Time field(时间字段) 设置为 @timestamp

      Choosing an index
    3. 要检测时间窗口内提供的字节数,请单击 When(何时) 并选择 sum(总和) 作为聚合,并选择 bytes(字节) 作为要聚合的字段。

      Choosing the aggregation
    4. 要检测流量最多的四个站点,请单击 Over(覆盖) 并选择 top(顶部),输入 4,然后选择 host.keyword 作为字段。

      Choosing the groups
    5. 要当任何前四个站点在 24 小时内超过 420,000 字节时触发规则,请选择 is above(高于) 并输入 420000。然后单击 For the last(最近),输入 24,然后选择 hours(小时)

      Setting the threshold
    6. 计划每四个小时检查一次规则。

      Setting the check interval

      预览图表将呈现,显示过去 120 小时(最近 30 个间隔)每 4 小时间隔的 24 小时字节总和。

    7. 更改时间窗口并观察它对图表的影响。将 24 小时窗口与 12 小时窗口进行比较。请注意字节总和的可变性,这是由于白天与夜间的流量水平不同造成的。这种可变性会导致规则嘈杂,因此 24 小时窗口更好。预览图表可以帮助您找到规则的正确值。
    8. 定义规则的操作。

      您可以向规则添加一个或多个操作,以便在其条件得到满足和不再满足时生成通知。对于每个操作,您必须选择一个连接器,设置操作频率,并撰写通知详细信息。例如,添加一个使用服务器日志连接器将条目写入 Kibana 服务器日志的操作。

      Add an action to the rule

      您可以在通知中使用的唯一操作变量在添加操作变量中列出。有关更多信息,请参阅操作连接器

    9. 保存规则。
  3. Stack Management(堆栈管理) > Rules(规则) 中查找规则并查看其详细信息。例如,您可以看到规则的状态及其警报。

    View the list of alerts for the rule
  4. 当此示例规则不再有用时,请删除或禁用它。在详细规则视图中,从操作菜单中选择 Delete rule(删除规则)