Inviare le metriche del sistema operativo guest all'archivio delle metriche di Monitoraggio di Azure usando un modello di Resource Manager per una macchina virtuale Windows
I dati sulle prestazioni del sistema operativo guest delle macchine virtuali di Azure non vengono raccolti automaticamente come altre metriche della piattaforma. Installare l'estensione Diagnostica di Monitoraggio di Azure per raccogliere le metriche del sistema operativo guest nel database delle metriche in modo che possa essere usata con tutte le funzionalità delle metriche di Monitoraggio di Azure. Queste funzionalità includono avvisi quasi in tempo reale, creazione di grafici, routing e accesso da un'API REST. Questo articolo descrive il processo di invio delle metriche delle prestazioni del sistema operativo guest per una macchina virtuale Windows al database delle metriche usando un modello di Azure Resource Manager (modello di Resource Manager).
Nota
Per informazioni dettagliate sulla configurazione dell'estensione di diagnostica per raccogliere le metriche del sistema operativo guest tramite il portale di Azure, vedere Installare e configurare l'estensione Windows Diagnostica di Azure (WAD).
Se non si ha familiarità con i modelli di Resource Manager, vedere distribuzioni di modelli e la relativa struttura e sintassi.
Prerequisiti
- La sottoscrizione deve essere registrata con Microsoft.Insights.
- È necessario avere installato Azure PowerShell o Azure Cloud Shell.
Configurare Monitoraggio di Azure come sink dei dati
L'estensione Diagnostica di Azure usa una funzionalità denominata sink di dati per instradare le metriche e i log in posizioni diverse. I passaggi seguenti illustrano come usare un modello di Resource Manager e PowerShell per distribuire una macchina virtuale usando il nuovo sink di dati di Monitoraggio di Azure.
Modello ARM
Per questo esempio è possibile usare un modello di esempio disponibile pubblicamente. I modelli iniziali sono disponibili in GitHub.
- Azuredeploy.json: modello di Resource Manager preconfigurato per la distribuzione di una macchina virtuale.
- Azuredeploy.parameters.json: file di parametri che archivia informazioni come il nome utente e la password da impostare per la macchina virtuale. Durante la distribuzione, il modello di Resource Manager usa i parametri impostati in questo file.
Scaricare e salvare entrambi i file in locale.
Modificare azuredeploy.parameters.json
Aprire il file azuredeploy.parameters.json .
Immettere i valori per
adminUsername
eadminPassword
per la macchina virtuale. Questi parametri vengono usati per l'accesso remoto alla macchina virtuale. Per evitare che la macchina virtuale venga dirottata, non usare i valori in questo modello. I bot eseguono la ricerca in Internet dei nomi utente e delle password archiviati nei repository GitHub pubblici. È probabile che le VM vengano testate con queste impostazioni predefinite.Creare un oggetto univoco
dnsname
per la macchina virtuale.
Modificare azuredeploy.json
Aprire il file azuredeploy.json.
Aggiungere un ID account di archiviazione alla
variables
sezione del modello dopo la voce perstorageAccountName
.// Find these lines. "variables": { "storageAccountName": "[concat(uniquestring(resourceGroup().id), 'sawinvm')]", // Add this line directly below. "accountid": "[resourceId('Microsoft.Storage/storageAccounts', variables('storageAccountName'))]",
Aggiungere questa estensione identità del servizio gestita al modello nella parte superiore della
resources
sezione. L'estensione assicura l'accettazione da parte di Monitoraggio di Azure delle metriche inviate.//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 } } },
Aggiungere la
identity
configurazione alla risorsa macchina virtuale per assicurarsi che Azure assegni un'identità di sistema all'estensione MSI. Questo passaggio garantisce che la VM possa inviare metriche guest su se stessa a Monitoraggio di Azure.// 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": { ...
Aggiungere la configurazione seguente per abilitare l'estensione di diagnostica in una macchina virtuale Windows. Per una semplice macchina virtuale basata su Resource Manager, è possibile aggiungere la configurazione dell'estensione all'array di risorse per la macchina virtuale. La riga
"sinks": "AzMonSink"
e la corrispondente"SinksConfig"
più avanti nella sezione consentono all'estensione di generare metriche direttamente in Monitoraggio di Azure. È possibile aggiungere o rimuovere i contatori delle prestazioni in base alle esigenze."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
Salvare e chiudere entrambi i file.
Distribuire il modello di Resource Manager
Nota
È necessario eseguire Diagnostica di Azure'estensione versione 1.5 o successiva e impostare la autoUpgradeMinorVersion:
proprietà su true
nel modello di Resource Manager. Azure carica quindi l'estensione corretta all'avvio della macchina virtuale. Se nel modello sono specificate impostazioni diverse, modificarle e ridistribuire il modello.
Per distribuire il modello di Resource Manager, si usa Azure PowerShell.
Avviare PowerShell.
Accedere ad Azure usando
Login-AzAccount
.Ottenere l'elenco delle sottoscrizioni usando
Get-AzSubscription
.Impostare la sottoscrizione usata per creare/aggiornare la macchina virtuale in:
Select-AzSubscription -SubscriptionName "<Name of the subscription>"
Per creare un nuovo gruppo di risorse per la VM che viene distribuita, eseguire il comando seguente:
New-AzResourceGroup -Name "<Name of Resource Group>" -Location "<Azure Region>"
Nota
Ricordarsi di usare un'area di Azure abilitata per le metriche personalizzate.
Eseguire i comandi seguenti per distribuire la macchina virtuale usando il modello di Resource Manager.
Nota
Se si vuole aggiornare una macchina virtuale esistente, aggiungere -Mode Incremental alla fine del comando seguente.
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>"
Al termine della distribuzione, la VM deve essere disponibile nel portale di Azure per inviare metriche a Monitoraggio di Azure.
Nota
È possibile che si verifichino errori intorno all'oggetto selezionato
vmSkuSize
. Se questo errore si verifica, tornare al file azuredeploy.json e aggiornare il valore predefinito delvmSkuSize
parametro. In questo caso, è consigliabile provare"Standard_DS1_v2"
).
Tracciare il grafico delle metriche
Accedere al portale di Azure.
Nel menu a sinistra selezionare Monitoraggio.
Nella pagina Monitoraggio selezionare Metriche.
Modificare il periodo di aggregazione in Ultimi 30 minuti.
Nel menu a discesa della risorsa selezionare la macchina virtuale creata. Se non si è modificato il nome nel modello, deve essere SimpleWinVM2.
Nell'elenco a discesa spazi dei nomi selezionare azure.vm.windows.guestmetrics.
Nell'elenco a discesa metriche selezionare Memory%Committed Bytes in Use (Memoria%Byte commit in usa).
Passaggi successivi
Altre informazioni sulle metriche personalizzate.
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per