将管理事件的 Azure 警报迁移到活动日志警报

Warning

有关管理事件的警报将于 10 月 1 日当天或之后关闭。 请使用以下说明进行操作,以了解你是否具有这些警报,如果有,请将其迁移。

有什么变化

Azure 监控器(以前称为 Azure Insights)提供了创建警报的功能,可触发管理事件并生成发送到 webhook URL 或电子邮件地址的通知。 你可能已通过下列任一方式创建了下列任一警报:

  • 在某些资源类型的 Azure 门户中,在“监控”->“警报”->“添加警报”下,其中“警报”被设置为“事件”
  • 通过运行 Add-AzureRmLogAlertRule PowerShell cmdlet
  • 通过直接使用 odata.type = “ManagementEventRuleCondition” 以及 dataSource.odata.type = “RuleManagementEventDataSource” 的警报 REST API

以下 PowerShell 脚本将返回订阅中所具有的有关管理事件的所有警报列表,以及每个警报所设置的条件。

Connect-AzureRmAccount -Environment AzureChinaCloud
$alerts = $null
foreach ($rg in Get-AzureRmResourceGroup ) {
  $alerts += Get-AzureRmAlertRule -ResourceGroup $rg.ResourceGroupName
}
foreach ($alert in $alerts) {
  if($alert.Properties.Condition.DataSource.GetType().Name.Equals("RuleManagementEventDataSource")) {
    "Alert Name: " + $alert.Name
    "Alert Resource ID: " + $alert.Id
    "Alert conditions:"
    $alert.Properties.Condition.DataSource
    "---------------------------------"
  }
} 

如果你没有任何有关管理事件的警报,上面的 PowerShell cmdlet 将输出一系列类似下面的警告消息:

WARNING: The output of this cmdlet will be flattened, i.e. elimination of the properties field, in a future release to improve the user experience.

可以忽略这些警告消息。 如果有关于管理事件的警报,则此 PowerShell cmdlet 的输出将如下所示:

Alert Name: webhookEvent1
Alert Resource ID: /subscriptions/<subscription-id>/resourceGroups/<resourcegroup-name>/providers/microsoft.insights/alertrules/webhookEvent1
Alert conditions:

EventName            : 
EventSource          : 
Level                : 
OperationName        : microsoft.web/sites/start/action
ResourceGroupName    : 
ResourceProviderName : 
Status               : succeeded
SubStatus            : 
Claims               : Microsoft.Azure.Management.Monitor.Management.Models.RuleManagementEventClaimsDataSource
ResourceUri          : /subscriptions/<subscription-id>/resourceGroups/<resourcegroup-name>/providers/Microsoft.Web/sites/samplealertapp

---------------------------------
Alert Name: someclilogalert
Alert Resource ID: /subscriptions/<subscription-id>/resourceGroups/<resourcegroup-name>/providers/microsoft.insights/alertrules/someclilogalert
Alert conditions:

EventName            : 
EventSource          : 
Level                : 
OperationName        : Start
ResourceGroupName    : 
ResourceProviderName : 
Status               : 
SubStatus            : 
Claims               : Microsoft.Azure.Management.Monitor.Management.Models.RuleManagementEventClaimsDataSource
ResourceUri          : /subscriptions/<subscription-id>/resourceGroups/<resourcegroup-name>/providers/Microsoft.Compute/virtualMachines/Seaofclouds

---------------------------------

每个警报由虚线隔开,详细信息包括警报的资源 ID 和正在被监控的特定规则。

此功能已转换为 Azure 监控器活动日志警报。 使用这些新警报,可让你设置有关活动日志事件的条件,并在新事件与条件匹配时接收通知。 另外,它们还会基于管理事件的警报提供多项改进:

  • 你可以使用操作组,在多个警报中重复使用通知收件人(“操作”)组,从而在谁应接收警报方面减少更改的复杂性。
  • 你可以直接在手机上将短信与操作组结合使用来接收通知。
  • 可以使用资源管理器模板创建活动日志警报
  • 你可以创建具有更大灵活性和复杂性的条件,以满足你的特定需求。
  • 可以更快地传递通知。

如何迁移

若要创建新的活动日志警报,你可以:

有关你以前创建的管理事件的通知将不会自动迁移到活动日志警报。 你需要使用上述 PowerShell 脚本,列出当前已配置的管理事件警报,并手动将它们重新创建为活动日志警报。 此操作必须在 10 月 1 日之前完成,在此之后,有关管理事件的警报将不再显示在 Azure 订阅中。 其他类型的 Azure 警报,例如 Azure 监控器指标警报不会受此更改的影响。 如果你有任何问题,请在下面评论中提出。

后续步骤