创建和管理规则
Elastic Stack Serverless
Stack Management(堆栈管理) > Rules(规则) UI 提供了一个跨应用程序的告警视图。不同的 Kibana 应用程序,例如 Observability(可观测性)、Security(安全性)、Maps(地图) 和 Machine Learning(机器学习) 都可以提供自己的规则。
您可以在 Kibana 的 Stack Management(堆栈管理) > Alerts and insights(告警和洞察) > Rules(规则) 中找到 Rules(规则),或者使用全局搜索字段。
Rules(规则) 提供了一个中心位置来
有关告警概念以及可用规则和连接器类型的更多信息,请访问告警。
对规则的访问是根据您的告警功能权限授予的。有关更多信息,请访问安全性。
某些规则必须在 Kibana 应用程序(例如 Metrics(指标)、APM 或 Uptime)的上下文中创建,但其他规则是通用的。可以通过单击 Create rule(创建规则) 按钮在 Rules(规则) 中创建通用规则类型。这将启动一个浮出层,引导您选择规则类型并配置其条件和操作。
创建规则后,您可以打开操作菜单 (…) 并选择 Edit rule(编辑规则) 以重新打开浮出层并更改规则属性。
您还可以使用适用于 Terraform 的 Elasticstack provider(Elasticstack 提供程序) 将规则作为资源进行管理。有关更多详细信息,请参阅 elasticstack_kibana_alerting_rule 资源。
根据 Kibana 应用程序和上下文,系统可能会提示您选择要创建的规则类型。某些应用程序会为您预先选择规则类型。
每种规则类型都提供了定义检测条件的自身方法,但由一系列子句组成的表达式是一种常见模式。例如,在 Elasticsearch 查询规则中,您可以指定索引、查询和阈值,该阈值使用指标聚合操作(count
、average
、max
、min
或 sum
)。

所有规则都必须有一个检查间隔,用于定义评估规则条件的频率。检查已排队;它们会尽可能接近定义的价值运行,因为容量允许。
有关可用规则类型以及如何配置它们的详细信息,请参阅规则类型。
您可以向规则添加一个或多个操作,以在其条件得到满足以及不再满足时生成通知。
每个操作都使用一个连接器,该连接器为 Kibana 服务或第三方集成提供连接信息,具体取决于您要将通知发送到何处。
[预览] 某些在 Kibana 中执行操作的连接器(例如 Cases connector(案例连接器))需要较少的配置。例如,您无需设置操作频率或变量。
选择连接器后,设置操作频率。您可以选择在每个检查间隔或自定义间隔上创建告警摘要。或者,您可以选择为每个告警运行操作(在每个检查间隔、仅当告警状态更改时或在自定义间隔)。
如果您选择自定义操作间隔,则它不能短于规则的检查间隔。
例如,如果您创建 Elasticsearch 查询规则,则可以发送在自定义间隔上总结新告警、持续告警和已恢复告警的通知

当您选择为每个告警运行操作时,必须指定一个操作组。每种规则类型都有一组有效的操作组,这些操作组会影响操作的运行时间。例如,您可以将 Run when(何时运行) 设置为 Query matched(查询匹配)
或 Recovered(已恢复)
以用于 Elasticsearch 查询规则

连接器对于每个操作组都具有独特的行为。例如,您可以让操作在满足规则条件时创建 Opsgenie 告警,以及在满足规则条件时关闭 Opsgenie 告警的恢复操作。有关连接器的更多信息,请参阅 连接器。
如果您不使用告警摘要,则会为每个告警生成操作,并且规则最终可能会生成大量操作。以下面的示例为例,该规则每分钟监控三台服务器的 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(在状态更改时)
。或者,请考虑使用告警摘要来减少通知量。
您可以在检测到条件时将规则值传递给操作。要查看您的规则可用的变量列表,请单击“add rule variable(添加规则变量)”按钮

有关常用操作变量的更多信息,请参阅规则操作变量。
通过规则列表,您可以快速暂停、禁用、启用或删除单个规则。例如,您可以更改规则的状态
如果存在当前不需要的规则,请禁用它们以停止运行检查并减少集群上的负载。
当您暂停一个规则时,该规则检查会继续按计划运行,但不会生成警报操作。您可以暂停指定的时间段、无限期暂停,或安排单次或重复的停机时间
当规则处于暂停状态时,您可以取消或更改此状态的持续时间。
[预览] 要临时禁止规则的通知,您还可以创建一个维护窗口。
您可以通过查看 Stack Management > Rules 中的 Last response 来确定规则的运行状况。规则可以有以下响应之一
failed(失败)
- 规则运行出错。
succeeded(成功)
- 规则运行无误。
warning(警告)
- 规则运行中出现一些非关键错误。
点击规则名称以访问规则详细信息页面

在本示例中,该规则检测到某个站点在 24 小时内提供的字节数超过阈值。有四个站点超出阈值。这些称为警报 - 检测到的条件发生的情况 - 警报名称、状态、检测时间以及条件的持续时间显示在此视图中。警报会根据规则条件是否满足而在列表中出现和消失。有关警报的更多信息,请转到查看警报。
如果某些规则操作未能成功运行,您可以在 History 选项卡上查看详细信息。在 Message 列中,单击警告或展开图标,或者单击 Errored actions 列中的数字以打开 Errored Actions 面板。在此示例中,操作失败,因为
xpack.actions.email.domain_allowlist
设置已更新,并且操作的电子邮件收件人不再包含在允许列表中

要导入和导出规则,请使用已保存的对象。
规则在导出时会被禁用。成功导入后,系统会提示您重新启用该规则。
