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

创建配额警报

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

创建警报规则

先决条件

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

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

在 Azure 门户中创建警报

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

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

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

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

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

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

    提示

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

  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 警报培训模块。

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

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

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 配额页面上的“反馈”按钮来与我们的团队分享你的想法、问题或担忧。

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

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

后续步骤