在仪表板上显示运行Azure VM的数量

在仪表板上显示运行Azure VM的数量,azure,azure-dashboard,azure-resource-graph,Azure,Azure Dashboard,Azure Resource Graph,我想在Azure门户中创建一个仪表板,显示每个资源组的活动虚拟机数量。在这种情况下,我对任何解除分配或停止的VM都不感兴趣 由于对虚拟机刀片服务器的过滤不适用于虚拟机的电源状态,因此我转向了资源图。从那时起,解决方案就接近了,但似乎还不可能根据电源状态进行过滤 resources | where type == "microsoft.compute/virtualmachines" | summarize count() by resourceGroup | order by resourceG

我想在Azure门户中创建一个仪表板,显示每个资源组的活动虚拟机数量。在这种情况下,我对任何解除分配或停止的VM都不感兴趣

由于对虚拟机刀片服务器的过滤不适用于虚拟机的电源状态,因此我转向了资源图。从那时起,解决方案就接近了,但似乎还不可能根据电源状态进行过滤

resources
| where type == "microsoft.compute/virtualmachines"
| summarize count() by resourceGroup
| order by resourceGroup asc

是否有一种方法可以将此数据与另一个数据表组合,以便能够在电源状态下进行筛选,并仅获取正在运行的虚拟机?或者可能是一种完全不同的解决方案,只在仪表板上显示正在运行的VM的数量?

似乎没有一个表在资源图架构中保存VM的电源状态,至少我找不到它

既然您已经说过,您也希望听到完全不同的方法,我想建议使用PowerShell路线

您可以使用下面的命令获取VM的PowerState

Get-AzVM -Status
您可以将此输出写入Azure表存储。此链接详细介绍了如何使用PowerShell与Azure存储帐户交互[

您可以在此表的顶部构建Power BI报告,仅针对PowerState==正在运行的存储过滤,并点亮您的报告

现在要安排这个,您需要

a创建自动化帐户。有关如何创建自动化帐户的详细信息,请参见此处[

b创建一个PowerShell runbook,获取VM状态并将行插入表存储

创建一个时间表并将runbook链接到它。 有关如何安排日程的详细信息,请参见此处[

因此,使用Azure Automation帐户和Runbook point b,您可以设置一个时间表并将Runbook与该时间表链接。每当Runbook执行时,它都会获取当前的powerstatus并按照时间表将其上载到Azure表存储,这将使PowerBI保持更新


希望这有帮助

在资源图架构中似乎没有一个表保存VM的PowerState,至少我找不到它

既然您已经说过,您也希望听到完全不同的方法,我想建议使用PowerShell路线

您可以使用下面的命令获取VM的PowerState

Get-AzVM -Status
您可以将此输出写入Azure表存储。此链接包含如何使用PowerShell与Azure存储帐户交互的详细信息[

您可以在此表的顶部构建Power BI报告,仅针对PowerState==正在运行的存储过滤,并点亮您的报告

现在要安排这个,您需要

a创建自动化帐户。有关如何创建自动化帐户的详细信息,请参见此处[

b创建一个PowerShell runbook,获取VM状态并将行插入表存储

创建一个时间表并将runbook链接到它。 有关如何安排日程的详细信息,请参见此处[

因此,使用Azure Automation帐户和Runbook point b,您可以设置一个时间表并将Runbook与该时间表链接。每当Runbook执行时,它都会获取当前的powerstatus并按照时间表将其上载到Azure表存储,这将使PowerBI保持更新


希望这有帮助

希望下面的例子对你有用

resources
| where type == "microsoft.compute/virtualmachines"
| where properties.extended.instanceView.powerState.displayStatus=="VM running"
| summarize count() by resourceGroup
| order by resourceGroup asc

干杯,

希望下面的例子对你有用

resources
| where type == "microsoft.compute/virtualmachines"
| where properties.extended.instanceView.powerState.displayStatus=="VM running"
| summarize count() by resourceGroup
| order by resourceGroup asc

干杯,

太好了,谢谢你的建议!因为这提供了实际问题的答案,我将把它标记为答案。@Guru Pasupathy的另一个建议也是很好的,但不会为我的用例提供答案。太好了,谢谢你的建议!因为这提供了实际问题的答案,我将标记它@Guru Pasupathy的另一个建议也是很好的,但不会为我的用例提供答案。