Отправка метрик масштабируемого набора виртуальных машин Windows в хранилище метрик Azure Monitor с помощью шаблона Azure Resource Manager и расширения диагностики Windows Azure
Примечание.
Агент Azure Monitor (AMA) собирает данные мониторинга из гостевой операционной системы Azure и гибридных виртуальных машин и Масштабируемые наборы виртуальных машин и предоставляет его в Azure Monitor для использования функциями, аналитическими сведениями и другими службами, такими как Microsoft Sentinel и Microsoft Defender для облака.
Мы рекомендуем использовать агент Azure Monitor для сбора журналов и метрик из Масштабируемые наборы виртуальных машин. Дополнительные сведения см. в обзоре агента Azure Monitor.
С помощью расширения Azure Monitor Диагностика Azure для Windows (WAD) можно собирать метрики и журналы из гостевой операционной системы (гостевой ОС), которая выполняется в составе виртуальной машины, облачной службы или кластера Azure Service Fabric. Расширение может отправлять телеметрию во множество различных расположений, перечисленных в предыдущей статье.
В этой статье описывается процесс отправки метрик производительности гостевой ОС для масштабируемого набора виртуальных машин под управлением Windows в хранилище данных Azure Monitor. Начиная с Microsoft Диагностика Azure версии 1.11, вы можете записывать метрики непосредственно в хранилище метрик Azure Monitor, где уже собираются стандартные метрики платформы. Таким образом вы можете получить доступ к тем же действиям, которые доступны для метрик платформы. К этим действиям относятся оповещения практически в реальном времени, построение диаграмм, маршрутизация, доступ из REST API и многое другое. В прошлом расширение Microsoft Диагностика Azure записывается в служба хранилища Azure, но не в хранилище данных Azure Monitor.
Если вы не знакомы с шаблонами Resource Manager, изучите сведения о развертывании шаблонов, их структуре и синтаксисе.
Примечание.
Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Чтобы начать работу, см. статью Установка Azure PowerShell. Дополнительные сведения см. в статье Перенос Azure PowerShell с AzureRM на Az.
Необходимые компоненты
Подписку необходимо зарегистрировать в Microsoft.Insights.
Требуется установить Azure PowerShell или использовать Azure Cloud Shell.
Настройка Azure Monitor в качестве приемника данных
Расширение системы диагностики Azure использует функцию приемников данных для маршрутизации метрик и журналов в различные расположения. Ниже показано, как с помощью шаблона Resource Manager и PowerShell развернуть виртуальную машину, используя новый приемник данных Azure Monitor.
Создание шаблона Resource Manager
В этом примере можно использовать общедоступный пример шаблона.
Azuredeploy.json — это предварительно настроенный шаблон Resource Manager для развертывания масштабируемого набора виртуальных машин.
Azuredeploy.Parameters.json — это файл параметров, в котором хранятся сведения, такие как имя пользователя и пароль, которые вы хотите задать для виртуальной машины. Во время развертывания шаблона Resource Manager используются параметры, заданные в этом файле.
Скачайте и сохраните оба файла в локальном расположении.
Изменение файла azuredeploy.parameters.json
Откройте файл azuredeploy.parameters.json.
- Укажите vmSKU для развертывания. Рекомендуемое значение — Standard_D2_v3.
- Укажите windowsOSVersion для масштабируемого набора виртуальных машин. Рекомендуемое значение — 2016-Datacenter.
- Задайте имя для ресурса масштабируемого набора виртуальных машин, который будет развернут, с помощью свойства vmssName. Например, VMSS-WAD-TEST.
- Укажите число виртуальных машин, которые следует запускать в масштабируемом наборе виртуальных машин, с помощью свойства instanceCount.
- Введите значения adminUsername и adminPassword для масштабируемого набора виртуальных машин. Эти параметры используются для удаленного доступа к виртуальным машинам в масштабируемом наборе. Не используйте параметры, указанные в этом шаблоне, во избежание перехвата виртуальной машины. Боты сканируют Интернет на наличие имен пользователей и паролей в общедоступных репозиториях GitHub. Вероятно, они будут тестировать виртуальные машины с этими значениями по умолчанию.
Изменение файла azuredeploy.json
Откройте файл azuredeploy.json.
Добавьте переменную, в которой будут содержаться данные учетной записи хранения в шаблоне Resource Manager. Все журналы или счетчики производительности, указанные в файле конфигурации диагностики, записываются в хранилище метрик Azure Monitor и в указанную учетную запись хранения.
"variables": {
//add this line
"storageAccountName": "[concat('storage', uniqueString(resourceGroup().id))]",
...
}
Найдите определение масштабируемого набора виртуальных машин в разделе ресурсов и добавьте в конфигурацию раздел identity. Это позволит назначить набору системное удостоверение в Azure. Это действие также гарантирует, что виртуальные машины в масштабируемом наборе могут отправлять гостевые метрики о себе в Azure Monitor.
{
"type": "Microsoft.Compute/virtualMachineScaleSets",
"name": "[variables('namingInfix')]",
"location": "[resourceGroup().location]",
"apiVersion": "2017-03-30",
//add these lines below
"identity": {
"type": "systemAssigned"
},
//end of lines to add
...
}
В ресурсе масштабируемого набора виртуальных машин найдите раздел virtualMachineProfile. Добавьте новый профиль с именем extensionsProfile для управления расширениями.
В профиле extensionProfile добавьте в шаблон новое расширение, как показано в разделе VMSS-WAD-extension. Этот раздел представляет собой расширение управляемых удостоверений для ресурсов Azure, которое обеспечивает прием выдаваемых метрик в Azure Monitor. В поле name может содержаться любое имя.
Приведенный ниже код из расширения MSI также позволяет добавить расширение диагностики и конфигурации в качестве ресурса расширения в масштабируемый набор виртуальных машин. При необходимости счетчики производительности можно добавлять или удалять.
"extensionProfile": {
"extensions": [
// BEGINNING of added code
// Managed identities for Azure resources
{
"name": "VMSS-WAD-extension",
"properties": {
"publisher": "Microsoft.ManagedIdentity",
"type": "ManagedIdentityExtensionForWindows",
"typeHandlerVersion": "1.0",
"autoUpgradeMinorVersion": true,
"settings": {
"port": 50342
},
"protectedSettings": {}
}
},
// add diagnostic extension. (Remove this comment after pasting.)
{
"name": "[concat('VMDiagnosticsVmExt','_vmNodeType0Name')]",
"properties": {
"type": "IaaSDiagnostics",
"autoUpgradeMinorVersion": true,
"protectedSettings": {
"storageAccountName": "[variables('storageAccountName')]",
"storageAccountKey": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', variables('storageAccountName')),'2015-05-01-preview').key1]",
"storageAccountEndPoint": "https://core.windows.net/"
},
"publisher": "Microsoft.Azure.Diagnostics",
"settings": {
"WadCfg": {
"DiagnosticMonitorConfiguration": {
"overallQuotaInMB": "50000",
"PerformanceCounters": {
"scheduledTransferPeriod": "PT1M",
"sinks": "AzMonSink",
"PerformanceCounterConfiguration": [
{
"counterSpecifier": "\\Memory\\% Committed Bytes In Use",
"sampleRate": "PT15S"
},
{
"counterSpecifier": "\\Memory\\Available Bytes",
"sampleRate": "PT15S"
},
{
"counterSpecifier": "\\Memory\\Committed Bytes",
"sampleRate": "PT15S"
}
]
},
"EtwProviders": {
"EtwEventSourceProviderConfiguration": [
{
"provider": "Microsoft-ServiceFabric-Actors",
"scheduledTransferKeywordFilter": "1",
"scheduledTransferPeriod": "PT5M",
"DefaultEvents": {
"eventDestination": "ServiceFabricReliableActorEventTable"
}
},
{
"provider": "Microsoft-ServiceFabric-Services",
"scheduledTransferPeriod": "PT5M",
"DefaultEvents": {
"eventDestination": "ServiceFabricReliableServiceEventTable"
}
}
],
"EtwManifestProviderConfiguration": [
{
"provider": "cbd93bc2-71e5-4566-b3a7-595d8eeca6e8",
"scheduledTransferLogLevelFilter": "Information",
"scheduledTransferKeywordFilter": "4611686018427387904",
"scheduledTransferPeriod": "PT5M",
"DefaultEvents": {
"eventDestination": "ServiceFabricSystemEventTable"
}
}
]
}
},
"SinksConfig": {
"Sink": [
{
"name": "AzMonSink",
"AzureMonitor": {}
}
]
}
},
"StorageAccount": "[variables('storageAccountName')]"
},
"typeHandlerVersion": "1.11"
}
}
]
},
// end of added code. Be sure that the number and type of brackets match properly when done.
{
"type": "Microsoft.Insights/autoscaleSettings",
...
}
Добавьте dependsOn для учетной записи хранения, чтобы обеспечить ее создание в правильном порядке.
"dependsOn": [
"[concat('Microsoft.Network/loadBalancers/', variables('loadBalancerName'))]",
"[concat('Microsoft.Network/virtualNetworks/', variables('virtualNetworkName'))]",
//add this line below
"[concat('Microsoft.Storage/storageAccounts/', variables('storageAccountName'))]"
]
Создайте учетную запись хранения, если она еще не создана в шаблоне.
"resources": [
// add this code
{
"type": "Microsoft.Storage/storageAccounts",
"name": "[variables('storageAccountName')]",
"apiVersion": "2015-05-01-preview",
"location": "[resourceGroup().location]",
"properties": {
"accountType": "Standard_LRS"
}
},
// end added code
{
"type": "Microsoft.Network/virtualNetworks",
"name": "[variables('virtualNetworkName')]",
...
}
]
Сохраните и закройте оба файла.
Развертывание шаблона Resource Manager
Примечание.
Необходимо запустить расширение системы диагностики Azure 1.5 или более поздней версии, а также задать для свойства autoUpgradeMinorVersion значение true в шаблоне Resource Manager. Затем Azure загрузит нужное расширение при запуске виртуальной машины. Если этих параметров нет в шаблоне, внесите их и повторно разверните шаблон.
Чтобы развернуть шаблон Resource Manager, используйте Azure PowerShell.
Запустите PowerShell.
Войдите в Azure, используя команду
Login-AzAccount
.Получите список подписок с помощью командлета
Get-AzSubscription
.Задайте подписку для создания или обновите виртуальную машину.
Select-AzSubscription -SubscriptionName "<Name of the subscription>"
Создайте группу ресурсов для развертываемой виртуальной машины. Выполните следующую команду:
New-AzResourceGroup -Name "VMSSWADtestGrp" -Location "<Azure Region>"
Выполните следующие команды, чтобы развернуть виртуальную машину.
Примечание.
Если нужно обновить существующий масштабируемый набор, добавьте -Mode Incremental в конце команды.
New-AzResourceGroupDeployment -Name "VMSSWADTest" -ResourceGroupName "VMSSWADtestGrp" -TemplateFile "<File path of your azuredeploy.JSON file>" -TemplateParameterFile "<File path of your azuredeploy.parameters.JSON file>"
После успешного развертывания сведения о масштабируемом наборе виртуальных машин отобразятся на портале Azure. Он будет выдавать метрики в Azure Monitor.
Примечание.
С выбранным параметром vmSkuSize могут возникнуть ошибки. В этом случае вернитесь к файлу azuredeploy.json и обновите значение по умолчанию для параметра vmSkuSize. Мы рекомендуем указать Standard_DS1_v2.
Создание диаграммы метрик
Войдите на портал Azure.
В меню слева выберите Монитор.
На странице Монитор щелкните Метрики.
Измените период агрегирования на Последние 30 минут.
В раскрывающемся меню ресурсов выберите масштабируемый набор виртуальных машин, который вы только что создали.
В раскрывающемся меню пространств имен выберите "Гость виртуальной машины".
В раскрывающемся списке метрик выберите Память%Использование выделенной памяти (в байтах).
Затем можно использовать измерения этой метрики, чтобы построить диаграмму для определенной виртуальной машины или вывести график по каждой виртуальной машине в масштабируемом наборе.
Следующие шаги
- Дополнительные сведения о настраиваемых метриках см. в этой статье.