Azure % Free Space指标查询无数据:Guest-OS启用必要性及问题排查咨询
关于Log Analytics "% Free Space" 查询无数据的问题解答
首先给你一个明确结论:要获取虚拟机Guest OS层面的磁盘空闲空间数据,确实得为VM启用Guest OS性能数据收集——你之前产生误解,是碰到了一次特殊的缓存/残留数据场景,下面给你拆解清楚:
为什么之前仅启用VM2的Guest OS却能看到VM1的数据?
你说的“只开了VM2的Guest OS,却查到VM1的数据”,很大概率是这两种情况之一:
- 你之前可能给VM1配置过Guest OS性能计数器收集(也许操作过但记不清了),相关历史数据还留在Log Analytics工作区的存储里;
- 或者在你删除
WADPerformanceCounterTable之前,这个表还存着VM1之前的性能数据,导致查询时返回了旧数据。
当你移除所有VM的Guest OS配置、删掉WADPerformanceCounterTable后,新的性能数据没法再被采集,旧数据也被清掉了,自然就查不到任何结果了。
"% Free Space" 指标到底是什么来头?
你以为这个指标是Azure原生自带的,其实是搞混了Azure平台级指标和Guest OS级指标:
- Azure平台级指标(比如VM的磁盘使用率)不用配置Guest OS,是Azure基础设施直接采集的;
- 但
% Free Space属于Guest OS内部的性能计数器(比如Windows的LogicalDisk\% Free Space,Linux的disk_free_percent),这类数据必须通过Log Analytics代理(或Azure Monitor Agent)从VM内部采集,这就要求你必须为VM开启Guest OS性能数据收集。
怎么配置才能恢复数据?
要重新拿到"% Free Space"的数据,你需要做这些操作:
- 先确认VM上已经装了Azure Monitor Agent(AMA)或者Log Analytics代理(MMA)(既然你已经把VM连到Log Analytics工作区,代理应该已经装了,但可以去VM的“监控”菜单里检查下状态);
- 然后在Log Analytics工作区里配置Guest OS性能计数器收集规则:
- 进入你的Log Analytics工作区,左侧菜单选“代理配置”;
- 切换到“性能计数器”标签页;
- 添加对应的计数器:
- Windows系统:添加
LogicalDisk分类下的% Free Space; - Linux系统:添加
Logical Disk分类下的% Free Space(或者disk_free_percent,看你用的代理版本);
- Windows系统:添加
- 设置数据收集频率(比如默认60秒就行),保存配置。
配置完等个10到15分钟,让代理同步配置并开始采集数据,之后再运行"% Free Space"查询就能看到结果了。
内容的提问来源于stack exchange,提问作者user12589647
相关产品推荐
相关产品推荐

