【问题标题】:Display number of running Azure VM's on a dashboard在仪表板上显示正在运行的 Azure VM 的数量
【发布时间】:2020-06-04 06:05:09
【问题描述】:

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

由于过滤虚拟机刀片不适用于 VM 的电源状态,因此我转向了资源图。从那里解决方案接近,但似乎不可能过滤电源状态(还)。

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

有没有办法将此数据与另一个数据表结合起来,以便能够过滤电源状态并仅获取正在运行的虚拟机?或者也许完全不同的解决方案只是在仪表板上显示正在运行的 VM 的数量?

【问题讨论】:

    标签: azure azure-dashboard azure-resource-graph


    【解决方案1】:

    Resource Graph 架构中似乎没有保存 VM 的 PowerState 的表(至少我找不到)

    既然您曾表示您还想听听完全不同的方法,我想建议 PowerShell 路线

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

    Get-AzVM -Status
    

    您可以将此输出写入 Azure 表存储。 (此链接详细介绍了如何使用 PowerShell 与 Azure 存储帐户进行交互 [https://docs.microsoft.com/en-us/azure/storage/tables/table-storage-how-to-use-powershell]

    您可以在此表存储过滤之上构建 Power BI 报告,仅为 PowerState == running 并点亮您的报告。

    现在要安排这个,您需要

    a) 创建一个自动化帐户。可以在此处找到有关如何创建自动化帐户的详细信息 [https://docs.microsoft.com/en-us/azure/automation/automation-create-standalone-account]

    b) 创建获取 VM 状态并将行插入表存储的 PowerShell 运行手册

    c) 创建一个计划并将运行手册链接到它。 可以在此处找到有关如何安排的详细信息 [https://docs.microsoft.com/en-us/azure/automation/shared-resources/schedules]

    因此,使用 Azure 自动化帐户和 Runbook(b 点),您可以设置计划并将 Runbook 与该计划链接。每当 Runbook 执行时,它都会获取当前的 powerstatus 并按照计划将其上传到 Azure Table 存储,这将使 PowerBI 保持更新。

    希望对你有帮助

    【讨论】:

      【解决方案2】:

      希望下面的例子对你有用

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

      干杯,

      【讨论】:

      • 太好了,感谢您的建议!由于这提供了实际问题的答案,因此我将其标记为答案。 @Guru Pasupathy 的另一个建议也很好,但不会为我的用例提供答案。
      猜你喜欢
      • 2021-08-13
      • 1970-01-01
      • 1970-01-01
      • 2019-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多