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

快速入门:使用 Azure Resource Graph 和 Log Analytics 创建警报

本快速入门介绍如何使用 Azure Log Analytics 在 Azure Resource Graph 查询上创建警报。 可以使用 Azure Resource Graph 查询、Log Analytics 工作区和托管标识创建警报。 警报的条件按指定间隔发送通知。

可以使用查询为已部署的 Azure 资源设置警报。 可以使用 Azure Resource Graph 表创建查询,也可以合并 Azure Monitor 日志中的 Azure Resource Graph 表和 Log Analytics 数据。

本文包含两个警报示例:

  • Azure Resource Graph:使用 Azure Resource Graph Resources 表创建查询,用于获取已部署的 Azure 资源的数据并创建警报。
  • Azure Resource Graph 和 Log Analytics:使用 Azure Monitor 日志 Heartbeat 表中的 Azure Resource Graph Resources 表和 Log Analytics 数据。 此示例使用虚拟机演示如何设置查询和警报。

注意

Azure Resource Graph 警报与 Log Analytics 的集成以公共预览版提供。

先决条件

  • 如果没有 Azure 帐户,请在开始前创建一个免费帐户
  • 部署在 Azure 中的资源,例如虚拟机或存储帐户。
  • 若要将示例用于 Azure Resource Graph 和 Log Analytics 查询,需要将至少一个 Azure 虚拟机与 Azure Monitor 代理一起使用。

我们将解决什么问题?

你想要使用 Azure Resource Graph 查询获取有关 Azure 资源的信息。 可以使用 Azure Log Analytics 设置警报,以在满足某些条件时通知你。

创建工作区

在正在监视的订阅中创建 Log Analytics 工作区。

  1. 登录 Azure 门户

  2. 在搜索字段中,键入 log Analytics 工作区 并选择 Log Analytics 工作区

    如果已使用 Log Analytics 工作区,可以从 Azure 服务中选择它。

    Screenshot of the Azure home page that highlights search field and Log Analytics workspaces.

  3. 选择创建

    • 订阅:选择 Azure 订阅
    • 资源组demo-arg-alert-rg
    • 名称demo-arg-alert-workspace
    • 区域美国西部 3
  4. 选择"评审 + 创建"并等待"验证通过"显示。

  5. 选择“创建”开始部署

  6. 部署完成后,选择“转到资源”

创建虚拟机

无需为使用 Azure Resource Graph 表的示例创建虚拟机。

创建查询

从 Log Analytics 工作区创建 Azure Resource Graph 查询,以获取 Azure 资源的计数。 此示例使用 Azure Resource Graph Resources 表。

  1. Log Analytics 工作区页面左侧选择“日志”

    如果“查询”窗口显示,请将其关闭。

  2. “新查询”中使用以下代码。

    arg("").Resources
    | count
    

    Log Analytics 中的表名必须是大小写混合,每个单词的第一个字母大写,例如 ResourcesResourceContainers。 也可以使用小写,如 resourcesresourcecontainers

    Screenshot of the Log Analytics workspace with a query of the Resources table that highlights logs and run button.

  3. 选择运行

    “结果”显示 Azure 订阅中资源的计数。 记下该数字,因为需要它作为警报规则的条件。 手动运行查询时,计数基于用户标识,触发的警报使用托管标识。 在手动运行或触发的警报之间,计数可能会有所不同。

  4. 从查询中删除计数。

    arg("").Resources
    

创建警报规则

从 Log Analytics 工作区中选择“新建警报规则”。 Log Analytics 工作区中的查询将复制到警报规则。 “创建警报规则”有几个选项卡需要更新才能创建警报。

Screenshot of the Log Analytics workspace page that highlights new alert rule.

范围

验证范围是否已设置为名为 demo-arg-alert-workspace 的 Log Analytics 工作区。

如果需要更改范围,请执行以下步骤。

  1. 转到“范围”选项卡,然后选择“选择范围”
  2. “所选资源”屏幕底部,删除当前范围。
  3. 展开资源列表中的 demo-arg-alert-rg,然后选择 demo-arg-alert-workspace
  4. 选择应用
  5. 选择“下一步:条件”

条件

窗体包含多个要完成的字段。

  • 信号名称:自定义日志搜索
  • 搜索查询:显示查询代码。

量化指标

  • 度量:表行
  • 聚合类型:Count
  • 聚合粒度:5 分钟

警报逻辑

  • 运算符:大于

  • 阈值:使用小于从资源计数返回值的数字。

    例如,如果资源计数为 50,则使用 45。 此值会在评估资源时触发警报,因为资源数大于阈值。

  • 评估频率:5 分钟

选择“下一步:操作”。

操作

选择“创建操作组”。

  • 订阅:选择 Azure 订阅。
  • 资源组demo-arg-alert-rg
  • 区域:全局
  • 操作组名称demo-arg-alert-action-group
  • 显示名称demo-action(限于 12 个字符)

选择“下一页: 通知”

  • 通知类型:选择电子邮件/短信/推送/语音
  • 名称email-alert
  • 选中“电子邮件”复选框并键入电子邮件地址。
  • 选择“确定”。

选择“评审 + 创建”,验证摘要是否正确,然后选择“创建”。 你将返回到“创建警报规则”页面的“操作”选项卡。 “操作组名称”显示你创建的操作组。

选择“下一步: 详细信息”。

详细信息

“详细信息”选项卡上使用以下信息。

  • 订阅:选择 Azure 订阅
  • 资源组demo-arg-alert-rg
  • 严重性:接受默认值 3 - 信息
  • 警报规则名称demo-arg-alert-rule
  • 警报规则说明Azure 资源计数的电子邮件警报
  • 标识:选择“系统分配的托管标识”

选择“评审 + 创建”,验证摘要是否正确,然后选择“创建”。 你将返回到 Log Analytics 工作区“日志”页。

你会收到一封电子邮件通知,确认已添加到操作组。

分配角色

Log Analytics 读者分配给系统分配的托管标识,以便它具有发送电子邮件通知的权限触发警报。

  1. 在 Log Analytics 工作区中选择“监视”>“警报”

    如果系统提示“未保存的编辑将被丢弃”,请选择“确定”

  2. 选择“警报规则”。

  3. 选择 demo-arg-alert-rule

  4. 选择“设置”>“标识”>“系统分配”

    • 状态:打开
    • 对象 ID:显示 Microsoft Entra ID 中企业应用程序(服务主体)的 GUID。
    • 权限:选择 Azure 角色分配
      • 验证是否选择正确的订阅。
      • 选择“添加角色分配”
      • 范围订阅
      • 订阅:你的 Azure 订阅名称
      • 角色Log Analytics 读者
  5. 选择“保存”。

Log Analytics 读者需要几分钟才会显示在 Azure 角色分配页面上。 选择“刷新”可更新页面。

使用浏览器的“后退”按钮返回到“标识”,然后选择“概述”返回到警报规则。 选择指向名为 demo-arg-alert-rg 的资源组的链接。

验证警报

将角色分配给警报规则后,开始接收警报消息的电子邮件。 规则已创建,每五分钟会发送警报一次,获取第一个警报需要几分钟时间。

还可以在 Azure 门户中查看警报。

  1. 转到资源组 demo-arg-alert-rg

  2. 在资源列表中选择 demo-arg-alert-workspace

  3. 选择“监视”>“警报”

  4. 将显示警报列表。

    Screenshot of the Log Analytics workspace that shows list of alerts that fired.

我们如何解决问题?

你创建了一个 Azure Resource Graph 查询和一个 Log Analytics 工作区来监视 Azure 资源。 还设置了警报来通知事件,并将角色分配给系统分配的托管标识。 在警报创建后,你根据警报规则中的条件收到了电子邮件警报。

清理资源

如果要保留警报配置,而阻止警报触发并发送电子邮件通知,可以禁用它。 转到警报规则 demo-arg-alert-ruledemo-arg-la-alert-rule 并选择 禁用

如果不需要此警报或此示例中创建的资源,请使用以下步骤删除资源组:

  1. 转到资源组 demo-arg-alert-rg
  2. 选择“删除资源组”
  3. 键入资源组名称以确认。
  4. 选择“删除” 。

有关查询语言或如何浏览资源的详细信息,请转到以下文章。