You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

需协助编写获取Azure VM存储及SQL Server属性的Kusto查询

Kusto查询相关问题解答

一、指定资源组下Azure VM存储容量、可用空间查询

以下查询分两种场景,你可以根据自己能访问的数据源选择:

  1. 查询VM配置层面挂载的所有托管磁盘总容量
    直接在Azure Resource Graph Explorer运行即可,不需要额外给VM装代理:
// 将下面变量替换为你要查询的目标资源组名称
let targetRG = "<替换为实际目标资源组名>";
Resources
| where type == "microsoft.compute/virtualmachines"
| where resourceGroup == targetRG
| join kind=leftouter (
    Resources
    | where type == "microsoft.compute/disks"
    | extend diskSizeGB = properties.diskSizeGB
    | project managedBy = tostring(properties.managedBy), diskSizeGB, diskName = name
) on $left.id == $right.managedBy
| summarize
    资源组内VM挂载磁盘总容量_GB = sum(diskSizeGB),
    关联VM总数 = dcount(name)
    by resourceGroup
  1. 查询VM操作系统内的实际可用存储空间
    需要你提前给目标VM启用VM Insights,将监控数据上报到Log Analytics工作区后,在对应工作区的日志查询界面运行:
let targetRG = "<替换为实际目标资源组名>";
// 可根据需要调整查询的时间范围
let queryTimeRange = 1h;
InsightsMetrics
| where TimeGenerated >= ago(queryTimeRange)
| where Name == "FreeSpaceMB"
| where Tags has targetRG
| extend Drive = tostring(Tags.Drive), FreeSpaceGB = Val/1024, Computer = tostring(Tags.Computer)
| join kind=inner (
    InsightsMetrics
    | where TimeGenerated >= ago(queryTimeRange)
    | where Name == "CapacityMB"
    | extend Drive = tostring(Tags.Drive), TotalSpaceGB = Val/1024, Computer = tostring(Tags.Computer)
    | project Computer, Drive, TotalSpaceGB
) on Computer, Drive
| summarize
    单VM磁盘总容量_GB = sum(TotalSpaceGB),
    单VM可用磁盘空间_GB = sum(FreeSpaceGB),
    可用空间占比 = round((sum(FreeSpaceGB)/sum(TotalSpaceGB))*100,2)
    by Computer

二、VM内安装的SQL Server属性查询说明

可以通过Kusto查询到相关属性,分两种部署场景适配不同查询方式:

  • 如果SQL Server是通过Azure市场SQL镜像部署、已经注册了SQL Server IaaS代理扩展(即Azure资源类型为microsoft.sqlvirtualmachine/sqlvirtualmachines),直接在Azure Resource Graph运行以下查询即可拿到官方上报的SQL属性,不需要登录VM:
let targetRG = "<替换为实际目标资源组名>";
Resources
| where type == "microsoft.sqlvirtualmachine/sqlvirtualmachines"
| where resourceGroup == targetRG
| project
    关联VM名称 = name,
    SQL镜像版本 = properties.sqlImageOffer,
    SQL实例补丁级别 = properties.sqlServerPatchLevel,
    实例名 = tostring(properties.sqlInstanceSettings.instanceName),
    授权类型 = properties.sqlLicenseType,
    自动备份状态 = properties.autoBackupSettings.enable
  • 如果是手动在VM内部安装的SQL Server、没有注册SQL IaaS扩展,资源层的Kusto查询无法直接读取OS内的SQL配置。你可以选择给对应VM安装SQL IaaS扩展将实例注册到Azure资源层,或者给VM装Log Analytics代理、启用SQL Server评估解决方案,等SQL实例的配置、版本、数据库信息上报到Log Analytics工作区后,就可以用Kusto查询上报的全量SQL属性,包括实例版本、数据库列表、库大小、兼容级别、实例配置参数等。

内容的提问来源于stack exchange,提问作者sqldba

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.02 02:46:12