Azure Resource Graph (ARG) 提供了一种方法,可用于使用 Kusto 查询语言(KQL)跨订阅查询 Azure 资源。 本文详细介绍了 ARG 表中常见的字段,尤其是与 Azure 服务运行状况和治理方案相关的字段。
使用服务运行状况表查询:
- 服务健康事件属性 (microsoft.resourcehealth/events)
- 服务运行状况受影响的资源属性 (microsoft.resourcehealth/events/impactedresources)
使用资源运行状况表进行查询:
- 资源运行状况属性(microsoft.resourcehealth/availabilitystatuses 和 microsoft.resourcehealth/resourceannotations)
Query | Tables | 值类型 | 信息 |
---|---|---|---|
服务健康事件 服务运行状况受影响的资源 |
ServiceHealthResources ServiceHealthResources |
microsoft.resourcehealth/events microsoft.resourcehealth/events/impactedresources(影响的资源事件) |
服务健康状况事件,例如中断、计划内维护或其他事件。 受这些事件影响的特定 Azure 资源。 |
资源运行状况(仅虚拟机) | 健康资源 | microsoft.resourcehealth/availabilitystatuses、microsoft.resourcehealth/resourceannotations | VM 健康监控与诊断 |
下表显示了表示有关 Azure 资源的元数据的服务运行状况、受影响的资源和资源运行状况查询的 ARG 表中的核心字段。
字段名称 | Description |
---|---|
id | 完整的 Azure 资源 ID(例如 /subscriptions/<subscription-id >/providers/Microsoft.ResourceHealth/events/)<tracking-id > |
姓名 | 资源的名称 |
类型 | 资源类型(例如,Microsoft.Compute/virtualMachines) |
tenantId | 资源所属的租户 ID |
位置 | 部署资源的 Azure 区域(默认值为全局) |
订阅编号 | 资源所属的订阅的 ID |
resourceGroup | 资源组的名称 |
tags | 分配给资源的键值对 |
属性 | 包含特定于资源的属性的 JSON 对象 |
sku | 适用于资源的 SKU 详细信息(层、名称) |
kind | 资源类型(用于应用服务,例如 functionapp 或 webapp) |
managedBy | 指示另一个 Azure 服务是否管理资源 |
标识 | 标识配置(例如系统分配或用户分配) |
计划 | 市场计划详细信息 |
zones | 资源部署在的区域可用性 |
extendedLocation | 扩展位置详细信息(例如自定义位置) |
服务运行状况
ServiceHealthResources 查询返回订阅中受服务运行状况事件影响的资源的数据。
这些通知是活动日志事件的子类,也可以在 Azure 活动日志中找到。
根据事件分类,EventType 和 EventSubtype 服务健康通知可以是信息性的,也可以是可操作的。
服务健康事件属性 (microsoft.resourcehealth/events)
字段中的值 properties
用于查询 Azure 服务运行状况事件。
在所有不同的事件类型中存在一些常见属性,但下面的 properties
所有属性都应被视为基于事件类型的动态。
这些字段一起用于跟踪、筛选和分析 Azure 环境中的服务运行状况事件。
例如,可以查询特定位置中仍在Critical ServiceIssue
的所有Active
事件。
下表列出了可在服务运行状况和受影响的资源查询中使用的所有属性。
资产 | Description |
---|---|
EventType |
高级分类:服务问题、计划维护、健康建议、计费、安全建议、新兴问题和事件后审核(PIR) |
EventSubType |
特定子类型:停用、税务变更、价格变动、表计ID更改、外汇汇率变动、未经授权方滥用、欠账和超额账单 |
Status |
事件的当前状态:活动或已解决 |
EventLevel |
严重性:信息性、警告、严重性、错误 |
Level |
通常镜像 EventLevel,并用于 UI 呈现 |
EventSource |
指示生成事件的源系统为 ServiceHealthResources 或 HealthResources |
TrackingId |
事件的唯一标识符 |
Title |
事件的标题 |
Summary |
事件说明 |
Priority |
分配给事件的优先级级别 |
ImpactStartTime |
当导致影响的事件开始时 |
ImpactMitigationTime |
预期或完成缓解时 |
Impact |
对服务的影响的说明 |
Region |
哪些区域和服务受到影响 |
RecommendedActions |
针对用户和/或管理员的建议操作 |
ExternalIncidentId |
外部使用的事件 ID(例如 ServiceNow 中) |
PlatformInitiated |
指示 Azure 平台是否触发事件(例如自动缓解或系统触发的维护) |
SubscriptionId |
受事件影响的 Azure 订阅的唯一标识符 |
LastUpdateTime |
最近一次事件更新的时间戳 |
CurrencyType |
计费相关事件中使用的货币(例如美元、欧元) |
impactType |
影响的性质(例如 SubscriptionList、ServicesForSubTenants) |
BillingId |
用于将事件与计费帐户或事务关联的标识符 |
EventTags |
用于对事件进行分类或筛选的元数据标记(例如安全、维护、中断) |
duration |
事件的描述性标签或标题 |
注释
“properties”结构是动态的,因 EventType 和 EventSubType 而异。 并非所有字段都存在于每个事件中。
像isEventSensitive
这样的字段可能为空或省略,除非事件与安全相关。
通常 EventSubType
为空,除非事件是计费或停用公告。
有关详细信息,请参阅 使用事件级别的服务运行状况事件标记 和 筛选通知。
访问控制系统确保只有具有有效需求的已授权个人才能查看敏感信息。 有关详细信息,请参阅 “查看和访问安全公告”。
这些字段如何协同工作
-
治理和监控:合并
EventType
、Severity
和Status
以监控正在进行的问题并评估其影响。 -
筛选和警报:使用
SubscriptionId
,并Impact
筛选与特定团队或工作负荷相关的事件。 -
历史分析:使用
ImpactStartTime
和ImpactMitigationTime
了解事件时间线和服务级别协议 (SLA) 影响。 - REST API 集成:这些字段通过 Azure 服务运行状况 REST API 公开,允许编程访问和自动化。
-
筛选和作用域事件:
SubscriptionId
、Impact
、TrackingId
和PlatformInitiated
帮助缩小受影响的资源范围和影响方式。 -
跟踪和分析:
LastUpdateTime
以及Header
EventTags
支持监视和历史分析。 -
支持财务和合规性工作流:
BillingId
和CurrencyType
对于计费相关事件和审核至关重要。
受影响的资源
将 ServiceHealthResources 表中的 type
列设置为 microsoft.resourcehealth/events/impactedresources,以便打开查询,以查找服务运行健康事件(例如服务中断、计划维护或安全公告)影响的资源信息。
受影响的资源属性
字段名称 | Description |
---|---|
resourceName |
受影响的资源的名称 |
resourceGroupName |
资源组的名称 |
targetResourceType |
受影响的资源的类型 |
targetResourceId |
完整资源 ID |
targetRegion |
受影响资源的区域 |
systemData |
有关创建或修改条目的元数据 |
maintenanceStartTime |
当导致影响的事件开始时 |
maintenanceEndTime |
导致影响的事件结束时 |
targetResourceType |
受影响的资源类型(例如,Microsoft.Compute/virtualMachines) |
targetResourceId |
受影响资源的完整资源标识符 |
resourceGroup |
资源组的名称 |
targetRegion |
受影响资源的区域 |
staus |
事件的当前状态 |
info |
资源运行状况
HealthResources Azure Resource Graph(ARG)中有两种类型的表提供有关 Azure 资源(尤其是虚拟机)运行状况的详细信息。
microsoft.resourcehealth/availabilitystatuses
此表基于 Azure 平台执行的运行状况检查,提供 Azure 资源的最新可用性状态(主要是虚拟机(VM)。
可以使用此查询来:
- 跟踪环境中的 VM 运行状况:获取所有订阅或资源组中虚拟机运行状况的合并视图。
- 快速诊断问题:确定哪些 VM 标记为不可用或降级,并调查根本原因。
- 审核停机时间源:确定服务中断是由平台启动的事件(例如维护)还是客户作导致的。
- 创建运营仪表板:可视化实时健康数据,以监测服务级别协议(SLA)并保持运营意识。
-
添加带批注的上下文:将此表与
resourceannotations
了解可用性更改背后的原因(例如重启或中断)相结合。
microsoft.resourcehealth/resourceannotations
此表提供有关 Azure 资源可用性更改(尤其是虚拟机(VM)的详细注释。 它添加上下文,例如故障归因、停机时间分析和影响元数据。 这些字段可帮助你了解 VM 的可用性发生更改的原因,无论是由于平台维护、客户作还是意外故障。
可以使用此查询来:
- 调查 VM 停机时间:了解可用性更改的根本原因。
-
关联健康事件:结合
availabilitystatuses
以获取状态和上下文。 - 审核平台操作:识别 Azure 是否启动了重启或关闭。
- 改进 SLA 跟踪:将故障归因于特定原因,以进行业务影响分析。
- 生成仪表板:将运行状况注释与其他资源元数据一起可视化。
HealthResources 属性
这些属性字段提供实际的健康信息:
资产 | Description |
---|---|
availabilityState |
当前健康状况:可用、不可用或降级 |
previousAvailabilityState |
当前状态之前的健康状况 |
reasonType |
当前运行状况状态的原因(例如 PlatformInitiated、UserInitiated) |
reasonChronicityType |
指示问题是持久性还是暂时性问题 |
annotationName |
运行状况事件的描述性标签(例如:“VirtualMachineRestarted”) |
title |
健康事件的标题 |
summary |
健康事件的摘要 |
impactStartTime |
事件开始时的时间戳 |
impactMitigationTime |
预期或完成缓解时的时间戳 |
recommendedActions |
为用户建议的操作 |
这些字段如何协同工作
-
监视和警报:
availabilityState
,reasonType
,以及impactStartTime
帮助识别和响应中断或降级。 -
根本原因分析:
reasonChronicityType
、annotationName
和summary
提供用于故障排除的上下文。 -
治理和报告:
location
以及subscriptionId
resourceGroup
允许跨环境筛选和聚合。 -
自动化:
recommendedActions
可用于触发自动修正工作流。
Troubleshooting
问题
maintenanceStartTime
maintenanceEndTime
info
为什么在 ARG 查询结果中显示为 null?
答案
在 microsoft.resourcehealth 事件的 ARG 查询中,由于多种因素,这些字段可能会显示为 null。 了解字段有助于更准确地解释数据。
-
事件类型依赖项:
只有计划内维护事件包括详细时间安排信息。 其他事件类型(如服务问题或安全公告)不使用这些字段,因此它们为 null。
-
事件生命周期和访问控制:
- 新创建或早期阶段的事件可能没有足够的详细信息来填充字段或确认维护窗口。
- 某些敏感事件需要提升的权限才能查看完整数据。 如果没有正确的访问权限,字段将显示为空。
-
事件历史记录和建议:
- 筛选计划维护事件。
- 确认角色和访问权限。
- 检查事件状态。
- 通过适当的支持渠道报告任何一致的数据差距。
如果 maintenanceStartTime
、maintenanceEndTime
或 info
在 ARG 查询结果中显示为 null,则请检查计划的维护窗格。
有关查询的详细信息,请参阅: