Skicka mått för gästoperativsystem till Azure Monitor-måttarkivet med hjälp av en Azure Resource Manager-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-diagnostiktillä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-mått, inklusive 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 Resource Manager mall.

Anteckning

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

Om du inte har Resource Manager mallar tidigare kan du lära dig mer om malldistributioner och deras struktur och syntax.

Krav

Konfigurera Azure Monitor som en datamottagare

Tillägget Azure Diagnostics 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 Resource Manager-mall och PowerShell för att distribuera en virtuell dator med hjälp av den nya datamottagaren "Azure Monitor".

Skapa Resource Manager mall

I det här exemplet kan du använda en offentligt tillgänglig exempelmall. Startmallarna finns på https://github.com/Azure/azure-quickstart-templates/tree/master/quickstarts/microsoft.compute/vm-simple-windows.

  • Azuredeploy.json är en förkonfigurerad Resource Manager mall för distribution av en virtuell dator.

  • Azuredeploy.parameters.json är en parameterfil som lagrar information, till exempel vilket användarnamn och lösenord du vill ange för den virtuella datorn. Under distributionen använder Resource Manager-mallen de parametrar som anges i den här filen.

Ladda ned och spara båda filerna lokalt.

Ändra azuredeploy.parameters.json

Öppna filen azuredeploy.parameters.json

  1. 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.

  2. Skapa ett unikt dns-namn för den virtuella datorn.

Ändra azuredeploy.json

Öppna filen azuredeploy.json

Lägg till ett lagringskonto-ID i variabelavsnittet 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'))]",

Lägg till det här MSI-tillägget (Managed Service Identity) i mallen överst i resursavsnittet. 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
            }
        }
    },

Lägg till identitetskonfigurationen i VM-resursen 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 skicka 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": {
    ...

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 vi lägga till tilläggskonfigurationen i resursmatrisen för den virtuella datorn. Raden "sinks" – "AzMonSink" och motsvarande "SinksConfig" senare i avsnittet – gör det möjligt för tillägget att 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

Spara och stäng båda filerna.

Distribuera Resource Manager-mallen

Anteckning

Du måste köra Azure Diagnostics-tillägget version 1.5 eller senare och ha egenskapen autoUpgradeMinorVersion: inställd på "true" i Resource Manager-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 Resource Manager mallen använder vi Azure PowerShell.

  1. Starta PowerShell.

  2. Logga in på Azure med .Login-AzAccount

  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. Kör följande kommando för att skapa en ny resursgrupp för den virtuella dator som distribueras:

     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 mallen Resource Manager.

    Anteckning

    Om du vill uppdatera en befintlig virtuell dator lägger du helt enkelt 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 är klar bör den virtuella datorn finnas i Azure-Portal och skicka mått till Azure Monitor.

    Anteckning

    Du kan stöta på fel runt den valda vmSkuSize. Om detta 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 försöker "Standard_DS1_v2").

Diagram över dina mått

  1. Logga in på Azure Portal.

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

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

    Sidan Mått

  4. Ändra aggregeringsperioden till Senaste 30 minuterna.

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

  6. I den nedrullningsbara menyn namnområden väljer du azure.vm.windows.guest

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

Nästa steg