创建指标阈值规则

编辑

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

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

当您在指标资源管理器页面上创建此规则时,该规则会自动填充与页面相同的参数。如果您选择了一个按...分组值,则您的规则会预先配置为监控和通知页面上显示的每个单独图表。

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

指标条件
编辑

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

在此示例中,条件声明您将为 CPU 使用率为 120% 或更高的主机收到严重警报,如果 CPU 使用率为 100% 或更高,则会收到警告警报。请注意,根据第二个条件,只有当内存使用率为 20% 或更高时,您才会收到警报。

Metric threshold alert

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

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

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

按...分组告警为添加的每个唯一值field创建该告警的一个实例。例如,您可以为每台主机或每台主机的每个挂载点创建一个规则。您还可以添加多个字段。在此示例中,该规则将分别跟踪基础架构中每个host.name的状态。只有当host.name: host-1超过阈值而host-2host-3没有超过阈值时,您才会收到关于host-1的警报。

当您选择如果一个组停止报告数据则告警时,如果先前报告指标的组在预期的时间段内再次未报告指标,则会触发该规则。

如果您在过滤器分组依据中都包含相同的字段,则您可能收到的结果少于预期。例如,如果您按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
指向警报源的链接。
设置
编辑

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

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

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