你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

新建警报规则

本文介绍如何创建警报规则。 在此处详细了解警报。

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

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

然后,使用以下方法为生成的警报操作定义这些元素:

在 Azure 门户中新建警报规则

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

  2. 展开“+ 创建”菜单,并选择“警报规则”。

    显示新建警报规则步骤的屏幕截图。

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

    所选资源的“可用信号类型”在窗格右下角。

    显示用于新建警报规则的选择资源窗格的屏幕截图。

  4. 选择“包括所有未来资源”,以包括添加到所选范围的所有未来资源。

  5. 选择“完成” 。

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

  7. 在“选择信号”窗格中,使用“信号类型”和“监视服务”筛选信号列表。

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

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

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

    1. 在“配置信号逻辑”窗格中,可以预览所选指标信号的结果。 选择以下字段的值。

      字段 说明
      选择时序 选择要包含在结果中的时序。
      图表时间段 选择要包含在结果中的时间范围。 可以是从过去 6 小时到上周。
    2. (可选)根据信号类型,你可能会看到“按维度拆分”部分。

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

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

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

      字段 说明
      阈值 选择是否应根据静态值或动态值评估阈值。
      静态阈值使用配置的阈值评估规则。
      动态阈值使用机器学习算法持续了解指标行为模式,并计算意外行为的相应阈值。 可以详细了解如何对指标警报使用动态阈值
      运算符 选择用于将指标值与阈值进行比较的运算符。
      聚合类型 选择要应用于数据点的聚合函数:Sum、Count、Average、Min 或 Max。
      阈值 如果选择了“静态”阈值,请输入条件逻辑的阈值。
      计价单位 如果所选指标信号支持不同的单位,例如字节、KB、MB 和 GB,且选择了“静态”阈值,请输入条件逻辑的单位。
      阈值敏感度 如果选择了“动态”阈值,请输入敏感度级别。 敏感度级别会影响触发警报所需的指标系列模式偏差量。
      聚合粒度 选择数据点使用聚合类型函数进行分组的间隔。
      评估频率 选择警报规则的运行频率。 选择小于数据点分组粒度的频率将导致滑动窗口计算。
    4. 选择“完成”。

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

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

  10. (可选)如果要确保操作组的数据处理发生在特定区域中,则可以在处理操作组的其中一个区域中选择操作组:

    • 瑞典中部
    • 德国中西部

    注意

    我们将不断添加更多区域以进行区域数据处理。

    创建新警报规则时操作选项卡的屏幕截图。

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

    • 选择“订阅”。
    • 选择“资源组”。
    • (可选)如果你正在创建在以下其中一个区域范围内监视自定义指标的指标警报规则,并且你希望确保警报规则的数据处理发生在该区域内,则可以选择在其中一个区域处理警报规则:
      • 北欧
      • 西欧
      • 瑞典中部
      • 德国中西部

    注意

    我们将不断添加更多区域以进行区域数据处理。

  12. 定义“警报规则详细信息”。

    1. 选择“严重性”。

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

    3. 选择“区域”。

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

      字段 说明
      创建时启用 选择警报规则,以便在创建警报规则后立即开始运行。
      自动解决警报(预览版) 选择此项可使警报成为有状态警报。 当不再满足条件时,警报将得到解决。
    5. (可选)如果为此警报规则配置了操作组,可以将自定义属性添加到警报有效负载,以向有效负载添加其他信息。 在“自定义属性”部分中,为想在有效负载中包含的自定义属性添加属性 Name 和 Value。

      创建新警报规则时详细信息选项卡的屏幕截图。

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

    创建新警报规则时标记选项卡的屏幕截图。

  14. 在“审核 + 创建”选项卡中,将运行验证并告知所有问题。

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

    创建新警报规则时评价和创建选项卡的屏幕截图。

使用 CLI 创建新的警报规则

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

  1. 在“门户”中,选择“Cloud Shell”,并在提示符下使用以下命令:

    若要创建指标警报规则,请使用 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 创建新的警报规则

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

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

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

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

    从活动日志事件创建警报规则的屏幕截图。

  3. 这将打开“创建警报规则”向导,包括根据之前选择的活动日志事件已填充的范围和条件。 你可根据需要在此阶段编辑和修改范围和条件。 默认情况下,新规则的确切范围和条件是从原始事件属性复制而来的。 例如,对于发生事件的确切资源,以及发起事件的特定用户或服务名称,都默认包含在新的警报规则中。 如果要使警报规则更具一般性,可相应地修改范围和条件(请参阅“从 Azure Monitor 警报窗格创建警报规则”部分中的步骤 3-9)。

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

使用 Azure 资源管理器模板创建活动日志警报规则

若要使用 Azure 资源管理器模板创建活动日志警报,需要创建 microsoft.insights/activityLogAlerts 资源,并填充所有相关属性。

注意

活动日志警报可定义的最高级别是订阅级别。 定义警报以提醒每个订阅。 不能对两个订阅定义一个警报。

以下字段是可以在 Azure 资源管理器模板中用于条件字段的选项。 (“资源运行状况”、“顾问”和“服务运行状况”字段有额外的属性字段。)

字段 说明
ResourceId 对其生成警报的活动日志事件中受影响资源的资源 ID。
category 活动日志事件的类别。 可能的值:AdministrativeServiceHealthResourceHealthAutoscaleSecurityRecommendationPolicy
caller 执行活动日志事件操作的用户的电子邮件地址或 Azure Active Directory 标识符。
级别 警报的活动日志事件中的活动级别。 可能的值: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

本示例将条件设置为“管理”类别:

"condition": {
          "allOf": [
            {
              "field": "category",
              "equals": "Administrative"
            },
            {
              "field": "resourceType",
              "equals": "Microsoft.Resources/deployments"
            }
          ]
        }

这是使用“管理”条件创建活动日志警报规则的示例模板:

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "activityLogAlertName": {
      "type": "string",
      "metadata": {
        "description": "Unique name (within the Resource Group) for the Activity log alert."
      }
    },
    "activityLogAlertEnabled": {
      "type": "bool",
      "defaultValue": true,
      "metadata": {
        "description": "Indicates whether or not the alert is enabled."
      }
    },
    "actionGroupResourceId": {
      "type": "string",
      "metadata": {
        "description": "Resource Id for the Action group."
      }
    }
  },
  "resources": [   
    {
      "type": "Microsoft.Insights/activityLogAlerts",
      "apiVersion": "2017-04-01",
      "name": "[parameters('activityLogAlertName')]",      
      "location": "Global",
      "properties": {
        "enabled": "[parameters('activityLogAlertEnabled')]",
        "scopes": [
            "[subscription().id]"
        ],        
        "condition": {
          "allOf": [
            {
              "field": "category",
              "equals": "Administrative"
            },
            {
              "field": "operationName",
              "equals": "Microsoft.Resources/deployments/write"
            },
            {
              "field": "resourceType",
              "equals": "Microsoft.Resources/deployments"
            }
          ]
        },
        "actions": {
          "actionGroups":
          [
            {
              "actionGroupId": "[parameters('actionGroupResourceId')]"
            }
          ]
        }
      }
    }
  ]
}

示例 JSON 可以保存为文件,例如 sampleActivityLogAlert.json。 你可以在 Azure 门户中使用 Azure 资源管理器配置此示例。

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

注意

新的活动日志警报规则可能需要 5 分钟才能变为活动状态。

使用 REST API 创建新的活动日志警报规则

Azure Monitor 活动日志警报 API 是一个 REST API。 它与 Azure 资源管理器 REST API 完全兼容。 可以使用资源管理器 cmdlet 或 Azure CLI,通过 PowerShell 来使用它。

注意

若要与 Azure 交互,建议使用 Azure Az PowerShell 模块。 请参阅安装 Azure PowerShell 以开始使用。 若要了解如何迁移到 Az PowerShell 模块,请参阅 将 Azure PowerShell 从 AzureRM 迁移到 Az

使用 PowerShell 部署资源管理器模板

若要使用 PowerShell 部署前面部分中所示的示例资源管理器模板,请使用以下命令:

New-AzResourceGroupDeployment -ResourceGroupName "myRG" -TemplateFile sampleActivityLogAlert.json -TemplateParameterFile sampleActivityLogAlert.parameters.json

sampleActivityLogAlert.parameters.json 文件中包含的一些值是为在创建警报规则时所需的参数提供的。

更改日志警报规则创建体验

如果要创建新的日志警报规则,请注意,当前警报规则向导与以前的体验略有不同:

  • 以前,搜索结果包含在触发的警报及其关联的通知的有效负载中。 此电子邮件仅包含来自未筛选结果中的 10 行,而 Webhook 有效负载包含 1000 个未筛选结果。 获取有关警报的详细上下文信息,以便可以决定相应操作:
    • 我们建议使用维度。 维度提供触发警报的列值,为你提供上下文来了解触发警报的原因以及解决问题的方式。
    • 如果需要在日志中进行调查,请使用警报中的链接来查看日志中的搜索结果。
    • 如果需要原始搜索结果或任何其他高级自定义,请使用逻辑应用。
  • 新警报规则向导不支持 JSON 有效负载的自定义。
    • 使用新 API 中的自定义属性将静态参数和关联值添加到警报触发的 Webhook 操作。
    • 对于更多高级自定义,请使用逻辑应用。
  • 新警报规则向导不支持电子邮件主题的自定义。
    • 客户通常使用自定义电子邮件主题来指示触发了警报的资源,而不是使用 Log Analytics 工作区。 使用新 API 通过资源 ID 列来触发所需资源的警报。
    • 对于更多高级自定义,请使用逻辑应用。

后续步骤