创建指标阈值规则

编辑

基于基础架构应用中 指标浏览器 页面上列出的指标,您可以创建一个阈值规则,以便在指标在特定时间段内达到或超过某个值时通知您。

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

当您在 指标浏览器 页面上创建此规则时,该规则会自动填充与该页面相同的参数。如果您选择了每个图表值,则您的规则会预先配置为监视并通知页面上显示的每个单独图表。

您还可以基于单个图表创建规则。在 指标浏览器 页面上,单击 告警和规则创建告警。阈值规则的条件和筛选器部分会自动填充。

指标条件
编辑

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

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

Metric threshold alert

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

筛选和分组
编辑
Metric threshold filter and group fields

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

按以下内容对警报分组为添加的每个唯一 字段 值创建一个警报实例。例如,您可以为每个主机或每个主机的每个挂载点创建规则。您还可以添加多个字段。在此示例中,该规则将单独跟踪您的基础架构中每个 host.name 的状态。如果 host.name: host-1 通过阈值,您将仅收到有关 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
指向警报源的链接。
设置
编辑

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

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

设置 下设置的 时间戳 字段确定哪个字段用于查询中的时间戳。