创建指标阈值规则编辑

基于基础设施应用程序中“指标资源管理器”页面上列出的指标,您可以创建阈值规则,以便在指标在特定时间段内达到或超过某个值时通知您。

此外,每个规则都可以使用多个条件来定义,这些条件将指标和阈值结合起来以创建精确的通知。

  1. 要访问此页面,请转到“可观测性”→“基础设施”。
  2. 在“库存”页面或“指标资源管理器”页面上,单击“告警和规则”→“指标”。
  3. 选择“创建阈值告警”。

当您选择“创建阈值告警”时,规则会自动填充与您在“指标资源管理器”页面上配置的相同参数。如果您选择了“每”值,则您的规则会预先配置为监控和通知有关页面上显示的每个单独图表的信息。

您也可以基于单个图表创建规则。在“指标资源管理器”页面上,单击“告警和规则”→“创建告警”。阈值规则的条件和过滤器部分会自动填充。

指标条件编辑

每个规则的条件可以应用于您选择的特定指标。您可以选择聚合类型(请参阅聚合选项)、指标,并通过包含警告阈值,您可以根据严重性分数在多个阈值上收到告警。为了帮助您确定哪些阈值对您有意义,预览图表提供了可视化效果。

在此示例中,条件指出,对于 CPU 使用率为 120% 或更高的主机,您将收到严重告警;如果 CPU 使用率为 100% 或更高,您将收到警告告警。请注意,您只会收到告警,前提是内存使用率为 20% 或更高,如第二个条件所示。

Metric threshold alert

当您选择“如果无数据,则向我发送告警”时,如果指标在预期时间段内未报告任何数据,或者如果规则无法查询 Elasticsearch,则会触发该规则。

过滤和分组编辑
Metric threshold filter and group fields

“过滤器”控制规则的范围。如果使用,则规则只会评估与该字段中的查询匹配的指标数据。在此示例中,该规则只会针对从名为 us-east 的云区域报告的指标发出告警。

“按告警分组”为添加的每个唯一值 field 创建一个告警实例。例如,您可以为每个主机或每个主机的每个挂载点创建规则。您还可以添加多个字段。在此示例中,该规则将单独跟踪基础设施中每个 host.name 的状态。您只会收到有关 host-1 的告警,如果 host.name: host-1 超过阈值,但 host-2host-3 则不会。

当您选择“如果某个组停止报告数据,则向我发送告警”时,如果以前报告指标的组在预期时间段内不再报告指标,则会触发该规则。

如果您在“过滤器”和“按分组”中都包含相同的字段,您可能会收到比预期更少的結果。例如,如果您按 cloud.region: us-east 过滤,则按 cloud.region 分组将不起作用,因为过滤器查询只能匹配一个区域。

在“高级选项”中,您可以更改必须满足规则条件才能触发告警的连续运行次数。默认值为 1

操作类型编辑

通过将规则连接到使用以下支持的内置集成的操作来扩展您的规则。

某些连接器类型是付费商业功能,而其他连接器类型是免费的。要比较 Elastic 订阅级别,请转到订阅页面

选择连接器后,您必须设置操作频率。您可以选择在每个检查间隔或自定义间隔上创建告警摘要。例如,每小时发送电子邮件通知,总结新的、正在进行的和已恢复的告警

Action types

或者,您可以设置操作频率,以便选择操作运行的频率(例如,在每个检查间隔、仅当告警状态发生变化时,或在自定义操作间隔时)。在这种情况下,您还必须选择影响操作运行时间的特定阈值条件:告警警告无数据已恢复(曾经超过阈值的值现在已降至阈值以下)。

Configure when a rule is triggered

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

  • 如果告警匹配查询:输入一个 KQL 查询,该查询定义必须满足的字段-值对或查询条件,才能发送通知。该查询仅搜索规则指定索引中的告警文档。
  • 如果告警在时间范围内生成:设置时间范围详细信息。仅当在您定义的时间范围内生成告警时,才会发送通知。
Configure a conditional alert
操作变量编辑

使用默认通知消息或自定义通知消息。您可以通过单击消息文本框上方的图标并从可用变量列表中选择来向消息添加更多上下文。

Default notification message for metric threshold rules with open "Add variable" popup listing available action variables

以下变量特定于此规则类型。您还可以指定所有规则共有的变量

context.alertDetailsUrl
指向告警故障排除视图的链接,以获取更多上下文和详细信息。如果未配置 server.publicBaseUrl,则此值将为空字符串。
context.alertState
告警的当前状态。
context.cloud
如果源中可用,则由 ECS 定义的云对象。
context.container
如果源中可用,则由 ECS 定义的容器对象。
context.group
报告数据的组的名称。要访问每个组键,请使用 context.groupByKeys
context.groupByKeys
包含报告数据的组的对象。
context.host
如果源中可用,则由 ECS 定义的主机对象。
context.labels
与触发此告警的实体关联的标签列表。
context.metric
指定条件中的指标名称。用法:(ctx.metric.condition0ctx.metric.condition1 等)。
context.orchestrator
如果源中可用,则由 ECS 定义的编排器对象。
context.originalAlertState
告警恢复之前的状态。此值仅在恢复上下文中可用。
context.originalAlertStateWasALERT
告警恢复之前的状态的布尔值。这可用于模板条件。此值仅在恢复上下文中可用。
context.originalAlertStateWasNO_DATA
告警恢复之前的状态的布尔值。这可用于模板条件。此值仅在恢复上下文中可用。
context.originalAlertStateWasWARNING
告警恢复之前的状态的布尔值。这可用于模板条件。此值仅在恢复上下文中可用。
context.reason
对告警原因的简要描述。
context.tags
与触发此告警的实体关联的标签列表。
context.threshold
指定条件的指标的阈值。用法:(ctx.threshold.condition0ctx.threshold.condition1 等)
context.timestamp
检测到告警的时间戳。
context.value
指定条件的指标的值。用法:(ctx.value.condition0ctx.value.condition1 等)
context.viewInAppUrl
指向告警源的链接。
设置编辑

对于指标阈值规则,无法将显式索引模式设置为配置的一部分。相反,索引模式是从基础设施应用程序的“设置”页面上的“指标索引”中推断出来的。 设置

在每次执行规则检查时,都会检查“指标索引”设置,但在创建规则时不会存储该设置。

在“设置”下设置的“时间戳”字段决定了在查询中使用哪个字段作为时间戳。