Skicka mått för gästoperativsystem till Azure Monitor-måttarkivet med hjälp av en ARM-mall för en virtuell Windows-dator

Prestandadata från gästoperativsystemet för virtuella Azure-datorer samlas inte in automatiskt som andra plattformsmått. Installera Azure Monitor Diagnostics-tillägget för att samla in mått för gästoperativsystem i måttdatabasen så att det kan användas med alla funktioner i Azure Monitor Metrics. Dessa funktioner omfattar nästan realtidsaviseringar, diagram, routning och åtkomst från ett REST-API. Den här artikeln beskriver processen för att skicka prestandamått för gästoperativsystem för en virtuell Windows-dator till måttdatabasen med hjälp av en Azure Resource Manager-mall (ARM-mall).

Kommentar

Mer information om hur du konfigurerar diagnostiktillägget för att samla in mått för gästoperativsystem med hjälp av Azure-portalen finns i Installera och konfigurera WAD-tillägget (Windows Azure Diagnostics).

Om du inte har använt ARM-mallar tidigare kan du lära dig mer om malldistributioner och deras struktur och syntax.

Förutsättningar

Konfigurera Azure Monitor som en datamottagare

Azure Diagnostics-tillägget använder en funktion som kallas datamottagare för att dirigera mått och loggar till olika platser. Följande steg visar hur du använder en ARM-mall och PowerShell för att distribuera en virtuell dator med hjälp av den nya Azure Monitor-datamottagaren.

ARM-mall

I det här exemplet kan du använda en offentligt tillgänglig exempelmall. Startmallarna finns på GitHub.

  • Azuredeploy.json: En förkonfigurerad ARM-mall för distribution av en virtuell dator.
  • Azuredeploy.parameters.json: En parameterfil som lagrar information som vilket användarnamn och lösenord du vill ange för den virtuella datorn. Under distributionen använder ARM-mallen de parametrar som anges i den här filen.

Ladda ned och spara båda filerna lokalt.

Ändra azuredeploy.parameters.json

  1. Öppna filen azuredeploy.parameters.json.

  2. Ange värden för adminUsername och adminPassword för den virtuella datorn. Dessa parametrar används för fjärråtkomst till den virtuella datorn. Undvik att kapa den virtuella datorn genom att inte använda värdena i den här mallen. Robotar söker igenom Internet efter användarnamn och lösenord i offentliga GitHub-lagringsplatser. De kommer sannolikt att testa virtuella datorer med dessa standardvärden.

  3. Skapa en unik dnsname för den virtuella datorn.

Ändra azuredeploy.json

  1. Öppna filen azuredeploy.json.

  2. Lägg till ett lagringskonto-ID i variables avsnittet i mallen efter posten för storageAccountName.

    // Find these lines.
    "variables": {
        "storageAccountName": "[concat(uniquestring(resourceGroup().id), 'sawinvm')]",
    
    // Add this line directly below.
        "accountid": "[resourceId('Microsoft.Storage/storageAccounts', variables('storageAccountName'))]",
    
  3. Lägg till det här MSI-tillägget (Managed Service Identity) i mallen överst i resources avsnittet. Tillägget säkerställer att Azure Monitor accepterar de mått som genereras.

    //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. Lägg till konfigurationen identity i den virtuella datorresursen för att säkerställa att Azure tilldelar en systemidentitet till MSI-tillägget. Det här steget säkerställer att den virtuella datorn kan generera gästmått om sig själv till 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": {
        ...
    
  5. Lägg till följande konfiguration för att aktivera diagnostiktillägget på en virtuell Windows-dator. För en enkel Resource Manager-baserad virtuell dator kan du lägga till tilläggskonfigurationen i resursmatrisen för den virtuella datorn. Med raden "sinks": "AzMonSink"och motsvarande "SinksConfig" senare i avsnittet kan tillägget generera mått direkt till Azure Monitor. Lägg gärna till eller ta bort prestandaräknare efter behov.

            "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. Spara och stäng båda filerna.

Distribuera ARM-mallen

Kommentar

Du måste köra Azure Diagnostics-tillägget version 1.5 eller senare och ha autoUpgradeMinorVersion: egenskapen inställd true på i ARM-mallen. Azure läser sedan in rätt tillägg när den virtuella datorn startas. Om du inte har de här inställningarna i mallen ändrar du dem och distribuerar om mallen.

För att distribuera ARM-mallen använder vi Azure PowerShell.

  1. Starta PowerShell.

  2. Logga in på Azure med hjälp Login-AzAccountav .

  3. Hämta din lista över prenumerationer med hjälp Get-AzSubscriptionav .

  4. Ange den prenumeration som du använder för att skapa/uppdatera den virtuella datorn i:

    Select-AzSubscription -SubscriptionName "<Name of the subscription>"
    
  5. Om du vill skapa en ny resursgrupp för den virtuella dator som distribueras kör du följande kommando:

     New-AzResourceGroup -Name "<Name of Resource Group>" -Location "<Azure Region>"
    
  6. Kör följande kommandon för att distribuera den virtuella datorn med hjälp av ARM-mallen.

    Kommentar

    Om du vill uppdatera en befintlig virtuell dator lägger du till -Mode Incremental i slutet av följande kommando.

    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. När distributionen har slutförts bör den virtuella datorn finnas i Azure-portalen och generera mått till Azure Monitor.

    Kommentar

    Du kan stöta på fel runt den valda vmSkuSize. Om det här felet inträffar går du tillbaka till filen azuredeploy.json och uppdaterar standardvärdet för parametern vmSkuSize . I det här fallet rekommenderar vi att du provar "Standard_DS1_v2").

Diagram över dina mått

  1. Logga in på Azure-portalen.

  2. Välj Övervaka på den vänstra menyn.

  3. På sidan Övervaka väljer du Mått.

    Screenshot that shows the Metrics page.

  4. Ändra aggregeringsperioden till Senaste 30 minuterna.

  5. I den nedrullningsbara resursmenyn väljer du den virtuella dator som du skapade. Om du inte har ändrat namnet i mallen bör det vara SimpleWinVM2.

  6. I listrutan namnområden väljer du azure.vm.windows.guestmetrics.

  7. I listrutan mått väljer du Minne%Bekräftade byte i Använd.

Nästa steg

Läs mer om anpassade mått.