创建 Azure Monitor 日志警报规则和管理警报实例

本文介绍如何创建日志警报规则和管理警报实例。 通过 Azure Monitor 日志警报,用户可以使用 Log Analytics 查询按设置的频率评估资源日志,并根据结果触发警报。 规则可以使用警报处理规则操作组触发一个或多个操作。

通过组合以下内容来创建警报规则:

  • 要监视的资源。
  • 来自资源的信号或遥测数据
  • 条件

然后定义触发的警报的以下元素:

  • 警报处理规则
  • 操作组

也可以使用 Azure 资源管理器模板创建日志警报规则

在 Azure 门户中新建日志警报规则

  1. 门户中,选择相关资源。 建议使用订阅或资源组进行大规模监视。

  2. 在“资源”菜单中,选择“日志”。

  3. 编写一个查询,用于查找要为其创建警报的日志事件。 可以使用警报查询示例文章来了解可发现的内容,或者开始编写你自己的查询。 此外,了解如何创建优化的警报查询

  4. 从顶部命令栏中选择“+ 新建警报规则”。

    创建新的警报规则。

  5. 此时将打开“条件”选项卡,其中已填充日志查询。

    默认情况下,该规则将计算过去 5 分钟内的结果数。

    如果系统检测到汇总的查询结果,将使用该信息自动更新规则。

    “条件”选项卡。

  6. 在“度量”部分选择以下字段的值:

    字段 说明
    度量值 日志警报可以度量两项不同的指标,这两项指标可用于不同的监视方案:
    表行数:返回的行数可用于处理 Windows 事件日志、syslog、应用程序异常等事件。
    数值列的计算:基于任何数值列的计算可用于包含任意数量的资源。 例如,CPU 使用率百分比。
    聚合类型 对多条记录执行的、通过聚合粒度将其聚合为一个数值的计算。 例如:总计、平均值、最小值或最大值。
    聚合粒度 用于将多条记录聚合为一个数值的间隔。

    度量。

  7. (可选)在“按维度拆分”部分,可为订阅或资源组大规模创建以资源为中心的警报。 “按维度拆分”将数值或字符串列的组合分组,以监视多个 Azure 资源上的相同状况。

    如果你选择多个维度值,则由组合产生的每个时序将触发它自身的警报,并将单独收费。 警报有效负载包括触发该警报的组合。

    对于任何数字或文本列类型,最多可以选择额外的六个拆分。

    需要将某个条件应用于范围内的多个资源时,你也可能会决定不进行拆分。 例如,需要在资源组范围中至少有五台计算机的 CPU 使用率超过 80% 时触发警报的情况。

    选择以下字段的值:

    字段 说明
    维度名称 维度可以是数字列或字符串列。 维度用于监视特定的时序,并提供触发的警报的上下文。
    对 Azure 资源 ID 列进行拆分会使指定的资源进入警报目标。 如果检测到“资源 ID”列,则会自动选择该列,并将触发的警报的上下文更改为记录的资源。
    运算符 对维度名称和值使用的运算符。
    维度值 维度值基于过去 48 小时的数据。 选择“添加自定义值”以添加自定义维度值。

    新日志警报规则按维度拆分部分的屏幕截图。

  8. 在“警报逻辑”部分,选择以下字段的值:

    字段 说明
    运算符 查询结果将转换为数字。 在此字段中,选择用于将数字与阈值进行比较的运算符。
    阈值 阈值的数值。
    评估频率 运行查询的间隔。 可以设置为一分钟至一天。

    新日志警报规则的警报逻辑部分的屏幕截图。

  9. (可选)在“高级选项”部分,可以指定触发警报之前所要达到的失败次数和警报评估期。 例如,如果将“聚合粒度”设置为 5 分钟,则可以指定仅当过去一小时发生了 3 次失败(15 分钟)才触发警报。 此设置由你的应用程序业务策略定义。

    在“触发警报之前的违规次数”下选择以下字段的值:

    字段 说明
    违规次数 触发警报之前必须达到的违规次数。
    评估期 这些违规必须在哪个时限内发生。
    替代查询时间范围 如果警报评估期与查询时间范围不同,请在此字段中输入一个值。
    警报时间范围限制为最多两天。 即使查询包含时间范围超过 2 天的 ago 命令,也会应用最大时间范围(2 天)。 例如,即使查询文本包含 ago(7d),查询也只能扫描 2 天内的数据。
    如果查询需要的数据多于警报评估,并且查询中没有 ago 命令,则可以手动更改时间范围。

    新日志警报规则的高级选项部分的屏幕截图。

  10. “预览”图表显示一段时间内的查询评估结果。 可以更改图表时间段,或选择按维度进行的唯一警报拆分产生的时序。

    新警报规则预览的屏幕截图。

  11. 从此刻开始,你可以随时选择“查看 + 创建”按钮。

  12. 在“操作”选项卡中,选择或创建所需的操作组

    “操作”选项卡。

  13. 在“详细信息”选项卡中,定义“项目详细信息”和“警报规则详细信息”。

  14. (可选)在“高级选项”部分可以设置多个选项,包括是否“创建时启用”,或在警报规则触发后的一段时间“屏蔽操作”。

    “详细信息”选项卡。

    注意

    如果你或你的管理员分配了“关于 Log Analytics 工作区的 Azure 日志搜索警报应使用客户管理的密钥”Azure 策略,那么,你就必须在“高级选项”中选择“检查工作区链接存储”选项,否则,规则创建将会失败,因为这样将无法满足策略要求。

  15. 在“标记”选项卡中,在预警规则资源上设置任何必需的标记。

    “标记”选项卡。

  16. 在“审核 + 创建”选项卡中,将运行验证并告知所有问题。

  17. 通过验证并查看设置后,选择“创建”按钮。

    “查看和创建”选项卡。

注意

本部分介绍如何使用新的警报规则向导创建警报规则。 新的警报规则体验与旧版体验相比稍有不同。 请注意这些变化:

  • 以前,搜索结果包含在触发的警报的有效负载及其关联的通知中。 这是一个受限的解决方案,因为电子邮件仅包含来自未筛选结果中的 10 行,而 Webhook 有效负载包含 1000 个未筛选结果。 若要获取有关警报的详细上下文信息以便能够决定相应操作:
    • 我们建议使用维度。 维度提供触发警报的列值,为你提供上下文来了解触发警报的原因以及解决问题的方式。
    • 如果需要在日志中进行调查,请使用警报中的链接来查看日志中的搜索结果。
    • 如果需要原始搜索结果或任何其他高级自定义,请使用逻辑应用。
  • 新警报规则向导不支持 JSON 有效负载的自定义。
    • 使用新 API 中的自定义属性将静态参数和关联值添加到警报触发的 Webhook 操作。
    • 对于更多高级自定义,请使用逻辑应用。
  • 新警报规则向导不支持电子邮件主题的自定义。
    • 客户通常使用自定义电子邮件主题来指示触发了警报的资源,而不是使用 Log Analytics 工作区。 使用新 API 通过资源 ID 列来触发所需资源的警报。
    • 对于更多高级自定义,请使用逻辑应用。

注意

警报规则建议功能目前处于预览状态,并且仅针对 VM 启用。

如果没有为所选资源定义警报规则(无论是单独定义还是作为资源组或订阅的一部分定义),你可以启用推荐的现成警报规则。

警报页面的屏幕截图,其中包含指向建议的警报规则的链接。

系统根据以下内容编译了一个建议的警报规则列表:

  • 资源提供程序对用于监视资源的重要信号和阈值的了解。
  • 告诉我们客户对此资源的常见警报的遥测数据。

启用建议的警报规则:

  1. 在“警报”页上,选择“启用建议的警报规则”。 此时会打开“启用建议的警报规则”窗格,其中包含基于你的资源类型的建议警报规则列表。
  2. 在“向我发送警报”部分中,选择要启用的所有规则。 规则将用规则条件的默认值进行填充,例如要触发警报的 CPU 使用率百分比。 你也可以根据需要更改默认值。
  3. 在“通知我的方式”部分中,选择在触发警报时获得通知的方式。
  4. 选择“启用”。

建议的警报规则窗格的屏幕截图。

在“警报”门户中管理警报规则

注意

本部分介绍如何管理在最新 UI 中创建的或使用高于 2018-04-16 版本的 API 创建的警报规则。 有关如何查看和管理在以前的 UI 中创建的警报规则的信息,请参阅查看和管理在以前的版本中创建的警报规则

  1. 门户中,选择相关资源。
  2. 在“监视”下,选择“警报” 。
  3. 在命令栏中,选择“警报规则”。
  4. 选择要编辑的警报规则。
  5. 编辑所有必需字段,然后在顶部命令栏上选择“保存”。

使用 CLI 管理日志警报

本部分介绍如何使用跨平台 Azure CLI 管理日志警报。

注意

Azure CLI 支持仅适用于 scheduledQueryRules API 版本 2021-08-01 和更高版本。 以前的 API 版本可将 Azure 资源管理器 CLI 与模板配合使用,如下所述。

  1. 在提示符下,可以结合 --help 选项使用命令来详细了解相应的命令及其用法。 例如,以下命令显示可用于创建、查看和管理日志警报的命令列表:
    az monitor scheduled-query --help
    
  2. 可以创建日志预警规则来监视系统事件错误的数目:
    az monitor scheduled-query create -g {ResourceGroup} -n {nameofthealert} --scopes {vm_id} --condition "count \'union Event, Syslog | where TimeGenerated > ago(1h) | where EventLevelName == \"Error\" or SeverityLevel== \"err\"\' > 2" --description {descriptionofthealert}
    
  3. 可以使用以下命令查看资源组中的所有日志警报:
    az monitor scheduled-query list -g {ResourceGroup}
    
  4. 可以使用规则的名称或资源 ID 查看特定日志预警规则的详细信息:
    az monitor scheduled-query show -g {ResourceGroup} -n {AlertRuleName}
    
    az monitor scheduled-query show --ids {RuleResourceId}
    
  1. 可以使用以下命令禁用日志预警规则:
    az monitor scheduled-query update -g {ResourceGroup} -n {AlertRuleName} --disabled true
    
  2. 可以使用以下命令删除日志预警规则:
    az monitor scheduled-query delete -g {ResourceGroup} -n {AlertRuleName}
    

也可以将 Azure 资源管理器 CLI 与模板文件一起使用:

az cloud set -n AzureChinaCloud
az login
az deployment group create \
    --name AlertDeployment \
    --resource-group ResourceGroupofTargetResource \
    --template-file mylogalerttemplate.json \
    --parameters @mylogalerttemplate.parameters.json

创建成功后,将返回 201。 更新成功后,将返回 200。

后续步骤