你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
使用 CLI、PowerShell 或 ARM 模板创建新的警报规则
可以使用 CLI、PowerShell 或 Azure 资源管理器模板创建新的警报规则。
先决条件
若要创建或编辑警报规则,你必须具有以下权限:
- 对预警规则的目标资源的读取权限。
- 对在其中创建预警规则的资源组的写入权限。 如果从 Azure 门户中创建预警规则,则默认在目标资源所在的同一资源组中创建预警规则。
- 对关联到预警规则的任何操作组的读取权限(如果适用)。
使用 CLI 创建新的警报规则
可以使用 Azure CLI 创建新的警报规则。 以下示例代码使用 Azure Cloud Shell。 可以查看 Azure Monitor 的 Azure CLI 命令的完整列表。
在门户中,选择“Cloud Shell”。 在提示符处使用这些。
- 若要创建指标警报规则,请使用 az monitor metrics alert create 命令。
- 若要创建日志搜索警报规则,请使用 az Monitor Scheduled-query create 命令。
- 若要创建活动日志警报规则,请使用 az monitor activity-log alert create 命令。
例如,创建一个指标预警规则来监视 VM 上的平均 CPU 百分比是否大于 90:
az monitor metrics alert create -n {nameofthealert} -g {ResourceGroup} --scopes {VirtualMachineResourceID} --condition "avg Percentage CPU > 90" --description {descriptionofthealert}
使用 PowerShell 创建新的警报规则
- 若要使用 PowerShell 创建指标警报规则,请使用 Add-AzMetricAlertRuleV2 cmdlet。
注意
当你针对单个资源创建指标警报时,语法使用
TargetResourceId
。 当你针对多个资源创建指标警报时,语法包含TargetResourceScope
、TargetResourceType
和TargetResourceRegion
。 - 若要使用 PowerShell 创建日志搜索警报规则,请使用 New-AzScheduledQueryRule cmdlet。
- 若要使用 PowerShell 创建活动日志警报规则,请使用 New-AzActivityLogAlert cmdlet。
使用 ARM 模板创建新的警报规则
可以使用 Azure 资源管理器模板(ARM 模板)在所有环境中统一配置警报规则。
使用以下资源类型创建新资源:
- 指标警报:
Microsoft.Insights/metricAlerts
注意
- 建议使用与目标资源相同的资源组创建指标警报。
- Azure Log Analytics 工作区资源类型 (
Microsoft.OperationalInsights/workspaces
) 的指标警报的配置与其他指标警报不同。 有关详细信息,请参阅日志的指标警报的资源模板。 - 如果你要为单个资源创建指标警报,模板将使用目标资源的
ResourceId
。 如果你要为多个资源创建指标警报,模板将使用目标资源的scope
、TargetResourceType
和TargetResourceRegion
。
- 对于日志搜索警报:
Microsoft.Insights/scheduledQueryRules
- 活动日志、服务运行状况和资源运行状况警报:
microsoft.Insights/activityLogAlerts
- 指标警报:
从这些示例 ARM 模板中复制一个模板。
- 指标警报:指标警报规则的资源管理器模板示例
- 对于日志搜索警报:用于日志搜索警报规则的资源管理器模板示例
- 活动日志警报:用于活动日志警报规则的资源管理器模板示例
- 服务运行状况警报:用于服务运行状况预警规则的资源管理器模板示例
- 资源运行状况警报:用于资源运行状况警报规则的资源管理器模板示例
编辑模板文件以包含警报的相应信息,并将文件另存为 <your-alert-template-file>.json。
编辑相应的参数文件以自定义警报,并将其另存为 <your-alert-template-file>.parameters.json。
使用 Azure Monitor 支持的指标之一设置
metricName
参数。使用 PowerShell 或 CLI 部署模板。