Powershell

通過 powershell 或 azure cli 獲取 Azure VM 概述/監控數據

  • November 13, 2017

當我們登錄到 azure 門戶並查看任何資源(如 VM)時,我們將在每個資源的概覽部分看到一些監控數據,這些數據顯示了 30 天的圖表。(CPU 平均值、網路輸入/輸出等)

我的要求是不要通過門戶或 cli 對 Azure 資源進行任何更改。但我寧願尋找一個 powershell / azure cli 命令,它將所有這些數據從 azure 拉到我的本地機器進行一些分析。

我正在尋找 VM、Web 應用程序和 Azure SQL 開始。

謝謝

沒錯,我們可以使用 CLI 2.0 來獲取指標數據:

az monitor metrics list --resource /subscriptions/xxxxxxx/resourceGroups/xxxxx/providers/Micros‌​oft.Compute/virtualM‌​achines/xxxx --metric-names "Percentage CPU" --time-grain "PT1M" >> PercentageCpuData.txt

我們也可以使用 Azure PowerShell 命令Get-AzureRmMetricDefinition來獲取指標。

以下是 Azure VM 的指標:

PS D:\testdata> (Get-AzureRmMetricDefinition -ResourceId $id).name

Value                     LocalizedValue
-----                     --------------
Percentage CPU            Percentage CPU
Network In                Network In
Network Out               Network Out
Disk Read Bytes           Disk Read Bytes
Disk Write Bytes          Disk Write Bytes
Disk Read Operations/Sec  Disk Read Operations/Sec
Disk Write Operations/Sec Disk Write Operations/Sec
CPU Credits Remaining     CPU Credits Remaining
CPU Credits Consumed      CPU Credits Consumed

然後我們可以使用該值來獲取其他指標:

Get-AzureRmMetric -ResourceId $id -TimeGrain 00:01:00 -DetailedOutput -MetricNames "Network in"

這裡有一個關於你的類似案例,請參考。

順便說一下,Azure Host 指標和 Guest 指標的區別,請參考這個連結

引用自:https://serverfault.com/questions/882936