你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Project Flash - 使用 Azure Resource Graph 监视 Azure 虚拟机可用性
Azure Resource Graph 是 Flash 提供的一种解决方案。 Flash 是专用于生成稳固、可靠且快速机制的项目的内部名称,可供客户监视虚拟机 (VM) 运行状况。
本文介绍了如何使用 Azure Resource Graph 监视 Azure 虚拟机可用性。 有关 Flash 解决方案的一般概述,请参阅 Flash 概述。
有关 Flash 提供的其他解决方案的特定文档,请从以下文章中选择:
Azure Resource Graph - HealthResources
此功能目前已正式发布。 它可用于进行大规模调查。 它通过使用 kusto 查询语言 (KQL) 提供了信息检索的高度用户友好体验。 它还可用作资源信息的中心,并支持轻松检索历史数据。
除了已经流动的 VM 可用性状态,我们发布了对 Azure Resource Graph (ARG) 的 VM 可用性注释 以提供详细失败归因和停机分析,并启用了 14 天更改跟踪机制,跟踪 VM 可用性历史更改以进行快速调试。 随着这些新功能的加入,我们很高兴地宣布 ARG 中 HealthResources 数据集中的 VM 可用性信息已正式发布! 使用此产品/服务,用户可以:
- 以较低的延迟一次性高效查询所有 Azure 订阅中 VM 可用性的最新快照,以便进行定期和全机群监视。
- 正确评估对全机群业务 SLA 的影响,并快速触发果断的缓解措施,以响应中断和失败签名类型。
- 设置自定义仪表板,通过将虚拟机可用性信息与 ARG 中的资源元数据联接来监督应用程序的综合运行状况。
- 使用更改跟踪机制执行详细调查,在滚动的 14 天时段内跟踪虚拟机可用性的相关更改。
示例查询
- Azure 服务运行状况的 Azure Resource Graph 示例查询 - Azure 服务运行状况 | Microsoft Learn
- Azure Resource Graph 中的 VM 可用性信息 - Azure 虚拟机 | Microsoft Learn
- 按表列出的示例 Azure Resource Graph 查询列表 - Azure Resource Graph | Microsoft Learn
开始使用
用户可以通过 PowerShell、REST API、Azure CLI,甚至 Azure 门户查询 ARG。 以下步骤详细介绍了如何从 Azure 门户访问数据。
HealthResources 表中填充两种类型的事件:
- resourcehealth/availabilitystatuses
此事件表示虚拟机的最新可用性状态,以基础 Azure 平台执行的运行状况检查为基础。 我们当前为 VM 发出的可用性状态为:
- 可用:虚拟机已按预期启动并运行。
- 不可用:我们检测到 VM 正常运行的中断,因此,应用程序不会按预期运行。
- 未知:平台无法准确检测虚拟机的运行状况。 用户通常可以在几分钟后查看更新状态。
若要轮询最新的 VM 可用性状态,请参阅属性字段,其中包含以下详细信息:
示例
{
"targetResourceType": "Microsoft.Compute/virtualMachines",
"previousAvailabilityState": "Available",
"targetResourceId": "/subscriptions//resourceGroups//providers/Microsoft.Compute/virtualMachines/",
"occurredTime": "2022-10-11T11:13:59.9570000Z",
"availabilityState": "Unavailable"
}
属性说明
属性 | 描述 | 相应的资源运行状况类别 (RHC) |
---|---|---|
targetResourceType | 运行状况数据流动的资源类型 | resourceType |
targetResourceId | 资源 ID | ResourceId |
occurredTime | 平台发出最新可用性状态时的时间戳 | eventTimestamp |
previousAvailabilityState | 虚拟机以前的可用性状态 | previousHealthStatus |
availabilityState | 虚拟机当前的可用性状态 | currentHealthStatus |
请参阅示例查询文档的 HealthResources 部分,查看入门查询列表以进一步了解此数据。
- resourcehealth/resourceannotations(新添加)
此事件通过详细说明必要的失败属性来将虚拟机可用性的任何更改置于上下文中,以帮助用户根据需要调查和缓解中断。 请参阅平台发出的 VM 可用性注释的完整列表。 这些注释大致可分为三个 Bucket:
- 故障时间注释:当平台检测到虚拟机可用性转换为“不可用”时发出这些注释。 (例如,在意外的主机故障期间,重新启动的修复操作)。
- 信息性注释:在控制平面活动期间发出这些注释,不会影响虚拟机可用性。 (例如 VM 分配/停止/删除/启动)。 通常,不需要进一步的客户操作来响应。
- 降级注释:检测到虚拟机可用性存在风险时发出这些注释。 (例如,当失败预测模型预测可能导致虚拟机在任何给定时间重新启动的降级硬件组件)。 我们强烈建议用户在注释消息中指定的截止时间之前重新部署,以避免任何意外的数据丢失或停机。 在以下情况中,你可能会在 Azure 虚拟机规模集资源运行状况或活动日志中收到警报:
- Azure 虚拟机规模集中的 VM 正在停止、解除分配、删除或启动。
- 对虚拟机规模集执行横向缩减或横向扩展操作。
- 警报指示虚拟机规模集的聚合平台运行状况处于“已降级”的暂时状态。
若要轮询资源的关联 VM 可用性注释(如果有),请参阅属性字段,其中包含以下详细信息:
示例
{
"targetResourceType": "Microsoft.Compute/virtualMachines", "targetResourceId": "/subscriptions//resourceGroups//providers/Microsoft.Compute/virtualMachines/",
"annotationName": "VirtualMachineHostRebootedForRepair",
"occurredTime": "2022-09-25T20:21:37.5280000Z",
"category": "Unplanned",
"summary": "We're sorry, your virtual machine isn't available because an unexpected failure on the host server. Azure has begun the auto-recovery process and is currently rebooting the host server. No further action is required from you at this time. The virtual machine will be back online after the reboot completes.",
"context": "Platform Initiated",
"reason": "Unexpected host failure"
}
属性说明
属性 | 描述 | 相应的 RHC |
---|---|---|
targetResourceType | 运行状况数据流动的资源类型 | resourceType |
targetResourceId | 资源 ID | ResourceId |
occurredTime | 平台发出最新可用性状态时的时间戳 | eventTimestamp |
annotationName | 发出的注释的名称 | eventName |
reason | 客户观察到的可用性影响的简要概述 | title |
category | 表示触发注释的平台活动是计划内维护还是计划外修复。 此字段不适用于客户/虚拟机启动的事件。 可能的值:计划内、计划外、不适用、Null | category |
上下文 | 表示触发注释的活动是授权用户或进程(客户发起)、Azure 平台(平台发起)还是来宾操作系统中导致可用性影响的活动(虚拟机发起)引起的。 可能的值:平台发起、用户发起、虚拟机发起、不适用、Null | 上下文 |
summary | 详细说明注释发出原因的语句,以及用户可以采取的修正步骤 | summary |
请参阅示例查询文档的 HealthResources 部分,查看入门查询列表以进一步了解此数据。
我们为 HealthResources 数据集中显示的注释元数据计划了多个增强功能。 这些扩充使用户能够访问更丰富的故障属性,以果断地准备对中断的响应。 同时,我们的目标是将历史回溯持续时间延长到至少 30 天,这样用户可以全面跟踪 VM 可用性的过去更改。
后续步骤
若要了解有关所提供解决方案的详细信息,请参阅相应的解决方案文章:
有关如何监视 Azure 虚拟机的一般概述,请参阅监视 Azure 虚拟机和监视 Azure 虚拟机参考。