Enviar as métricas de um sistema operacional convidado para o repositório de métricas do Azure Monitor usando um modelo do ARM para uma VM do Windows
Observação
O AMA (Agente do Azure Monitor) coleta dados de monitoramento do sistema operacional convidado do Azure e das máquinas virtuais híbridas e os entrega ao Azure Monitor, para uso por recursos, insights e outros serviços, como o Microsoft Sentinel e o Microsoft Defender para Nuvem.
É recomendável usar o Agente do Azure Monitor para coletar logs e métricas de Máquinas Virtuais. Para obter mais informações, confira Visão geral do Agente do Azure Monitor.
Os dados de desempenho do sistema operacional convidado das VMs (máquinas virtuais) do Azure não são coletados automaticamente, como ocorre com outras métricas de plataforma. Instale a extensão de diagnóstico do Azure Monitor para coletar as métricas do sistema operacional convidado no banco de dados de métricas a fim de usá-las com todos os recursos das Métricas do Azure Monitor. Esses recursos incluem a criação de gráficos, o roteamento, o acesso e a geração de alertas praticamente em tempo real por meio de uma API REST. Este artigo descreve o processo de envio das métricas de desempenho do sistema operacional convidado relativas a uma VM do Windows para o banco de dados de métricas por meio de um modelo do ARM (Azure Resource Manager).
Observação
Para saber como configurar a extensão de diagnóstico a fim de coletar métricas do sistema operacional convidado usando o portal do Azure, confira Instalar e configurar a extensão do WAD (diagnóstico do Windows Azure).
Se você não está familiarizado com os modelos do ARM, saiba mais sobre as implantações de modelos e a estrutura e a sintaxe associadas.
Pré-requisitos
- Sua assinatura deve ser registrada com Microsoft. Insights.
- Você precisará ter o Azure PowerShell ou o Azure Cloud Shell instalado.
Configurar o Azure Monitor como um coletor de dados
A extensão de Diagnóstico do Azure usa um recurso chamado coletores de dados para encaminhar métricas e logs para locais diferentes. As etapas a seguir mostram como usar um modelo do ARM e o PowerShell para implantar uma VM usando o novo coletor de dados do Azure Monitor.
Modelo de ARM
Para este exemplo, você pode usar um modelo de exemplo disponível publicamente. Os modelos iniciais estão no GitHub.
- Azuredeploy.json: um modelo do ARM pré-configurado para a implantação de uma VM.
- Azuredeploy.parameters.json: um arquivo de parâmetros que armazena informações como o nome de usuário e a senha que você deseja definir para a VM. Durante a implementação, o modelo do ARM usa os parâmetros configurados nesse arquivo.
Baixe e salve os dois arquivos localmente.
Modificar azuredeploy.parameters.json
Abra o arquivo azuredeploy.parameters.json.
Insira valores de
adminUsername
eadminPassword
para a VM. Esses parâmetros são usados para acesso remoto à VM. Para evitar que a VM seja invadida, não use os valores nesse modelo. Os bots examinam a Internet em busca de nomes de usuário e senhas em repositórios GitHub públicos. Eles provavelmente testarão VMs com esses padrões.Crie um
dnsname
exclusivo para a VM.
Modificar azuredeploy.json
Abra o azuredeploy. JSON arquivo.
Adicione uma ID de conta de armazenamento à seção
variables
do modelo após a entrada parastorageAccountName
.// Find these lines. "variables": { "storageAccountName": "[concat(uniquestring(resourceGroup().id), 'sawinvm')]", // Add this line directly below. "accountid": "[resourceId('Microsoft.Storage/storageAccounts', variables('storageAccountName'))]",
Adicione essa extensão de MSI (Identidade de Serviço Gerenciada) ao modelo na parte superior da seção
resources
. A extensão garante que o Azure Monitor aceite as métricas que estão sendo emitidas.//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 } } },
Adicione a configuração de
identity
ao recurso da VM para garantir que o Azure atribua uma identidade do sistema à extensão de MSI. Essa etapa garante que a VM possa emitir métricas de convidado sobre si mesma para o 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": { ...
Adicione a configuração a seguir para habilitar a extensão de diagnóstico em uma VM do Windows. No caso de uma VM simples baseada no Resource Manager, é possível adicionar a configuração de extensão à matriz de recursos da VM. A linha
"sinks": "AzMonSink"
e o"SinksConfig"
correspondente que aparece posteriormente na seção permitem que a extensão emita métricas diretamente no Azure Monitor. Fique à vontade adicionar ou remover os contadores de desempenho conforme necessário."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
Salve e feche ambos os arquivos.
Implantar o modelo do ARM
Observação
É necessário executar a extensão do diagnóstico do Azure 1.5 ou superior e ter a propriedade autoUpgradeMinorVersion:
definida como true
no modelo do ARM. Então, o Azure carregará a extensão apropriada ao iniciar a VM. Se você não tiver essas configurações no seu modelo, altere-as e reimplemente o modelo.
Para implantar o modelo do ARM, use o Azure PowerShell.
Inicie o PowerShell.
Entrar no Azure usando
Login-AzAccount
.Obtenha a lista de assinaturas usando
Get-AzSubscription
.Defina a assinatura que você está usando para criar/atualizar a VM em:
Select-AzSubscription -SubscriptionName "<Name of the subscription>"
Para criar um novo grupo de recursos para a VM sendo implantada, execute o comando a seguir:
New-AzResourceGroup -Name "<Name of Resource Group>" -Location "<Azure Region>"
Observação
Lembre-se de usar uma região do Azure habilitada para métricas personalizadas.
Execute os comandos a seguir para implantar a VM usando o modelo do ARM.
Observação
Para atualizar uma VM existente, adicione -Mode Incremental ao final do comando a seguir.
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>"
Depois que a implantação for bem-sucedida, a VM deverá estar no portal do Azure, emitindo métricas para o Azure Monitor.
Observação
Você pode encontrar erros ao redor selecionado
vmSkuSize
. Se esse erro ocorrer, volte ao arquivo azuredeploy.json e atualize o valor padrão do parâmetrovmSkuSize
. (Neste caso, é recomendado testar"Standard_DS1_v2"
).
Fazer um gráfico das métricas
Entre no portal do Azure.
No menu esquerdo, selecione Monitorar.
Sobre o Monitor página, selecione métricas.
Altere o período de agregação para Últimos 30 minutos.
No menu suspenso de recursos, selecione a VM criada. Se você não alterou o nome do modelo, ele deve ser SimpleWinVM2.
Na lista de seleção de namespaces, selecione azure.vm.windows.guestmetrics.
Na lista suspensa de métricas, selecione Memory%Committed Bytes usados.
Próximas etapas
Saiba mais sobre métricas personalizadas.