创建或编辑警报规则

本文介绍如何创建新的警报规则或编辑现有警报规则。 若要详细了解警报,请参阅警报概述

通过组合以下内容来创建警报规则:

  • 要监视的资源。
  • 来自资源的信号或数据。
  • 条件。

然后,为警报操作定义以下元素:

由这些警报规则触发的警报会包含使用通用警报架构的有效负载。

在Azure 门户中创建或编辑警报规则

可通过多种方式创建新的警报规则。

若要从门户主页创建新的警报规则,请执行以下操作:

  1. 门户中,选择“监视”>“警报”。

  2. 打开“+ 创建”菜单,然后选择“警报规则”。

    Screenshot that shows steps to create a new alert rule.

若要从特定资源创建新的警报规则,请执行以下操作:

  1. 门户中,导航到资源。

  2. 从左窗格中选择“警报”,然后选择“+ 创建”>“警报规则”。

    Screenshot that shows steps to create a new alert rule from a selected resource.

若要编辑现有警报规则,请执行以下操作:

  1. 门户的主页或特定资源,从左窗格中选择“警报”。

  2. 选择“警报规则”。

  3. 选择要编辑的警报规则,然后选择“编辑”。

    Screenshot that shows steps to edit an existing alert rule.

  4. 选择警报规则的任一选项卡以编辑设置。

设置警报规则范围

  1. 在“选择资源”窗格中,设置警报规则的范围。 可以按订阅、资源类型或资源位置进行筛选。

  2. 选择“应用”。

  3. 选择页面底部的“下一步:条件”。

    Screenshot that shows the select resource pane for creating a new alert rule.

设置警报规则条件

  1. 当在“条件”选项卡上,选择“信号名称”字段时,最常用的信号将显示在下拉列表中。 从这些常用信号中选择一个,或者如果要为条件选择其他信号,请选择“查看所有信号”。

    Screenshot that shows popular signals when creating an alert rule.

  2. (可选)如果在上一步中选择了“查看所有信号”,请使用“选择信号”窗格搜索信号名称或筛选信号列表。 筛选依据:

    • 信号类型:要创建的警报规则类型
    • 信号源:发送信号的服务。 以下列表是根据所选警报规则的类型预先填充的。

    下表描述了每种警报规则类型的可用服务:

    信号类型 信号源 说明
    指标 平台 对于指标信号,监视服务是指标命名空间。 “平台”表示指标由资源提供程序(即“Azure”)提供。
    Azure.ApplicationInsights 客户报告的指标,由 Application Insights SDK 发送。
    Azure.VM.Windows.GuestMetrics VM 来宾指标,由 VM 上运行的扩展收集。 可以包括内置操作系统性能计数器和自定义性能计数器。
    <自定义命名空间> 自定义指标命名空间,包含使用 Azure Monitor 指标 API 发送的自定义指标。
    日志 Log Analytics 提供“自定义日志搜索”和“日志(保存的查询)”信号的服务。
    活动日志 活动日志 - 管理 提供“管理”活动日志事件的服务。
    活动日志 - 策略 提供“策略”活动日志事件的服务。
    活动日志 - 自动缩放 提供“自动缩放”活动日志事件的服务。
    活动日志 - 安全性 提供“安全”活动日志事件的服务。
    资源运行状况 资源运行状况 提供资源级运行状况状态的服务。
    服务运行状况 服务运行状况 提供订阅级运行状况状态的服务。

    选择“信号名称”和“应用”。

  3. 按照选项卡中与所创建的警报类型相对应的步骤进行操作。

    1. 在“预览”部分预览所选指标信号的结果。 选择以下字段的值。

      字段 说明
      时间范围 要包含在结果中的对象的时间范围。 可以是从过去 6 小时到上周。
      时序 要包含在结果中的对象的时序。
    2. 在“警报逻辑”部分中:

      字段 说明
      阈值 选择是否应根据静态值或动态值评估阈值。
      静态阈值使用配置的阈值来评估规则。
      动态阈值使用机器学习算法持续了解指标行为模式,并计算意外行为的相应阈值。 可以详细了解如何对指标警报使用动态阈值
      运算符 选择用于将指标值与阈值进行比较的运算符。
      如果你使用的是动态阈值,则预警规则可以根据同一预警规则中上限和下限的指标行为使用定制的阈值。 选择以下运算符之一:
      - 大于阈值上限或低于阈值下限(默认值)
      - 大于阈值上限
      - 低于阈值下限
      聚合类型 选择要应用于数据点的聚合函数:Sum、Count、Average、Min 或 Max。
      阈值 如果选择了“静态”阈值,请输入条件逻辑的阈值。
      计价单位 如果所选指标信号支持不同的单位(例如字节、KB、MB 和 GB),并且如果选择了“静态”阈值,请输入条件逻辑的单位。
      阈值敏感度 如果选择了“动态”阈值,请输入敏感度级别。 敏感度级别会影响触发警报所需的指标系列模式偏差量。
      - 高:阈值比较严格,与指标系列模式接近。 预警规则在偏差最小的情况下触发,因此会生成更多的警报。
      - 中:阈值不那么严格,更均衡。 相比高敏感度(默认设置),警报数量更少。
      - 低:阈值宽松,允许与指标系列模式有更大的偏差。 只会在偏差较大的情况下触发预警规则,因此生成的警报较少。
      聚合粒度 选择用于使用聚合类型函数对数据点进行分组的间隔。 选择大于“评估频率”的“聚合粒度”(周期),以降低错过对已添加的时序进行首次评估的可能性。
      评估频率 选择警报规则的运行频率。 选择小于聚合粒度的频率,以生成用于评估的滑动窗口。
    3. (可选)根据信号类型,你可能会看到“按维度拆分”部分。

      维度是名称/值对,其中包含有关指标值的其他数据。 使用维度可以筛选指标并监视特定的时序,而不是监视所有维度值的聚合。

      如果你选择多个维度值,则由组合产生的每个时序将触发它自身的警报,并将单独收费。 例如,存储帐户的“事务”指标有一个名为 API 名称维度,它包含每个事务调用的 API 的名称(例如,GetBlob、DeleteBlob 和 PutPage)。 可以选择当特定 API(即聚合数据)中存在大量事务时触发警报。 或者,你可以使用维度仅在特定 API 的事务数量较高时发出警报。

      字段 说明
      维度名称 维度可以是数字列或字符串列。 维度用于监视特定的时序,并提供触发的警报的上下文。
      对“Azure 资源 ID”列进行拆分会使指定的资源进入警报目标。 如果已检测到,则“ResourceID”列将自动选中,并将触发的警报的上下文更改为记录的资源。
      运算符 对维度名称和值使用的运算符。
      维度值 维度值基于过去 24 小时的数据。 选择“添加自定义值”以添加自定义维度值。
      包括所有未来值 选择此字段可包含添加到所选维度的所有未来值。
    4. (可选)在“何时评估”部分:

      字段 说明
      检查间隔 选择预警规则检查条件是否满足的频率。
      回溯期间 选择每次检查数据时要回溯多远。 例如,每隔 1 分钟查看过去的 5 分钟。
    5. (可选)在“高级选项”部分,你可以指定在特定时间段内有多少次失败会触发警报。 例如,你可以指定只有在过去一小时发生了 3 次失败的情况下才触发警报。 应用程序业务策略应确定此设置。

      选择以下字段的值:

      字段 说明
      违规次数 在配置的时间范围内触发警报的违规次数。
      评估期 发生冲突的时间段。
      忽略此前的数据 使用此设置可选择开始使用指标历史数据计算动态阈值的日期。 例如,如果资源过去在测试模式下运行,现在移至生产模式,你可能希望在资源处于测试状态时忽略指标行为。
    6. 选择“完成”。

    从此刻开始,你可以随时选择“查看 + 创建”按钮。

设置警报规则操作

  1. 在“操作”选项卡中,选择或创建所需的操作组

设置警报规则详细信息

  1. 在“详细信息”选项卡中,定义“项目详细信息”。

    • 选择“订阅”。
    • 选择“资源组”。
  2. 定义“警报规则详细信息”。

    Screenshot that shows the Details tab when creating a new alert rule.

    1. 选择“严重性”。

    2. 输入“警报规则名称”和“警报规则说明”的值。

    3. 选择“区域”。

    4. (可选)“高级选项”部分中,可以设置多个选项。

      字段 说明
      创建时启用 选择警报规则,以便在创建警报规则后立即开始运行。
      自动解决警报(预览版) 选择此项可使警报成为有状态警报。 如果警报为有状态的警报,当不再满足条件时,将解决警报。
      如果未选中此复选框,则指标警报为无状态警报。 每次满足条件时都会触发无状态警报,即使已触发过警报。
      无状态指标警报的通知频率因警报规则的配置频率而异:
      警报频率小于 5 分钟:当继续满足条件时,将在 1 到 6 分钟之间发送通知。
      警报频率超过 5 分钟:当继续满足条件时,将在配置的频率到两倍于该频率值之间发送通知。 例如,对于频率为 15 分钟的警报规则,将在 15 到 30 分钟之间发送通知。
  3. (可选)在“自定义属性”部分中,如果已为此警报规则配置了操作组,则可以添加你自己的属性以将其包含在警报通知有效负载中。 可以在操作组调用的操作(如 Webhook、Azure 函数或逻辑应用操作)中使用这些属性。

    使用静态文本、从警报有效负载中提取的动态值或两者的组合,将自定义属性指定为键:值对。

    用于从警报有效负载中提取动态值的格式为:${<path to schema field>}。 例如:${data.essentials.monitorCondition}。

    无论为警报规则配置的操作组是否使用常见架构,都使用常见警报架构格式指定有效负载中的字段。

    Screenshot that shows the custom properties section of creating a new alert rule.

    以下示例使用了“自定义属性”中的值来利用有效负载中的数据,该有效负载使用常见警报架构:

    示例 1

    此示例会创建一个“更多详细信息”标记,其中包含有关“窗口开始时间”和“窗口结束时间”的数据。

    • 名称:“其他详细信息”
    • 值:“Evaluation windowStartTime: ${data.alertContext.condition.windowStartTime}。 windowEndTime: ${data.alertContext.condition.windowEndTime}”
    • 结果:“AdditionalDetails:Evaluation windowStartTime: 2023-04-04T14:39:24.492Z. windowEndTime: 2023-04-04T14:44:24.492Z"

    示例 2 此示例添加有关解决或触发警报的原因的数据。

    • 名称:“Alert ${data.essentials.monitorCondition} reason”
    • 值:“${data.alertContext.condition.allOf[0].metricName} ${data.alertContext.condition.allOf[0].operator} ${data.alertContext.condition.allOf[0].threshold} ${data.essentials.monitorCondition}。 值为 ${data.alertContext.condition.allOf[0].metricValue}”
    • 结果:示例结果可能如下所示:
      • “警报已解决原因:已解决 CPU 百分比超过 5 的问题。 该值为 3.585”
      • “警报触发原因”:“已触发 CPU 百分比大于 5。 该值为 10.585”

    注意

    常用架构会覆盖自定义配置。 因此,不能同时对日志警报使用自定义属性和常用架构。

完成警报规则的创建

  1. 在“标记”选项卡中,在预警规则资源上设置任何必需的标记。

    Screenshot that shows the Tags tab when creating a new alert rule.

  2. 在“审核 + 创建”选项卡中,将验证该规则并告知所有问题。

  3. 通过验证并查看设置后,选择“创建”按钮。

    Screenshot that shows the Review and create tab when creating a new alert rule.

使用 CLI 创建新的警报规则

可以使用 Azure CLI 创建新的警报规则。 以下代码示例使用 Azure CLI。 可以查看适用于 Azure Monitor 的 Azure CLI 命令的完整列表。

  1. 使用以下命令:

    若要创建指标警报规则,请使用 az monitor metrics alert create 命令。 可以在指标警报的 CLI 参考文档az monitor metrics alert create 部分中查看指标警报规则创建命令的详细文档。

    创建一个指标预警规则来监视 VM 上的平均 CPU 百分比是否大于 90:

     az monitor metrics alert create -n {nameofthealert} -g {ResourceGroup} --scopes {VirtualMachineResourceID} --condition "avg Percentage CPU > 90" --description {descriptionofthealert}
    

使用 PowerShell 创建新的警报规则

使用 ARM 模板创建新的警报规则

可以使用 Azure 资源管理器模板(ARM 模板)在所有环境中统一配置警报规则。

  1. 使用以下资源类型创建新资源:
    • 指标警报:Microsoft.Insights/metricAlerts
    • 日志警报:Microsoft.Insights/scheduledQueryRules
    • 活动日志、服务运行状况和资源运行状况警报:microsoft.Insights/activityLogAlerts

    注意

    • Azure Log Analytics 工作区资源类型 (Microsoft.OperationalInsights/workspaces) 的指标警报的配置与其他指标警报不同。 有关详细信息,请参阅日志的指标警报的资源模板
    • 建议使用与目标资源相同的资源组创建指标警报。
  2. 从这些示例 ARM 模板中复制一个模板。
  3. 编辑模板文件以包含警报的相应信息,并将文件另存为 <your-alert-template-file>.json。
  4. 编辑相应的参数文件以自定义警报,并将其另存为 <your-alert-template-file>.parameters.json。
  5. 使用 Azure Monitor 支持的指标之一设置 metricName 参数。
  6. 使用 PowerShellCLI 部署模板。

活动日志警报 ARM 模板的其他属性

注意

  • 活动日志警报在订阅级别定义。 不能对多个订阅定义单个警报规则。
  • 新的活动日志警报规则可能需要最多 5 分钟才能变为活动状态。

活动日志警报的 ARM 模板包含条件字段的其他属性。 “资源运行状况”、“顾问”和“服务运行状况”字段有额外的属性字段。

字段 说明
ResourceId 对其生成警报的活动日志事件中受影响资源的资源 ID。
category 活动日志事件的类别。 可能的值为 AdministrativeServiceHealthResourceHealthAutoscaleSecurityRecommendationPolicy
caller 执行活动日志事件操作的用户的电子邮件地址或 Microsoft Entra 标识符。
level 警报的活动日志事件中的活动级别。 可能的值为 CriticalErrorWarningInformationalVerbose
operationName 活动日志事件中的操作名称。 可能的值有 Microsoft.Resources/deployments/write
resourceGroup 活动日志事件中受影响资源的资源组名称。
resourceProvider 有关详细信息,请参阅 Azure 资源提供程序和类型。 有关将资源提供程序映射到 Azure 服务的列表,请参阅 Azure 服务的资源提供程序
status 描述活动事件中操作状态的字符串。 可能的值为 StartedIn ProgressSucceededFailedActiveResolved
subStatus 通常情况下,此字段是对应 REST 调用的 HTTP 状态代码。 此字段还可以包含其他描述子状态的字符串。 HTTP 状态代码的示例包括 OK(HTTP 状态代码:200)、No Content(HTTP 状态代码:204)和 Service Unavailable(HTTP 状态代码:503)等等。
resourceType 受事件影响的资源的类型。 例如 Microsoft.Resources/deployments

有关活动日志字段的详细信息,请参阅 Azure 活动日志事件架构

从“活动日志”窗格创建活动日志警报规则

还可以针对与已发生的活动日志事件类似的将来事件创建活动日志警报。

  1. 在“门户”中,转到“活动日志”窗格

  2. 筛选或查找所需的事件。 然后,通过选择“添加活动日志警报”创建警报。

    Screenshot that shows creating an alert rule from an activity log event.

  3. 这将打开“创建警报规则”向导,包括根据之前选择的活动日志事件已填充的范围和条件。 你可根据需要在此阶段编辑和修改范围和条件。 默认情况下,新规则的确切范围和条件是从原始事件属性复制而来的。 例如,对于发生事件的确切资源,以及发起事件的特定用户或服务名称,都默认包含在新的警报规则中。

    如果要使警报规则更通用,请相应地修改范围和条件。 请参阅“在A zure 门户中创建新的警报规则”部分中的步骤 3-9。

  4. 按照在 Azure 门户中创建新警报规则中的其余步骤进行操作。

后续步骤

查看和管理警报实例