创建 Azure Monitor 日志警报规则和管理警报实例
本文介绍如何创建日志警报规则和管理警报实例。 通过 Azure Monitor 日志警报,用户可以使用 Log Analytics 查询按设置的频率评估资源日志,并根据结果触发警报。 规则可以使用警报处理规则和操作组触发一个或多个操作。
通过组合以下内容来创建警报规则:
- 要监视的资源。
- 来自资源的信号或遥测数据
- 条件
然后定义触发的警报的以下元素:
- 警报处理规则
- 操作组
在 Azure 门户中新建日志警报规则
在门户中,选择相关资源。 建议使用订阅或资源组进行大规模监视。
在“资源”菜单中,选择“日志”。
编写一个查询,用于查找要为其创建警报的日志事件。 可以使用警报查询示例文章来了解可发现的内容,或者开始编写你自己的查询。 此外,了解如何创建优化的警报查询。
从顶部命令栏中选择“+ 新建警报规则”。
此时将打开“条件”选项卡,其中已填充日志查询。
默认情况下,该规则将计算过去 5 分钟内的结果数。
如果系统检测到汇总的查询结果,将使用该信息自动更新规则。
在“度量”部分选择以下字段的值:
字段 说明 度量值 日志警报可以度量两项不同的指标,这两项指标可用于不同的监视方案:
表行数:返回的行数可用于处理 Windows 事件日志、syslog、应用程序异常等事件。
数值列的计算:基于任何数值列的计算可用于包含任意数量的资源。 例如,CPU 使用率百分比。聚合类型 对多条记录执行的、通过聚合粒度将其聚合为一个数值的计算。 例如:总计、平均值、最小值或最大值。 聚合粒度 用于将多条记录聚合为一个数值的间隔。 (可选)在“按维度拆分”部分,可为订阅或资源组大规模创建以资源为中心的警报。 “按维度拆分”将数值或字符串列的组合分组,以监视多个 Azure 资源上的相同状况。
如果你选择多个维度值,则由组合产生的每个时序将触发它自身的警报,并将单独收费。 警报有效负载包括触发该警报的组合。
对于任何数字或文本列类型,最多可以选择额外的六个拆分。
需要将某个条件应用于范围内的多个资源时,你也可能会决定不进行拆分。 例如,需要在资源组范围中至少有五台计算机的 CPU 使用率超过 80% 时触发警报的情况。
选择以下字段的值:
字段 说明 维度名称 维度可以是数字列或字符串列。 维度用于监视特定的时序,并提供触发的警报的上下文。
对 Azure 资源 ID 列进行拆分会使指定的资源进入警报目标。 如果检测到“资源 ID”列,则会自动选择该列,并将触发的警报的上下文更改为记录的资源。运算符 对维度名称和值使用的运算符。 维度值 维度值基于过去 48 小时的数据。 选择“添加自定义值”以添加自定义维度值。 在“警报逻辑”部分,选择以下字段的值:
字段 说明 运算符 查询结果将转换为数字。 在此字段中,选择用于将数字与阈值进行比较的运算符。 阈值 阈值的数值。 评估频率 运行查询的间隔。 可以设置为一分钟至一天。 (可选)在“高级选项”部分,可以指定触发警报之前所要达到的失败次数和警报评估期。 例如,如果将“聚合粒度”设置为 5 分钟,则可以指定仅当过去一小时发生了 3 次失败(15 分钟)才触发警报。 此设置由你的应用程序业务策略定义。
在“触发警报之前的违规次数”下选择以下字段的值:
字段 说明 违规次数 触发警报之前必须达到的违规次数。 评估期 这些违规必须在哪个时限内发生。 替代查询时间范围 如果警报评估期与查询时间范围不同,请在此字段中输入一个值。
警报时间范围限制为最多两天。 即使查询包含时间范围超过 2 天的 ago 命令,也会应用最大时间范围(2 天)。 例如,即使查询文本包含 ago(7d),查询也只能扫描 2 天内的数据。
如果查询需要的数据多于警报评估,并且查询中没有 ago 命令,则可以手动更改时间范围。“预览”图表显示一段时间内的查询评估结果。 可以更改图表时间段,或选择按维度进行的唯一警报拆分产生的时序。
从此刻开始,你可以随时选择“查看 + 创建”按钮。
在“操作”选项卡中,选择或创建所需的操作组。
在“详细信息”选项卡中,定义“项目详细信息”和“警报规则详细信息”。
(可选)在“高级选项”部分可以设置多个选项,包括是否“创建时启用”,或在警报规则触发后的一段时间“屏蔽操作”。
注意
如果你或你的管理员分配了“关于 Log Analytics 工作区的 Azure 日志搜索警报应使用客户管理的密钥”Azure 策略,那么,你就必须在“高级选项”中选择“检查工作区链接存储”选项,否则,规则创建将会失败,因为这样将无法满足策略要求。
在“标记”选项卡中,在预警规则资源上设置任何必需的标记。
在“审核 + 创建”选项卡中,将运行验证并告知所有问题。
通过验证并查看设置后,选择“创建”按钮。
注意
本部分介绍如何使用新的警报规则向导创建警报规则。 新的警报规则体验与旧版体验相比稍有不同。 请注意这些变化:
- 以前,搜索结果包含在触发的警报的有效负载及其关联的通知中。 这是一个受限的解决方案,因为电子邮件仅包含来自未筛选结果中的 10 行,而 Webhook 有效负载包含 1000 个未筛选结果。
若要获取有关警报的详细上下文信息以便能够决定相应操作:
- 我们建议使用维度。 维度提供触发警报的列值,为你提供上下文来了解触发警报的原因以及解决问题的方式。
- 如果需要在日志中进行调查,请使用警报中的链接来查看日志中的搜索结果。
- 如果需要原始搜索结果或任何其他高级自定义,请使用逻辑应用。
- 新警报规则向导不支持 JSON 有效负载的自定义。
- 使用新 API 中的自定义属性将静态参数和关联值添加到警报触发的 Webhook 操作。
- 对于更多高级自定义,请使用逻辑应用。
- 新警报规则向导不支持电子邮件主题的自定义。
- 客户通常使用自定义电子邮件主题来指示触发了警报的资源,而不是使用 Log Analytics 工作区。 使用新 API 通过资源 ID 列来触发所需资源的警报。
- 对于更多高级自定义,请使用逻辑应用。
在 Azure 门户中启用建议的现成警报规则(预览版)
注意
警报规则建议功能目前处于预览状态,并且仅针对 VM 启用。
如果没有为所选资源定义警报规则(无论是单独定义还是作为资源组或订阅的一部分定义),你可以启用推荐的现成警报规则。
系统根据以下内容编译了一个建议的警报规则列表:
- 资源提供程序对用于监视资源的重要信号和阈值的了解。
- 告诉我们客户对此资源的常见警报的遥测数据。
启用建议的警报规则:
- 在“警报”页上,选择“启用建议的警报规则”。 此时会打开“启用建议的警报规则”窗格,其中包含基于你的资源类型的建议警报规则列表。
- 在“向我发送警报”部分中,选择要启用的所有规则。 规则将用规则条件的默认值进行填充,例如要触发警报的 CPU 使用率百分比。 你也可以根据需要更改默认值。
- 在“通知我的方式”部分中,选择在触发警报时获得通知的方式。
- 选择“启用”。
在“警报”门户中管理警报规则
注意
本部分介绍如何管理在最新 UI 中创建的或使用高于 2018-04-16
版本的 API 创建的警报规则。 有关如何查看和管理在以前的 UI 中创建的警报规则的信息,请参阅查看和管理在以前的版本中创建的警报规则。
- 在门户中,选择相关资源。
- 在“监视”下,选择“警报” 。
- 在命令栏中,选择“警报规则”。
- 选择要编辑的警报规则。
- 编辑所有必需字段,然后在顶部命令栏上选择“保存”。
使用 CLI 管理日志警报
本部分介绍如何使用跨平台 Azure CLI 管理日志警报。
注意
Azure CLI 支持仅适用于 scheduledQueryRules API 版本 2021-08-01
和更高版本。 以前的 API 版本可将 Azure 资源管理器 CLI 与模板配合使用,如下所述。
- 在提示符下,可以结合
--help
选项使用命令来详细了解相应的命令及其用法。 例如,以下命令显示可用于创建、查看和管理日志警报的命令列表:az monitor scheduled-query --help
- 可以创建日志预警规则来监视系统事件错误的数目:
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}
- 可以使用以下命令查看资源组中的所有日志警报:
az monitor scheduled-query list -g {ResourceGroup}
- 可以使用规则的名称或资源 ID 查看特定日志预警规则的详细信息:
az monitor scheduled-query show -g {ResourceGroup} -n {AlertRuleName}
az monitor scheduled-query show --ids {RuleResourceId}
- 可以使用以下命令禁用日志预警规则:
az monitor scheduled-query update -g {ResourceGroup} -n {AlertRuleName} --disabled true
- 可以使用以下命令删除日志预警规则:
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。
后续步骤
- 使用 Azure 资源管理器模板创建日志警报。
- 了解用于日志警报的 Webhook 操作。
- 了解有关日志查询的详细信息。