正在加载

索引阈值

Elastic Stack Serverless

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

Stack Management > 规则 中,单击 创建规则。选择 索引阈值 规则类型,然后填写名称和可选标签。

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

Defining index threshold rule conditions in {{kib}}
  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
阈值条件的描述。示例:count 大于 4
context.date
规则满足阈值条件的日期,采用 ISO 格式。示例:2020-01-01T00:00:00.000Z
context.group
与阈值条件关联的操作组的名称。示例:满足阈值
context.message
规则的预构建消息。示例
规则 'kibana sites - high egress' 对于组 '满足阈值' 处于活动状态
- 值: 42
- 满足的条件: count 大于 4,超过 5 分钟
- 时间戳: 2020-01-01T00:00:00.000Z
context.title
规则的预构建标题。示例:规则 kibana sites - high egress 满足阈值
context.value
满足阈值条件的规则的值。

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

  1. 转到 Stack Management > 规则,然后单击 创建规则

  2. 选择 索引阈值 规则类型。

    1. 提供规则名称。

    2. 选择索引。单击 索引,然后将 要查询的索引 设置为 kibana_sample_data_logs。将 时间字段 设置为 @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 小时间隔的字节总和。

    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. 如果此示例规则不再有用,请删除或禁用它。 在详细的规则视图中,从操作菜单中选择删除规则

© . All rights reserved.