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

创建配额警报

你可以创建配额警报并对其进行管理。

创建警报规则

先决条件

用户必须具有创建警报所需的权限

托管标识必须在订阅上具有读取者角色(或其他包含读取访问权限的角色)。

在 Azure 门户中创建警报

创建配额警报的最简单方法是使用 Azure 门户。 请按照以下步骤针对配额创建警报规则。

  1. 登录到 Azure 门户并在搜索框中输入“配额”,然后选择“配额”。 在“配额”页面中,选择“我的配额”,然后选择“计算”资源提供程序。 加载页面后,选择“配额名称”来创建新的警报规则

    屏幕截图显示了如何选择“配额”以导航到“创建警报规则”屏幕。

  2. 在显示“创建使用情况警报规则”页面后,使用表中所示的数据填充字段。 请确保拥有创建警报的权限

    屏幕截图显示了包含必填字段的“创建警报规则”屏幕。

    字段 描述
    警报规则名称 警报规则名称必须是独特的,并且不能重复,即使在不同的资源组中也是如此
    当使用率百分比达到时向我发出警报 调整滑块即可选择触发警报所需的使用率百分比。 例如,如果是在默认的 80% 处,那么便会在配额达到 80% 容量时收到警报。
    Severity 选择满足规则条件时警报的严重性
    评估频率 选择警报规则的运行频率,可以选择 5、10 或 15 分钟。 如果频率小于聚合粒度,则计算频率会导致滑动窗口计算。
    资源组 资源组是共享相同生命周期、权限和策略的资源集合。 请选择类似于订阅中其他配额的资源组,或创建新的资源组。
    托管的标识 从下拉列表中选择,或“新建”一个。 托管标识应具有所选订阅的读取权限(以便从 ARG 读取使用情况数据)。
    通知方式 有三种通知方法,你可以根据通知首选项选中一个或三个复选框。
    使用现有操作组 选中该框即可使用现有操作组。 操作组会在警报触发时调用一组定义的通知和操作。 你可以创建操作组,以便尽可能自动增加配额。
    Dimensions 这里提供了在单个警报规则中选择多个配额和区域的选项。 与为每个配额或区域创建新警报相比,添加维度是一种经济高效的方法。

    提示

    在同一订阅中,我们建议对所有警报规则使用相同的“资源组”和“托管标识”值

  3. 完成选择后,选择“创建警报”。 如果规则成功创建,则会显示确认窗口,如果出现任何问题,则会显示一条消息。

使用 API 创建警报

可以使用监视 API 以编程方式创建警报。 此 API 可用于创建或更新日志搜索规则。

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Insights/scheduledQueryRules/{ruleName}?api-version=2018-04-16

如需查看示例请求正文,请参阅 API 文档

使用 Azure Resource Graph 查询创建警报

你可以使用“Azure Monitor 警报”窗格来使用查询创建警报。 Resource Graph 资源管理器允许在使用查询来创建警报之前运行和测试这些查询。 若要了解详细信息,请参阅配置 Azure 警报培训模块。

对于配额警报,请确保“范围”为你的订阅,“信号类型”为客户查询日志。 添加针对配额使用情况的示例查询。 按照创建或编辑警报规则中所述的剩余步骤操作。

以下示例展示了一个创建配额警报的查询。

arg("").QuotaResources 
| where subscriptionId =~ '<SubscriptionId>'
| where type =~ 'microsoft.compute/locations/usages'
| where isnotempty(properties)
| mv-expand propertyJson = properties.value limit 400
| extend
    usage = propertyJson.currentValue,
    quota = propertyJson.['limit'],
    quotaName = tostring(propertyJson.['name'].value)
| extend usagePercent = toint(usage)*100 / toint(quota)| project-away properties| where location in~ ('westus2')| where quotaName in~ ('cores')

管理配额警报

创建警报规则后,可以查看和编辑警报。

查看警报规则

选择“配额”>“警报规则”以查看为给定订阅创建的所有配额警报规则。 你可以从此页面编辑、启用或禁用规则。

屏幕截图显示了 Azure 门户中的配额警报规则屏幕。

查看触发的警报

选择“配额”>“触发的警报规则”以查看已为给定订阅触发的所有警报。 选择一个警报即可查看其详细信息,包括有关触发次数和每次的状态的历史记录。

屏幕截图显示了 Azure 门户中的“已触发警报”屏幕。

编辑、更新、启用或禁用警报

在警报规则内,你可以通过展开点下面的选项,然后选择某个操作来进行更改。

屏幕截图显示了 Azure 门户中用于更改警报规则的选项。

选择“编辑”时,可以为同一警报规则添加多个配额或位置。

屏幕截图显示了在 Azure 门户中编辑配额规则时如何添加维度。

你还可以通过导航到“警报规则”页面,然后选择要更改的特定警报规则来进行更改

屏幕截图显示了在 Azure 门户中如何从“警报规则”屏幕编辑规则。

响应警报

对于创建的警报,可以建立操作组以自动增加配额。 通过使用现有操作组,可以调用配额 API 以尽可能自动增加配额,而无需手动干预。

你可以使用函数来调用配额 API 并请求更多配额。 请使用 Test_SetQuota() 代码来编写用于设置配额的 Azure 函数。 有关详细信息,请参阅 GitHub 上的此示例

使用 Resource Graph 资源管理器进行查询

使用 Azure Resource Graph,可以按编程方式管理警报。 这样,就可以查询警报实例并分析警报,以确定模式和趋势。

Azure Resource Graph 资源管理器中的 QuotaResources 表将提供给定资源、区域和/或订阅的使用情况和限制/配额数据。 你还可以使用 Azure Resource Graph 查询来跨多个订阅查询使用情况和配额数据。

你必须至少具有订阅的读取者角色才能使用 Resource Graph 资源管理器查询此数据。

示例查询

用于查看订阅、区域和 VCM 系列的当前使用情况、配额/限制和使用率百分比的查询:

注意

目前,计算是 NRT 限制/配额数据唯一支持的资源。 不要依赖以下查询来拉取其他资源类型,例如磁盘和/或库。 可以使用当前的使用情况 API 获取上述资源的最新快照。

QuotaResources
| where type =~ "microsoft.compute/locations/usages"
| where location =~ "northeurope" or location =~ "westeurope"
| where subscriptionId in~ ("<Subscription1>","<Subscription2>")   
| mv-expand json = properties.value limit 400 
| extend usagevCPUs = json.currentValue, QuotaLimit = json['limit'], quotaName = tostring(json['name'].localizedValue)
|where quotaName !contains "Disks" and quotaName !contains "Disk" and quotaName !contains "gallery" and quotaName !contains "Snapshots"
|where usagevCPUs > 0
|extend usagePercent = toint(usagevCPUs)*100 / toint(QuotaLimit)
|project subscriptionId,quotaName,usagevCPUs,QuotaLimit,usagePercent,location,json
| order by ['usagePercent'] desc

用于汇总每个区域的每个订阅的总 vCPU(按需、低优先级/现成)的查询:

QuotaResources
| where type =~ "microsoft.compute/locations/usages"
| where subscriptionId in~ ("<Subscription1>","<Subscription2>") 
| mv-expand json = properties.value limit 400 
| extend usagevCPUs = json.currentValue, QuotaLimit = json['limit'], quotaName = tostring(json['name'].localizedValue)
|extend usagePercent = toint(usagevCPUs)*100 / toint(QuotaLimit)
|where quotaName =~ "Total Regional vCPUs" or quotaName =~ "Total Regional Low-priority vCPUs"
|project subscriptionId,quotaName,usagevCPUs,QuotaLimit,usagePercent,location,['json']
| order by ['usagePercent'] desc

提供反馈

欢迎使用每个 Azure 配额页面上的“反馈”按钮来与我们的团队分享你的想法、问题或担忧。

屏幕截图显示了用户可以提供反馈。

如果在针对配额创建警报规则时遇到问题,请开立支持请求

后续步骤