Отправка метрик гостевой ОС в хранилище метрик Azure Monitor с помощью шаблона ARM для виртуальной машины Windows
Примечание.
Агент Azure Monitor (AMA) собирает данные мониторинга из гостевой операционной системы Azure и гибридных виртуальных машин и поставляет его в Azure Monitor для использования функциями, аналитическими сведениями и другими службами, такими как Microsoft Sentinel и Microsoft Defender для облака.
Мы рекомендуем использовать агент Azure Monitor для сбора журналов и метрик из Виртуальные машины. Дополнительные сведения см. в обзоре агента Azure Monitor.
Данные о производительности из гостевой ОС виртуальных машин Azure не собираются автоматически, как и другие метрики платформы. Установите расширение диагностики Azure Monitor для сбора метрик гостевой ОС в базу данных метрик, чтобы ее можно было использовать со всеми функциями метрик Azure Monitor. К этим функциям относятся оповещения почти в режиме реального времени, диаграммы, маршрутизация и доступ из REST API. В этой статье описывается процесс отправки метрик производительности гостевой ОС для виртуальной машины Windows в базу данных метрик с помощью шаблона Azure Resource Manager (шаблона ARM).
Примечание.
Дополнительные сведения о настройке расширения диагностика для сбора метрик гостевой ОС с помощью портал Azure см. в разделе "Установка и настройка расширения Windows Диагностика Azure (WAD).
Если вы не знакомы с шаблонами ARM, узнайте о развертываниях шаблонов и их структуре и синтаксисе.
Необходимые компоненты
- Подписку необходимо зарегистрировать в Microsoft.Insights.
- Необходимо установить Azure PowerShell или Azure Cloud Shell.
Настройка Azure Monitor в качестве приемника данных
Расширение системы диагностики Azure использует функцию приемников данных для маршрутизации метрик и журналов в различные расположения. Ниже показано, как использовать шаблон ARM и PowerShell для развертывания виртуальной машины с помощью нового приемника данных Azure Monitor.
Шаблон ARM
В этом примере можно использовать общедоступный пример шаблона. Начальные шаблоны находятся на сайте GitHub.
- Azuredeploy.json. Предварительно настроенный шаблон ARM для развертывания виртуальной машины.
- Azuredeploy.parameters.json. Файл параметров, в который хранятся такие сведения, как имя пользователя и пароль, которые вы хотите задать для виртуальной машины. Во время развертывания шаблон ARM использует параметры, заданные в этом файле.
Скачайте и сохраните оба файла в локальном расположении.
Изменение файла azuredeploy.parameters.json
Откройте файл azuredeploy.parameters.json.
Введите значения для
adminUsername
виртуальной машины иadminPassword
для нее. Эти параметры используются для удаленного доступа к виртуальной машине. Чтобы избежать взлома виртуальной машины, не используйте значения в этом шаблоне. Боты сканируют Интернет на наличие имен пользователей и паролей в общедоступных репозиториях GitHub. Вероятно, они будут тестировать виртуальные машины с этими значениями по умолчанию.Создайте уникальный
dnsname
объект для виртуальной машины.
Изменение файла azuredeploy.json
Откройте файл azuredeploy.json.
Добавьте идентификатор учетной записи хранения в
variables
раздел шаблона после записиstorageAccountName
.// Find these lines. "variables": { "storageAccountName": "[concat(uniquestring(resourceGroup().id), 'sawinvm')]", // Add this line directly below. "accountid": "[resourceId('Microsoft.Storage/storageAccounts', variables('storageAccountName'))]",
Добавьте это расширение управляемого удостоверения службы (MSI) в шаблон в верхней части
resources
раздела. Это расширение гарантирует, что Azure Monitor принимает исходящие метрики.//Find this code. "resources": [ // Add this code directly below. { "type": "Microsoft.Compute/virtualMachines/extensions", "name": "[concat(variables('vmName'), '/', 'WADExtensionSetup')]", "apiVersion": "2017-12-01", "location": "[resourceGroup().location]", "dependsOn": [ "[concat('Microsoft.Compute/virtualMachines/', variables('vmName'))]" ], "properties": { "publisher": "Microsoft.ManagedIdentity", "type": "ManagedIdentityExtensionForWindows", "typeHandlerVersion": "1.0", "autoUpgradeMinorVersion": true, "settings": { "port": 50342 } } },
identity
Добавьте конфигурацию в ресурс виртуальной машины, чтобы убедиться, что Azure назначает системное удостоверение расширению MSI. Этот шаг гарантирует, что виртуальная машина может передавать гостевые метрики о себе в Azure Monitor.// Find this section "subnet": { "id": "[variables('subnetRef')]" } } } ] } }, { "apiVersion": "2017-03-30", "type": "Microsoft.Compute/virtualMachines", "name": "[variables('vmName')]", "location": "[resourceGroup().location]", // add these 3 lines below "identity": { "type": "SystemAssigned" }, //end of added lines "dependsOn": [ "[resourceId('Microsoft.Storage/storageAccounts/', variables('storageAccountName'))]", "[resourceId('Microsoft.Network/networkInterfaces/', variables('nicName'))]" ], "properties": { "hardwareProfile": { ...
Добавьте следующую конфигурацию, чтобы включить расширение диагностика на виртуальной машине Windows. Для простой виртуальной машины на основе Resource Manager можно добавить конфигурацию расширения в массив ресурсов для виртуальной машины.
"sinks": "AzMonSink"
Строка и соответствующая"SinksConfig"
далее в разделе позволяют расширению выдавать метрики непосредственно в Azure Monitor. При желании счетчики производительности можно добавлять или удалять."networkProfile": { "networkInterfaces": [ { "id": "[resourceId('Microsoft.Network/networkInterfaces',variables('nicName'))]" } ] }, "diagnosticsProfile": { "bootDiagnostics": { "enabled": true, "storageUri": "[reference(resourceId('Microsoft.Storage/storageAccounts/', variables('storageAccountName'))).primaryEndpoints.blob]" } } }, //Start of section to add "resources": [ { "type": "Microsoft.Compute/virtualMachines/extensions", "name": "[concat(variables('vmName'), '/', 'Microsoft.Insights.VMDiagnosticsSettings')]", "apiVersion": "2017-12-01", "location": "[resourceGroup().location]", "dependsOn": [ "[concat('Microsoft.Compute/virtualMachines/', variables('vmName'))]" ], "properties": { "publisher": "Microsoft.Azure.Diagnostics", "type": "IaaSDiagnostics", "typeHandlerVersion": "1.12", "autoUpgradeMinorVersion": true, "settings": { "WadCfg": { "DiagnosticMonitorConfiguration": { "overallQuotaInMB": 4096, "DiagnosticInfrastructureLogs": { "scheduledTransferLogLevelFilter": "Error" }, "Directories": { "scheduledTransferPeriod": "PT1M", "IISLogs": { "containerName": "wad-iis-logfiles" }, "FailedRequestLogs": { "containerName": "wad-failedrequestlogs" } }, "PerformanceCounters": { "scheduledTransferPeriod": "PT1M", "sinks": "AzMonSink", "PerformanceCounterConfiguration": [ { "counterSpecifier": "\\Memory\\Available Bytes", "sampleRate": "PT15S" }, { "counterSpecifier": "\\Memory\\% Committed Bytes In Use", "sampleRate": "PT15S" }, { "counterSpecifier": "\\Memory\\Committed Bytes", "sampleRate": "PT15S" } ] }, "WindowsEventLog": { "scheduledTransferPeriod": "PT1M", "DataSource": [ { "name": "Application!*" } ] }, "Logs": { "scheduledTransferPeriod": "PT1M", "scheduledTransferLogLevelFilter": "Error" } }, "SinksConfig": { "Sink": [ { "name" : "AzMonSink", "AzureMonitor" : {} } ] } }, "StorageAccount": "[variables('storageAccountName')]" }, "protectedSettings": { "storageAccountName": "[variables('storageAccountName')]", "storageAccountKey": "[listKeys(variables('accountid'),'2015-06-15').key1]", "storageAccountEndPoint": "https://core.windows.net/" } } } ] //End of section to add
Сохраните и закройте оба файла.
Развертывание шаблона ARM
Примечание.
Необходимо запустить расширение Диагностика Azure версии 1.5 или более поздней версии и иметь свойство, заданное autoUpgradeMinorVersion:
true
в шаблоне ARM. Затем Azure загрузит нужное расширение при запуске виртуальной машины. Если этих параметров нет в шаблоне, внесите их и повторно разверните шаблон.
Для развертывания шаблона ARM мы используем Azure PowerShell.
Запустите PowerShell.
Войдите в Azure с помощью
Login-AzAccount
.Получите список подписок с помощью командлета
Get-AzSubscription
.Задайте подписку, используемую для создания и обновления виртуальной машины в:
Select-AzSubscription -SubscriptionName "<Name of the subscription>"
Чтобы создать группу ресурсов для развертываемой виртуальной машины, выполните указанную ниже команду.
New-AzResourceGroup -Name "<Name of Resource Group>" -Location "<Azure Region>"
Примечание.
Не забывайте использовать регион Azure, включенный для пользовательских метрик.
Выполните следующие команды, чтобы развернуть виртуальную машину с помощью шаблона ARM.
Примечание.
Если вы хотите обновить существующую виртуальную машину, добавьте -Mode Incremental в конец следующей команды.
New-AzResourceGroupDeployment -Name "<NameThisDeployment>" -ResourceGroupName "<Name of the Resource Group>" -TemplateFile "<File path of your Resource Manager template>" -TemplateParameterFile "<File path of your parameters file>"
После успешного завершения развертывания виртуальная машина должна появиться на портале Azure и начать передачу метрик в Azure Monitor.
Примечание.
Могут возникнуть ошибки, связанные с выбранным
vmSkuSize
. Если эта ошибка возникает, вернитесь к файлу azuredeploy.json и обновите значениеvmSkuSize
по умолчанию параметра. В этом случае рекомендуется попробовать"Standard_DS1_v2"
).
Создание диаграммы метрик
Войдите на портал Azure.
В меню слева выберите Монитор.
На странице Монитор щелкните Метрики.
Измените период агрегирования на Последние 30 минут.
В раскрывающемся меню ресурса выберите созданную виртуальную машину. Если вы не изменяли имя в шаблоне, оно должно быть SimpleWinVM2.
В раскрывающемся списке пространств имен выберите azure.vm.windows.guestmetrics.
В раскрывающемся списке метрик выберите "Память%Зафиксировать байты" в разделе "Использование".
Следующие шаги
Дополнительные сведения о настраиваемых метриках см. в этой статье.