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

排查 Azure Monitor 指标警报问题

本文介绍了有关 Azure Monitor 指标警报的常见问题,以及如何排查这些问题。

在监视数据中发现重要情况时,Azure Monitor 警报会主动通知你。 有了警报,你就可以在系统的用户注意到问题之前确定和解决这些问题。 有关警报的详细信息,请参阅 Microsoft Azure 中的警报概述

指标警报在本应触发时未触发

如果你认为某个指标警报应当已触发但未触发且在 Azure 门户中未列出该警报,请尝试执行以下步骤:

  1. 检查指标警报规则配置。

    • 检查是否按预期配置了“聚合类型”和“聚合粒度(周期)”。 “聚合类型”确定指标值的聚合方式。 若要了解详细信息,请参阅 Azure Monitor 指标聚合和显示说明。 “聚合粒度(周期)”控制每次运行预警规则时,评估聚合度量值的时间间隔。

    • 检查“阈值”或“敏感度”是否按预期方式配置。

    • 对于使用动态阈值的预警规则,请检查是否配置了高级设置。 “冲突数”可能会筛选警报,而“忽略之前的数据”会影响阈值的计算方式。

      注意

      动态阈值在变为活动状态之前至少需要 3 天和 30 个指标示例。

  2. 检查警报是否已触发但未发送通知。

    查看触发的警报列表,看是否可以找到触发的警报。 如果可以在列表中看到该警报,但其部分操作或通知存在问题,请参阅排查 Azure Monitor 警报的问题

  3. 检查警报是否已处于活动状态。

    检查你预计会收到警报的指标时序是否已存在触发的警报。 默认情况下指标警报是有状态的,即,一旦在特定的指标时序中触发某个警报,就不会触发该时序中的更多警报,直到不再出现相应的问题。 此设计选择减少了干扰。 当连续三次评估不满足警报条件时,会自动解决警报。

  4. 检查使用的维度。

    如果选择了一些针对某个指标的维度值,则警报规则会监视各个指标时序(通过将维度值组合在一起来定义)中是否存在超出阈值的情况。 如果还要监视聚合指标时序(不选择任何维度),请在该指标上配置其他预警规则而不选择维度。

  5. 检查聚合和时间粒度。

    如果使用指标图表,请确保:

    • 指标图表中选择的“聚合”与预警规则中的“聚合类型”相同。
    • 所选的“时间粒度”与预警规则中的“聚合粒度(周期)”相同,且未设置为“自动”。
  6. 检查警报规则是否错过时序中的第一个评估期。

    通过确保在以下情况下选择大于“评估频率”的“聚合粒度(周期)”,可以降低错过对已添加的时序进行首次评估的可能性

    • 向监视多个维度的指标警报规则添加新的维度值组合时。
    • 向监视多个资源的指标警报规则的范围中添加新资源时。
    • 针对监视未连续发出的指标(稀疏指标)的指标警报规则,指标在超过 24 小时的时间段内未发出时。

不会在每次满足条件时触发指标警报

默认情况下,指标警报是有状态的,因此,如果特定时序已存在触发的警报,则不会触发其他警报。 要使某个特定指标警报规则无状态,并在评估结果为满足警报条件的情况下收到警报,请使用选项之一:

  • 如果要以编程方式(例如通过 Azure 资源管理器PowerShellRESTAzure CLI)创建预警规则,请将 autoMitigate 属性设置为 False

  • 如果要在 Azure 门户中创建警报规则,请清除“警报规则详细信息”部分下的“自动解决警报”选项。 无状态指标警报的通知频率因警报规则的配置频率而异:

  • 警报频率小于 5 分钟:当继续满足条件时,将在 1 到 6 分钟之间发送通知。

  • 警报频率超过 5 分钟:当继续满足条件时,将在配置的频率到两倍于该频率的时间之间发送通知。 例如,对于频率为 15 分钟的警报规则,将在 15 到 30 分钟之间发送通知。

注意

使指标预警规则无状态会阻止触发的警报得到解决。 因此,即使不再满足条件,触发的警报仍处于触发状态,直到 30 天的保持期。

具有动态阈值的指标警报规则触发警报数不足

你可能会遇到使用动态阈值但是未触发或不够敏感的警报规则,即使它配置了高敏感度。 这种情况通常是因为指标分布过于不规律。 请考虑以下解决方案之一来解决此问题:

  • 前往监视适用于你的方案的互补指标(如果适用)。 例如,检查成功率的变化情况,而非失败率。
  • 尝试选择不同的“聚合粒度(周期)”值。
  • 检查过去 10 天内指标行为是否发生过重大更改(例如中断)。 突然的更改会影响系统计算指标时的上限和下限,并扩大阈值范围。 等待几天,直到中断不再纳入阈值计算。 还可以编辑警报规则,以使用“高级设置”中的“忽略此前的数据”选项。
  • 如果数据具有每周周期性,但没有足够的历史记录可用于指标,则计算出的阈值可能会具有较宽的上限和下限。 例如,系统在计算时会以相同的方式处理工作日和周末,并生成不会始终适合数据的宽阈值边界。 此问题应在有足够的指标历史记录后自行解决。 然后会检测正确的季节性,并相应地更新计算的阈值。

指标警报在不应当触发时触发

如果你认为指标警报不应当触发但却触发,则可通过以下步骤来解决问题。

  1. 查看触发的警报列表,找到触发的警报。 选择该警报以查看其详细信息。 查看“为何会触发此警报?”下提供的信息,以了解触发警报时的指标图表、“指标值”和“阈值”。

    注意

    如果你使用动态阈值,并且认为阈值不正确,请使用哭脸图标提供反馈。 此反馈会影响机器学习算法研究,并且将有助于改进未来的检测。

  2. 如果为某个指标选择了多个维度值,则当任何指标时序(通过将维度值组合在一起来定义)超出阈值时,都会触发警报。 有关在指标警报中使用维度的详细信息,请参阅使用维度缩小目标范围

  3. 检查预警规则配置以确保它已正确配置:

    • 检查是否按预期配置了“聚合类型”、“聚合粒度(周期)”和“阈值”或“敏感度”。
    • 对于使用动态阈值的预警规则,请检查是否配置了高级设置,因为“冲突数”可能会筛选警报,而“忽略之前的数据”会影响阈值的计算方式。

    注意

    动态阈值在变为活动状态之前至少需要 3 天和 30 个指标示例。

  4. 如果使用指标图表,请确保:

    • 指标图表中选择的“聚合”与预警规则中的“聚合类型”相同。
    • 所选的“时间粒度”与预警规则中的“聚合粒度(周期)”相同,且未设置为“自动”。
  5. 如果警报被触发,而同时已有监视相同条件的已触发的警报(尚未解决),请检查警报规则是否已配置为不自动解决警报。 这意味着警报规则无状态,不会自动解决触发的警报,并且不要求已触发的警报在同一时序上再次触发之前先行得到解决。 若要检查是否已将预警规则配置为不自动解决,请执行以下操作:

    • 在 Azure 门户中编辑预警规则。 查看是否已清除“预警规则详细信息”部分下的“自动解决警报”复选框。
    • 查看用于部署预警规则或检索预警规则定义的脚本。 检查 autoMitigate 属性是否设置为 false

具有动态阈值的指标警报规则触发太多警报或过于嘈杂

如果使用动态阈值的警报规则过于嘈杂或触发过多,则可能需要降低动态阈值警报规则的敏感度。 使用以下选项之一:

  • 阈值敏感度:将敏感度设置为“低”,以便降低对偏差的敏感度。
  • 冲突数(位于“高级设置”下):将预警规则配置为仅在某个时间段内出现一定数量的偏差时才触发。 这设置使规则不易受到暂时性偏差的影响。

具有动态阈值的指标警报规则显示了不在预期值范围内的值

当指标值表现出较大波动时,动态阈值可能会围绕指标值构建一个宽模型,这可能会导致边界低于或高于预期。 在以下条件下可能出现此情况:

  • 敏感度设置为低。

  • 指标出现无规律的行为,且变化较大(数据中出现峰值或最小值)。

    考虑通过选择更高的敏感度或选择更大的回看时间段来降低模型的敏感度。 也可使用“忽略之前的数据”选项,从用于生成模型的历史数据中排除最近的异常数据。

配置指标警报规则时出现的问题

找不到警报所针对的指标

如果要对特定指标发出警报,但创建预警规则时看不到该指标,请检查以下内容:

找不到警报所针对的指标:虚拟机来宾指标

若要对虚拟机的来宾操作系统指标发出警报(例如内存和磁盘空间),请确保已安装所需的代理以将此数据收集到适用于以下虚拟机的 Azure Monitor 指标:

有关从虚拟机的来宾操作系统收集数据的详细信息,请参阅 Microsoft Azure 虚拟机

注意

如果将来宾指标配置为发送到 Log Analytics 工作区中,则这些指标将显示在 Log Analytics 工作区资源下,并且只会在创建用于监视数据的预警规则后才开始显示数据。 为此,按照步骤配置日志的指标警报

当前,指标警报不支持用单个预警规则监视多个虚拟机的来宾指标。 但你可以使用日志预警规则。 为此,请确保将来宾指标收集到 Log Analytics 工作区,并在该工作区上创建日志预警规则。

找不到警报所针对的指标维度

如果要对指标的特定维度值发出警报,但找不到这些值,请查看以下事项:

  • 维度值可能需要几分钟时间才能显示在“维度值”列表下。
  • 显示的维度值基于前一天收集到的指标数据。
  • 如果维度值尚未发出或未显示,可以使用“添加自定义值”选项添加自定义维度值。
  • 如果要对某个维度所有的可能值(甚至包括将来的值)发出警报,请选中“选择所有当前和将来的值”选项。
  • 默认情况下,Application Insights 资源的自定义指标维度处于关闭状态。 若要启用这些自定义指标的维度集合,请参阅 Application Insights 中基于日志的指标和预先聚合的指标

你希望为尚未发出的自定义指标配置警报规则

创建指标预警规则时,会根据指标定义 API 验证指标名称,以确保其存在。 在某些情况下,你甚至希望在自定义指标发出之前就创建预警规则。 例如,在使用资源管理器模板创建将发出自定义指标的 Application Insights 资源及其用于监视该指标的预警规则时。

为避免在尝试验证自定义指标的定义时部署失败,请使用预警规则的 skipMetricValidation 部分中的 criteria 参数。 此参数会导致跳过指标验证。 请参阅下面的示例,了解如何在资源管理器模板中使用此参数。 有关详细信息,请参阅创建指标警报规则的完整资源管理器模板示例

"criteria": {
    "odata.type": "Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria",
        "allOf": [
            {
                "name" : "condition1",
                "metricName": "myCustomMetric",
                "metricNamespace": "myCustomMetricNamespace",
                "dimensions":[],
                "operator": "GreaterThan",
                "threshold" : 10,
                "timeAggregation": "Average",
                "skipMetricValidation": true
            }
        ]
    }

注意

对尚未在几天以上的时间内发出的现有自定义指标定义预警规则时,还可能需要使用 skipMetricValidation 参数。

配置指标警报规则时出现的警告和错误

动态阈值暂不可用于此指标警告

大多数指标支持动态阈值,但并非全部指标都支持。 有关指标列表,请参阅动态阈值不支持的指标

该指标不适用于所选范围。 如果指标仅适用于特定版本或 SKU 错误,则可能发生这种情况

查看 Azure Monitor 支持的指标中的指标说明,以检查它是否仅适用于特定版本的资源或此特定类型。

例如,在 SQL 数据库资源或存储文件服务中,仅特定版本的资源才支持特定指标。

没有可用信号供显示。 请尝试更改此警报规则错误的范围

此错误表示警报规则范围存在问题。 在编辑范围被限定为支持多资源配置(例如虚拟机或 SQL 数据库)的资源类型的警报规则,并尝试添加同一类型但来自另一区域的其他资源时,可能会出现此情况。 指标警报不支持对来自不同区域的同一类型的多个资源发出警报。

指标警报规则的服务限制太小

每个订阅允许的指标警报规则数目受制于服务限制

请参阅检查正在使用的指标警报规则数量,了解当前正在使用的指标警报规则数量。

如果已达到服务限制,以下步骤可能会有助于解决此问题:

  1. 尝试删除或禁用不再使用的指标预警规则。
  2. 切换到使用监视多个资源的指标预警规则。 借助此功能,通过只将一个预警规则计入配额,一个预警规则可以监视多个资源。 要详细了解此功能和支持的资源类型,请参阅指标警报
  3. 如果需要提高配额限制,请创建支持请求,并提供以下信息:
    • 需要提高配额限制的订阅 ID。
    • 增大配额的资源类型。 选择“指标警报”
    • 请求的配额限制。

后续步骤

有关警报和通知的常规故障排除信息,请参阅排查 Azure Monitor 警报中的问题