Отображение количества запущенных виртуальных машин Azure на панели мониторинга
Я хочу создать панель мониторинга на портале Azure, которая отображает количество активных виртуальных машин для каждой группы ресурсов. В этом случае меня не интересуют освобожденные или остановленные виртуальные машины.
Поскольку фильтрация блейд-сервера виртуальных машин не работает для состояния питания виртуальной машины, я обратился к графику ресурсов. Оттуда решение приближается, но не представляется возможным фильтровать состояние питания (пока).
resources
| where type == "microsoft.compute/virtualmachines"
| summarize count() by resourceGroup
| order by resourceGroup asc
Есть ли способ объединить эти данные с другой таблицей данных, чтобы иметь возможность фильтровать состояние питания и получать только запущенные виртуальные машины? Или, может быть, совсем другое решение, чтобы просто отображать количество запущенных виртуальных машин на панели управления?
1 ответ
Кажется, не существует таблицы, содержащей PowerState виртуальной машины в схеме графика ресурсов (по крайней мере, я не смог ее найти)
Поскольку вы заявили, что хотели бы услышать о совершенно другом подходе, я хочу предложить путь PowerShell.
Вы можете получить 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 и осветить свой отчет.
Теперь, чтобы запланировать это, вам нужно будет
а) Создайте учетную запись автоматизации. Подробную информацию о том, как создать учетную запись для автоматизации, можно найти здесь [https://docs.microsoft.com/en-us/azure/automation/automation-create-standalone-account]
б) Создайте модуль Runbook PowerShell, который получает статус виртуальной машины и вставляет строки в хранилище таблиц.
c) Создайте расписание и свяжите с ним модуль Runbook. Подробности о том, как составить расписание, можно найти здесь [https://docs.microsoft.com/en-us/azure/automation/shared-resources/schedules].
Таким образом, используя учетную запись службы автоматизации Azure и модуль Runbook (пункт b), вы можете настроить расписание и связать модуль Runbook с этим расписанием. Каждый раз, когда модуль Runbook запускается, он получает текущий статус мощности и выгружает его в хранилище таблиц Azure в соответствии с расписанием, которое будет поддерживать PowerBI в актуальном состоянии.
Надеюсь это поможет
Надеюсь , что приведенный ниже пример сработает для вас
resources
| where type == "microsoft.compute/virtualmachines"
| where properties.extended.instanceView.powerState.displayStatus=="VM running"
| summarize count() by resourceGroup
| order by resourceGroup asc
Привет,