如何将Azure VMSS实例数量作为可查询历史数据的监控指标
解决方案
目前最简便的实现方式无需部署额外的定时任务、Azure Function等资源,基于Azure原生的活动日志(Activity Log)+ Log Analytics工作区即可实现:
前置配置
仅需完成1次配置即可长期使用:
- 进入对应订阅的活动日志页面,选择「导出到Log Analytics」,绑定你常用的Log Analytics工作区,启用
Administrative类别的日志导出即可,VMSS的所有扩缩容、实例数调整操作都会被自动同步到工作区。
Kusto查询实现实例数趋势统计
配置完成后,在Log Analytics工作区运行以下查询即可生成每个VMSS的实例数时间序列,直接渲染为折线图后可固定到Azure仪表板:
AzureActivity // 筛选VMSS实例数调整相关操作 | where OperationNameValue in ("Microsoft.Compute/virtualMachineScaleSets/write", "Microsoft.Compute/virtualMachineScaleSets/scale/action") | where ActivityStatusValue == "Success" // 提取VMSS名称、调整前后的实例数 | extend vmssName = Resource | extend newCapacity = parse_json(Properties).responseBody.properties.capacity | extend oldCapacity = parse_json(Properties).requestBody.properties.capacity // 按VMSS分组生成时间序列 | project TimeGenerated, vmssName, newCapacity, oldCapacity | partition by vmssName ( order by TimeGenerated asc | serialize | scan declare (currentCapacity:long=0) with ( step s1: true => currentCapacity = newCapacity; ) ) // 渲染折线图 | make-series avg(currentCapacity) default=prev(currentCapacity) on TimeGenerated from ago(30d) to now() step 1h by vmssName | render timechart
替代轻量方案(临时查询场景)
如果仅需要短期30天内的实例数变化数据,无需配置日志导出:
- 进入对应VMSS的「缩放」页面,切换到「运行历史」标签,可直接导出自动缩放的所有操作记录,导出CSV后即可自行生成折线图。
注意事项
- 若之前未配置活动日志导出,仅能查询配置完成后的历史数据,更早的历史数据无原生留存,需要临时运行单次脚本拉取周期快照补充即可
- Log Analytics工作区的日志留存时长可自行配置,最长支持留存730天,满足长期趋势统计需求
内容的提问来源于stack exchange,提问作者hey
相关产品推荐
相关产品推荐

