你当前正在访问 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 数据。
在本文的示例中,在同一资源组中创建资源并使用同一区域,例如“美国西部 3”。 本文中的示例在单个 Azure 租户中运行查询并为 Azure 资源创建警报。 Azure 数据资源管理器群集不属于本文的讨论范围。
本文包含两个警报示例:
- 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 代理一起使用。
创建工作区
在正在监视的订阅中创建 Log Analytics 工作区。
登录 Azure 门户。
在搜索字段中,键入 log Analytics 工作区 并选择 Log Analytics 工作区。
如果使用 Log Analytics 工作区,可以从“Azure 服务”中选择它。
选择“创建”:
- 订阅:选择 Azure 订阅
- 资源组:demo-arg-alert-rg
- 名称:demo-arg-alert-workspace
- 区域:美国西部 3
选择“查看 + 创建”并等待显示“验证通过”。
选择“创建”开始部署。
部署完成后,选择“转到资源”。
创建虚拟机
无需为使用 Azure Resource Graph 表的示例创建虚拟机。
注意
如果有现有虚拟机或知道如何创建虚拟机,则此部分可选。 此示例使用虚拟机演示如何使用 Azure Resource Graph 表和 Log Analytics 数据创建查询。
为获取日志信息,在将虚拟机连接到 Log Analytics 工作区时,Azure Monitor 代理将安装在虚拟机上。 如果没有虚拟机,可以为此示例创建一个虚拟机。 为避免不必要的成本,请在示例完成时删除虚拟机。
以下说明是 Linux 虚拟机的基本设置。 有关如何创建虚拟机的详细步骤不属于本文的范围。 你的组织可能需要不同的虚拟机安全性或网络设置。
在 Azure 中,创建 Ubuntu Linux 虚拟机。
选择创建。
从“创建虚拟机”中,可以接受默认设置,但有以下例外:
基础知识
- 资源组:demo-arg-alert-rg
- 虚拟机名称:输入虚拟机名称,例如 demovm01。
- 可用性选项:无需基础结构冗余
- 大小:Standard_B1s
- 管理员帐户:必须创建凭据,但对于此示例,无需登录:
- 身份验证类型:SSH 公钥
- 用户名:创建用户名
- SSH 公钥源:生成新密钥对
- 密钥对名称:接受默认名称
- 公共入站端口:无
磁盘
联网
- 公共 IP:无
- 选择“删除 VM 时删除 NIC”。
Management
- 选择“启用自动关闭”。
- 选择你所在时区的关闭时间。
- 如果想要关闭通知,请添加电子邮件地址。
监视、 高级和标记
选择“查看 + 创建”,然后选择“创建” 。
系统会提示你“生成新的密钥对”。 选择“下载私钥并创建资源”。 使用完虚拟机后,请从计算机中删除私钥文件。
在部署虚拟机后,选择“转到资源”。
注意
如果知道如何将虚拟机连接到 Log Analytics 工作区和 Azure Monitor 代理,则此部分是可选的。
设置用于监视虚拟机的数据收集规则。
- 在 Azure 搜索字段中,输入“数据收集规则”,然后选择“数据收集规则”。
- 选择“创建”:
- 规则名称:输入名称,例如 demo-data-collection-rule。
- 订阅:选择订阅。
- 资源组:选择“demo-arg-alert-rg”。
- 区域:美国西部 3。
- 平台类型:选择“全部”。
- 选择“下一步: 资源”:
- 选择“添加资源”。
- 订阅:选择订阅。
- 范围:选择资源组和虚拟机名称。
- 选择“应用”。
- 选择“下一步: 收集和传递”:
- 选择“添加数据源”。
- 数据源类型:选择“性能计数器”。
- 选择“下一步: 目标”和“添加目标”:
- 目标类型:Azure Monitor 日志。
- 订阅:选择订阅。
- 帐户或命名空间:选择 Log Analytics 工作区 demo-arg-alert-workspace。
- 选择“添加数据源”。
- 依次选择“查看 + 创建”、“创建”。
- 部署完成后,选择“转到资源”。
验证是否已为虚拟机配置监视:
- 转到数据收集规则并查看“配置”:
- 数据源:显示数据源性能计数器和目标 Azure Monitor 日志。
- 资源:显示虚拟机、资源组和订阅。
- 转到 Log Analytics 工作区 demo-arg-alert-workspace。 选择“设置”>“代理”>“Linux 服务器”,Linux 计算机已连接到 Azure Monitor Linux 代理。 可能需要几分钟时间才会显示代理。
- 转到虚拟机并选择“设置”>“扩展 + 应用程序”,并验证
AzureMonitorLinuxAgent
显示预配是否成功。
创建查询
从 Log Analytics 工作区创建 Azure Resource Graph 查询,以获取 Azure 资源的计数。 此示例使用 Azure Resource Graph Resources
表。
从 Log Analytics 工作区页面左侧选择“日志”。 关闭“查询”窗口(如果显示)。
在“新查询”中使用以下代码:
arg("").Resources
| count
Log Analytics 中的表名必须是大小写混合,每个单词的第一个字母大写,例如 Resources
或 ResourceContainers
。 也可以使用小写,如 resources
或 resourcecontainers
。
选择运行。
“结果”显示 Azure 订阅中资源的计数。 记下该数字,因为需要它作为警报规则的条件。 手动运行查询时,计数基于用户标识,触发的警报使用托管标识。 在手动运行或触发的警报之间,计数可能会有所不同。
从查询中删除计数。
arg("").Resources
从 Log Analytics 工作区创建 Azure Resource Graph 查询,以便从虚拟机获取最后一个检测信号信息。 此示例使用 Azure Monitor 日志 Heartbeat
表中的 Azure Resource Graph Resources
表和 Log Analytics 数据。
转到 Log Analytics 工作区 demo-arg-alert-workspace。
从 Log Analytics 工作区页面左侧选择“日志”。 关闭“查询”窗口(如果显示)。
在“新查询”中使用以下代码:
arg("").Resources
| where type == 'microsoft.compute/virtualmachines'
| project ResourceId = id, name, PowerState = tostring(properties.extended.instanceView.powerState.code)
| join (Heartbeat
| where TimeGenerated > ago(15m)
| summarize lastHeartBeat = max(TimeGenerated) by ResourceId)
on ResourceId
| project lastHeartBeat, PowerState, name, ResourceId
Log Analytics 中的表名必须是大小写混合,每个单词的第一个字母大写,例如 Resources
或 ResourceContainers
。 也可以使用小写,如 resources
或 resourcecontainers
。
可以对 TimeGenerated
使用其他时间范围。 例如,不使用 15m
等分钟数,而使用 12h
、24h
、48h
等小时数。
选择运行。
查询应返回虚拟机的最后一个检测信号、电源状态、名称和资源 ID。 如果未显示任何结果,请继续执行后续步骤。 新配置可能需要 30 分钟才能使监控数据可用于查询和警报。
创建警报规则
从 Log Analytics 工作区中选择“新建警报规则”。 Log Analytics 工作区中的查询将复制到警报规则。 “创建警报规则”有几个选项卡需要更新才能创建警报。
范围
验证范围是否默认为名为 demo-arg-alert-workspace 的 Log Analytics 工作区。
仅当范围未设置为默认值时,才执行以下步骤:
- 转到“范围”选项卡,然后选择“选择范围”。
- 在“所选资源”屏幕底部,移除当前范围。
- 选择“选择范围”选项。
- 展开资源列表中的 demo-arg-alert-rg,然后选择 demo-arg-alert-workspace。
- 选择“应用”。
- 选择“下一步:条件”。
条件
窗体包含多个要完成的字段:
- 信号名称:自定义日志搜索
- 搜索查询:显示查询代码
- 如果更改了范围,则需要从“创建查询”部分添加查询。
量化指标
- 度量:表行
- 聚合类型: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 资源计数的电子邮件警报
- 区域:美国西部 3
- 标识:选择“系统分配的托管标识”。
选择“查看 + 创建”,验证摘要是否正确,然后选择“创建”。 你将返回到 Log Analytics 工作区的“日志”页。
分配角色
将 Log Analytics 读者分配给系统分配的托管标识,以便它具有发送电子邮件通知的权限触发警报。
- 在 Log Analytics 工作区中选择“监视”>“警报”。 如果系统提示“未保存的编辑将被丢弃”,请选择“确定”。
- 选择“警报规则”。
- 选择 demo-arg-alert-rule。
- 选择“设置”>“标识”>“系统分配”:
- 状态:打开
- 对象 ID:显示 Microsoft Entra ID 中企业应用程序(服务主体)的 GUID。
- 权限:选择“Azure 角色分配”:
- 验证是否已选择订阅。
- 选择“添加角色分配”:
- 范围:订阅
- 订阅:选择 Azure 订阅名称。
- 角色:Log Analytics 读者
- 选择“保存”。
Log Analytics 读者需要几分钟才会显示在 Azure 角色分配页面上。 选择“刷新”可更新页面。
使用浏览器的“后退”按钮返回到“标识”,然后选择“概述”返回到警报规则。 选择指向名为 demo-arg-alert-rg 的资源组的链接。
尽管超出了本文的讨论范围,但对于 Azure 数据资源管理器群集,请将“读者”角色添加到系统分配的托管标识。 有关详细信息,请选择本文末尾的链接“Azure 数据资源管理器群集的角色分配”。
从 Log Analytics 工作区中选择“新建警报规则”。 Log Analytics 工作区中的查询将复制到警报规则。 “创建警报规则”有几个选项卡需要更新。
范围
验证范围是否默认为名为 demo-arg-alert-workspace 的 Log Analytics 工作区。
仅当范围未设置为默认值时,才执行以下步骤:
- 转到“范围”选项卡,然后选择“选择范围”。
- 在“所选资源”屏幕底部,删除当前范围。
- 展开资源列表中的 demo-arg-alert-rg,然后选择 demo-arg-alert-workspace。
- 选择“应用”。
- 选择“下一步:条件”。
条件
窗体包含多个要完成的字段:
- 信号名称:自定义日志搜索
- 搜索查询:显示查询代码
- 如果更改了范围,则需要从“创建查询”部分添加查询。
量化指标
- 度量:表行
- 聚合类型:Count
- 聚合粒度:5 分钟
警报逻辑
选择“下一步:操作”。
操作
选择“创建操作组”:
- 订阅:选择 Azure 订阅。
- 资源组:demo-arg-alert-rg
- 区域:使用“全局”可让操作组服务选择位置。
- 操作组名称:demo-arg-la-alert-action-group
- 显示名称:demo-argla (限于 12 个字符)
选择“下一步: 通知”:
- 通知类型:选择电子邮件/短信/推送/语音
- 名称:email-alert-arg-la
- 选中“电子邮件”复选框并键入电子邮件地址
- 选择“确定”
选择“查看 + 创建”,验证摘要是否正确,然后选择“创建”。 你将返回到“创建警报规则”页面的“操作”选项卡。 “操作组名称”显示你创建的操作组。 你会收到一封电子邮件通知,确认已添加到操作组。
选择“下一步: 详细信息”。
详细信息
在“详细信息”选项卡上使用以下信息:
- 订阅:选择 Azure 订阅。
- 资源组:demo-arg-alert-rg
- 严重性:选择“2 - 警告”。
- 警报规则名称:demo-arg-la-alert-rule
- 警报规则说明:Azure 虚拟机 ARG-LA 查询的电子邮件警报
- 区域:美国西部 3
- 标识:选择“系统分配的托管标识”
选择“查看 + 创建”,验证摘要是否正确,然后选择“创建”。 你将返回到 Log Analytics 工作区的“日志”页。
分配角色
将 Log Analytics 读者分配给系统分配的托管标识,以便它具有发送电子邮件通知的权限触发警报。
- 在 Log Analytics 工作区中选择“监视”>“警报”。 如果系统提示“未保存的编辑将被丢弃”,请选择“确定”。
- 选择“警报规则”。
- 选择“demo-arg-la-alert-rule”。
- 选择“设置”>“标识”>“系统分配”:
- 状态:打开
- 对象 ID:显示 Microsoft Entra ID 中企业应用程序(服务主体)的 GUID。
- 权限:选择 Azure 角色分配
- 验证是否已选择订阅
- 选择“添加角色分配”:
- 范围:订阅
- 订阅:选择 Azure 订阅名称
- 角色:Log Analytics 读者
- 选择“保存”。
Log Analytics 读者需要几分钟才会显示在 Azure 角色分配页面上。 选择“刷新”可更新页面。
使用浏览器的“后退”按钮返回到“标识”,并选择“概述”返回到警报规则。 选择指向名为 demo-arg-alert-rg 的资源组的链接。
尽管超出了本文的讨论范围,但对于 Azure 数据资源管理器群集,请将“读者”角色添加到系统分配的托管标识。 有关详细信息,请选择本文末尾的链接“Azure 数据资源管理器群集的角色分配”。
验证警报
将角色分配给警报规则后,开始接收警报消息的电子邮件。 规则已创建,每五分钟会发送警报一次,获取第一个警报需要几分钟时间。
还可以在 Azure 门户中查看警报:
转到资源组 demo-arg-alert-rg。
在资源列表中选择 demo-arg-alert-workspace。
选择“监视”>“警报”。
将显示警报列表。
将角色分配给警报规则后,开始接收警报消息的电子邮件。 规则已创建,每五分钟会发送警报一次,获取第一个警报需要几分钟时间。
还可以在 Azure 门户中查看警报:
转到资源组 demo-arg-alert-rg。
选择虚拟机。
选择“监视”>“警报”。
将显示警报列表。
对于新配置,可能需要 30 分钟日志信息才可用并创建警报。 在此期间,你可能会注意到虚拟机的警报规则在工作区的监视警报中显示警报。 当虚拟机的日志信息可用时,警报显示在虚拟机的监视警报中。
清理资源
如果要保留警报配置,而阻止警报触发并发送电子邮件通知,可以禁用它。 转到警报规则 demo-arg-alert-rule 或 demo-arg-la-alert-rule 并选择 禁用。
如果不需要此警报或此示例中创建的资源,请使用以下步骤删除资源组:
- 转到资源组 demo-arg-alert-rg。
- 选择“删除资源组”。
- 键入资源组名称以确认。
- 选择“删除”。
如果创建了虚拟机,请删除在部署期间下载到计算机的私钥。 文件名的扩展名为 .pem
。
相关内容
有关查询语言或如何浏览资源的详细信息,请转到以下文章。