0

如果您尚未在 Azure 中的虚拟机规模集上配置Insights,并且您从 Azure 门户访问Insights窗格,您将收到以下通知:

“使用 Azure 虚拟机规模集,您可以立即获得 VMSS 的主机 CPU、磁盘和启动/关闭状态。”

当您单击Azure 门户内的虚拟机规模集的指标窗格时,这似乎是正确的,因为在其中您可以开箱即用地显示各种平台指标(例如CPU 百分比等)并使用它数据。

到现在为止还挺好。

如果我随后访问 Azure 订阅中的Azure Monitor资源,并将范围设置为此虚拟机规模集所在的资源组,然后使用内置查询虚拟机规模集 - 按计算机绘制 CPU 使用趋势图(见图):

在此处输入图像描述

它生成以下 KQL 查询:

// Chart CPU usage trends by computer 
// Calculate CPU usage patterns over the last hour, chart by percentiles. 
InsightsMetrics
| where TimeGenerated > ago(1h)
| where Origin == "vm.azm.ms"
| where Namespace == "Processor"
| where Name == "UtilizationPercentage"
| summarize avg(Val) by bin(TimeGenerated, 5m), Computer //split up by computer
| render timechart

如果我运行该查询,它不会显示来自该范围内任何虚拟机规模集(或其任何虚拟机实例)的任何指标数据。但是,它确实显示来自该资源组范围内已部署或已经部署(当然是在时间限制内)的所有虚拟机的指标数据。为什么此查询位于虚拟机规模集下,如果它检索虚拟机的数据但不检索这些虚拟机规模集/VM 实例的数据?为什么它不在下面的虚拟机下,而是?我试图改变它以从我的虚拟机规模集中获取指标数据,但我似乎无法在Monitor Logs中找到任何内容。

他们是否做到了,“使用 Azure 虚拟机规模集,您可以开箱即用地获得主机 CPU、磁盘和 VMSS 的启动/关闭状态”。声明意味着此数据仅填充到Monitor-Metrics而不是Monitor-LogsMonitor - Logs for Virtual Machine Scale Sets 中是否收集了任何现成的平台指标,就像虚拟机一样?如果没有,需要做什么来启用它?如果有,任何检索这些指标的示例查询将不胜感激!

谢谢!

4

1 回答 1

0

我对此进行了更多研究,并认为我可以为自己的问题提供一些详尽的答案。

他们是否做到了,“使用 Azure 虚拟机规模集,您可以开箱即用地获得主机 CPU、磁盘和 VMSS 的启动/关闭状态”。声明意味着此数据仅填充到 Monitor - Metrics 而不是 Monitor - Logs?

是的,开箱即用它只填充到Azure Monitor - Metrics。更具体地说,它被填充并存储在Azure Monitor 指标数据库中。

Monitor - Logs for Virtual Machine Scale Sets 中是否收集了任何现成的平台指标,就像虚拟机一样?

虚拟机规模集收集开箱即用的平台指标,如上所述,这些指标被填充并存储在Azure Monitor 指标数据库中。为了能够从Azure Monitor - Logs访问这些平台指标,需要设置和配置虚拟机规模集的诊断设置,以使用平台指标数据填充Log Analytics 工作区。

在相应地配置了上述诊断设置后,可以通过查询AzureMetrics表来访问Azure Monitor - Logs中的这些平台指标。

对于平台指标,不需要在虚拟机规模集上配置其他代理,因为平台指标是从 Azure 平台本身收集的,而不是从虚拟机主机及其底层操作系统收集的。

但是,如果需要使用来宾操作系统指标来完成指标,则需要配置额外的代理来收集所需的数据。但这超出了本文最初提出的问题的范围。

上述语句的来源:创建诊断设置以将平台日志和指标发送到不同的目的地

虚拟机规模集提供开箱即用的平台指标: Microsoft.Compute/virtualMachineScaleSets

虚拟机规模集虚拟机实例提供开箱即用的平台指标Microsoft.Compute/virtualMachineScaleSets/virtualMachines

于 2021-04-23T14:10:00.280 回答