警报
Elastic Stack Serverless
通常,一个规则由三个部分组成
- 条件:需要检测什么?
- 计划:应该何时/多久运行一次检测检查?
- 操作:当检测到条件时会发生什么?
例如,在监视一组服务器时,规则可能
- 检查过去两分钟内每台服务器的平均 CPU 使用率是否 > 0.9(条件)。
- 每分钟检查一次(计划)。
- 通过 SMTP 发送一封警告电子邮件,主题为
CPU on {{server}} is high
(操作)。
每个项目类型都支持一组特定的规则类型。每个规则类型都提供自己定义检测条件的方式,但由一系列子句组成的表达式是一种常见模式。例如,在 Elasticsearch 查询规则中,您可以指定索引、查询和阈值,该阈值使用指标聚合操作(count
、average
、max
、min
或 sum
)

所有规则都必须具有检查间隔,该间隔定义了评估规则条件的频率。检查会被排队;它们会尽可能接近定义的值运行,只要容量允许。
Kibana 中规则检查的间隔是近似值。它们的计时受到诸如任务声明的频率和系统上的任务负载等因素的影响。请参阅 警报生产注意事项
您可以向规则添加一个或多个操作,以便在其条件得到满足时生成通知。当不再满足规则条件时,也会运行恢复操作。
在规则中定义操作时,您可以指定
- 连接器
- 操作频率
- 规则值到该类型操作公开的属性的映射
每个操作都使用一个连接器,该连接器为 Kibana 服务或第三方集成提供连接信息,具体取决于您要将通知发送到哪里。您可以在规则中使用的特定连接器列表因项目类型而异。请参阅 连接器。
选择连接器后,设置操作频率。如果您想在不影响其及时性的情况下减少收到的通知数量,某些规则类型支持警报摘要。例如,如果创建一个 Elasticsearch 查询规则,您可以设置操作频率,以便您在自定义间隔收到新的、持续的和恢复的警报的摘要

或者,您可以设置操作频率,以便该操作对每个警报运行。如果规则类型不支持警报摘要,这是您唯一的可用选项。您必须选择操作运行的时间(例如,在每个检查间隔、仅当警报状态更改时或在自定义操作间隔)。您还必须选择一个操作组,该操作组会影响操作是否运行。每个规则类型都有一组特定的有效操作组。例如,您可以将何时运行设置为 Query matched
或 Recovered
用于 Elasticsearch 查询规则

每个连接器都支持每个操作组的一组特定操作,并启用不同的操作属性。例如,您可以设置在满足规则条件时创建 Opsgenie 警报的操作,以及关闭 Opsgenie 警报的恢复操作。
某些类型的规则允许您进一步优化操作运行的条件。例如,您可以指定操作仅在特定时间范围内发生警报时或当警报匹配 KQL 查询时才运行。
如果您不使用警报摘要,则操作将针对每个警报触发,并且规则最终可能会生成大量操作。以下示例中,规则每分钟监视三台服务器的 CPU 使用率 > 0.9,并且操作频率为 On check intervals
- 第 1 分钟:服务器 X123 > 0.9。为服务器 X123 发送一封电子邮件。
- 第 2 分钟:X123 和 Y456 > 0.9。发送两封电子邮件,一封给 X123,一封给 Y456。
- 第 3 分钟:X123、Y456、Z789 > 0.9。发送三封电子邮件,每封分别给 X123、Y456、Z789。
在此示例中,在 3 分钟内为同一规则向服务器 X123 发送了三封电子邮件。通常,最好抑制这些重新通知。如果您将操作频率设置为 On custom action intervals
,间隔为 5 分钟,您可以通过仅每 5 分钟收到一次电子邮件来减少噪音,这些电子邮件是发送给继续超过阈值的服务器的
- 第 1 分钟:服务器 X123 > 0.9。将为服务器 X123 发送一封电子邮件。
- 第 2 分钟:X123 和 Y456 > 0.9。将为 Y456 发送一封电子邮件。
- 第 3 分钟:X123、Y456、Z789 > 0.9。将为 Z789 发送一封电子邮件。
要仅在服务器超过阈值时收到一次通知,您可以将操作频率设置为 On status changes
。或者,如果规则类型支持警报摘要,请考虑使用它们来减少通知量。
您可以在检测到条件时将规则值传递给操作。要查看规则的可用变量列表,请单击“添加规则变量”按钮

有关常见操作变量的更多信息,请参阅 规则操作变量
在检查条件时,规则可能会识别出该条件的多次出现。 Kibana 会分别跟踪每个警报。 根据操作频率,每次警报或在指定的警报摘要间隔都会发生一次操作。
使用服务器监视示例,每个平均 CPU > 0.9 的服务器都将作为警报进行跟踪。 这意味着每当警报状态更改时,都会为每个超过阈值的服务器发送一封单独的电子邮件。
规则由条件、操作和计划组成。满足条件后,将创建警报来呈现操作并调用它们。为了简化操作设置和更新,操作使用连接器来集中用于连接 Kibana 服务和第三方集成的信息。以下示例将这些概念联系在一起
- 每当满足规则的条件时,都会创建一个警报。此示例检查平均 CPU > 0.9 的服务器。三台服务器满足条件,因此创建了三个警报。
- 警报根据操作频率创建操作,只要它们未被静音或限制。创建操作时,其属性将填充实际值。在此示例中,满足阈值时会创建三个操作,并且模板字符串
{{server}}
会替换为每个警报的相应服务器名称。 - Kibana 运行这些操作,通过使用诸如电子邮件服务之类的第三方集成来发送通知。
- 如果第三方集成具有连接参数或凭据,Kibana 会从相应的连接器中获取这些信息。