Condividi tramite


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

Nota

L'agente di Monitoraggio di Azure raccoglie i dati di monitoraggio dal sistema operativo guest delle macchine virtuali ibride e di Azure e lo distribuisce a Monitoraggio di Azure per l'uso da parte di funzionalità, informazioni dettagliate e altri servizi, ad esempio Microsoft Sentinel e Microsoft Defender per il cloud.

È consigliabile usare l'agente di Monitoraggio di Azure per la raccolta di log e metriche da set di scalabilità macchine virtuali. Per altre informazioni, vedere la panoramica dell'agente di Monitoraggio di Azure.

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 di diagnostica di Monitoraggio di Azure per raccogliere le metriche del sistema operativo guest nel database di metriche, in modo che possa essere usato 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 illustra il processo da eseguire per inviare le metriche delle prestazioni del sistema operativo guest per una macchina virtuale Windows al database delle metriche usando un modello di Resource Manager (modello di ARM).

Nota

Per informazioni dettagliate sulla configurazione dell'estensione di diagnostica per raccogliere le metriche del sistema operativo guest usando il portale di Azure, vedere Installare e configurare l'estensione di Diagnostica di Microsoft Azure (WAD).

Se non si ha familiarità con i modelli di Resource Manager, vedere le distribuzioni dei modelli e la struttura e la sintassi correlate.

Prerequisiti

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. Le procedure seguenti illustrano come usare un modello di Resource Manager e PowerShell per distribuire una macchina virtuale usando il nuovo sink di dati "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 un file di parametri in cui sono archiviate alcune informazioni, ad esempio il nome utente e la password che si vogliono 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

  1. Aprire il file azuredeploy.parameters.json.

  2. Immettere i valori per adminUsername e adminPassword per la macchina virtuale. Questi parametri vengono usati per l'accesso remoto alla macchina virtuale. Per evitare che la macchina virtuale sia sottoposta a hijack, non usare i valori specificati 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.

  3. Creare un dnsname univoco per la macchina virtuale.

Modificare azuredeploy.json

  1. Aprire il file azuredeploy.json.

  2. Aggiungere l'ID di un account di archiviazione alla sezione variables del modello dopo l'immissione di un valore per storageAccountName.

    // Find these lines.
    "variables": {
        "storageAccountName": "[concat(uniquestring(resourceGroup().id), 'sawinvm')]",
    
    // Add this line directly below.
        "accountid": "[resourceId('Microsoft.Storage/storageAccounts', variables('storageAccountName'))]",
    
  3. Aggiungere questa estensione identità del servizio gestita al modello nella parte superiore della sezione resources. 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
                }
            }
        },
    
  4. Aggiungere la configurazione di identity alla risorsa macchina virtuale per garantire che Azure assegni all'estensione identità del servizio gestita un'identità di sistema. 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": {
        ...
    
  5. Aggiungere la configurazione seguente per abilitare l'estensione 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 il corrispondente "SinksConfig" più avanti nella sezione consentono all'estensione di generare le 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
    
  6. Salvare e chiudere entrambi i file.

Distribuire il modello di Resource Manager

Nota

È necessario eseguire l'estensione Diagnostica di Azure versione 1.5 o successiva e avere la proprietà autoUpgradeMinorVersion: impostata 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, viene usato Azure PowerShell.

  1. Avviare PowerShell.

  2. Accedere ad Azure usando Login-AzAccount.

  3. Ottenere l'elenco delle sottoscrizioni usando Get-AzSubscription.

  4. Impostare la sottoscrizione che si usa per creare o aggiornare la macchina virtuale nella sezione seguente:

    Select-AzSubscription -SubscriptionName "<Name of the subscription>"
    
  5. 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>"
    
  6. Eseguire i comandi seguenti per distribuire la macchina virtuale usando il modello di Resource Manager.

    Nota

    Se si desidera 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>"
    
  7. 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 in relazione al valore vmSkuSize selezionato. Se si verifica questo errore, tornare al file azuredeploy.json e aggiornare il valore predefinito del parametro vmSkuSize. In questo caso, è consigliabile provare "Standard_DS1_v2").

Tracciare il grafico delle metriche

  1. Accedere al portale di Azure.

  2. Nel menu a sinistra selezionare Monitoraggio.

  3. Nella pagina Monitoraggio selezionare Metriche.

    Screenshot che mostra la pagina delle metriche.

  4. Modificare il periodo di aggregazione in Ultimi 30 minuti.

  5. Nell'elenco a discesa delle risorse selezionare la macchina virtuale creata. Se non si è modificato il nome nel modello, deve essere SimpleWinVM2.

  6. Nell'elenco a discesa degli spazi dei nomi selezionare azure.vm.windows.guestmetrics.

  7. Nell'elenco a discesa delle metriche selezionare Memory%Committed Bytes in Use.

Passaggi successivi

Altre informazioni sulle metriche personalizzate.