Metrische gegevens van gastbesturingssystemen verzenden naar het metrische gegevensarchief van Azure Monitor met behulp van een ARM-sjabloon voor een Windows-VM

Prestatiegegevens van het gastbesturingssystemen van virtuele Azure-machines (VM's) worden niet automatisch verzameld, net als andere metrische platformgegevens. Installeer de Azure Monitor Diagnostics-extensie om metrische gegevens van gastbesturingssystemen te verzamelen in de database met metrische gegevens, zodat deze kan worden gebruikt met alle functies van Metrische gegevens van Azure Monitor. Deze functies omvatten bijna realtime waarschuwingen, grafieken, routering en toegang vanuit een REST API. In dit artikel wordt het proces beschreven voor het verzenden van metrische gegevens voor gastbesturingssystemen voor een Windows-VM naar de metrische database met behulp van een Azure Resource Manager-sjabloon (ARM-sjabloon).

Notitie

Zie De WAD-extensie (Windows Azure Diagnostics) installeren en configureren voor meer informatie over het configureren van de diagnostische extensie voor het verzamelen van metrische gegevens van gastbesturingssystemen met behulp van Azure Portal.

Als u geen toegang hebt tot ARM-sjablonen, leert u meer over sjabloonimplementaties en de bijbehorende structuur en syntaxis.

Vereisten

Azure Monitor instellen als een gegevenssink

De Azure Diagnostics-extensie maakt gebruik van een functie genaamd gegevenssinks om metrische gegevens en logboeken naar verschillende locaties te routeren. In de volgende stappen ziet u hoe u een ARM-sjabloon en PowerShell gebruikt om een virtuele machine te implementeren met behulp van de nieuwe Azure Monitor-gegevenssink.

ARM-sjabloon

In dit voorbeeld kunt u een openbaar beschikbare voorbeeldsjabloon gebruiken. De beginsjablonen bevinden zich op GitHub.

  • Azuredeploy.json: een vooraf geconfigureerde ARM-sjabloon voor de implementatie van een VIRTUELE machine.
  • Azuredeploy.parameters.json: een parameterbestand waarin informatie wordt opgeslagen, zoals de gebruikersnaam en het wachtwoord die u wilt instellen voor uw virtuele machine. Tijdens de implementatie gebruikt de ARM-sjabloon de parameters die in dit bestand zijn ingesteld.

Download en sla beide bestanden lokaal op.

azuredeploy.parameters.json wijzigen

  1. Open het bestand azuredeploy.parameters.json .

  2. Voer waarden in voor adminUsername en adminPassword voor de VIRTUELE machine. Deze parameters worden gebruikt voor externe toegang tot de VIRTUELE machine. Gebruik de waarden in deze sjabloon niet om uw VIRTUELE machine te laten kapen. Bots scannen internet op gebruikersnamen en wachtwoorden in openbare GitHub-opslagplaatsen. Ze testen waarschijnlijk VM's met deze standaardwaarden.

  3. Maak een unieke dnsname voor de virtuele machine.

Azuredeploy.json wijzigen

  1. Open het bestand azuredeploy.json .

  2. Voeg een opslagaccount-id toe aan de variables sectie van de sjabloon na de vermelding voor storageAccountName.

    // Find these lines.
    "variables": {
        "storageAccountName": "[concat(uniquestring(resourceGroup().id), 'sawinvm')]",
    
    // Add this line directly below.
        "accountid": "[resourceId('Microsoft.Storage/storageAccounts', variables('storageAccountName'))]",
    
  3. Voeg deze MSI-extensie (Managed Service Identity) toe aan de sjabloon bovenaan de resources sectie. De extensie zorgt ervoor dat Azure Monitor de metrische gegevens accepteert die worden verzonden.

    //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. Voeg de identity configuratie toe aan de VM-resource om ervoor te zorgen dat Azure een systeemidentiteit toewijst aan de MSI-extensie. Deze stap zorgt ervoor dat de virtuele machine metrische gastgegevens over zichzelf kan verzenden naar 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. Voeg de volgende configuratie toe om de diagnostische extensie in te schakelen op een Windows-VM. Voor een eenvoudige resourcebeheer-VM kunt u de extensieconfiguratie toevoegen aan de resourcematrix voor de VIRTUELE machine. Met de regel "sinks": "AzMonSink"en de bijbehorende "SinksConfig" latere sectie kunt u de extensie inschakelen om metrische gegevens rechtstreeks naar Azure Monitor te verzenden. U kunt desgewenst prestatiemeteritems toevoegen of verwijderen.

            "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. Sla beide bestanden op en sluit deze.

De ARM-sjabloon implementeren

Notitie

U moet azure Diagnostics-extensie versie 1.5 of hoger uitvoeren en de autoUpgradeMinorVersion: eigenschap hebben ingesteld true in uw ARM-sjabloon. Azure laadt vervolgens de juiste extensie wanneer de VIRTUELE machine wordt gestart. Als u deze instellingen niet in uw sjabloon hebt, wijzigt u deze en implementeert u de sjabloon opnieuw.

Voor het implementeren van de ARM-sjabloon gebruiken we Azure PowerShell.

  1. Start PowerShell.

  2. Meld u aan bij Azure met behulp van Login-AzAccount.

  3. Haal uw lijst met abonnementen op met behulp van Get-AzSubscription.

  4. Stel het abonnement in dat u gebruikt om de virtuele machine te maken/bij te werken in:

    Select-AzSubscription -SubscriptionName "<Name of the subscription>"
    
  5. Voer de volgende opdracht uit om een nieuwe resourcegroep te maken voor de VM die wordt geïmplementeerd:

     New-AzResourceGroup -Name "<Name of Resource Group>" -Location "<Azure Region>"
    

    Notitie

    Vergeet niet om een Azure-regio te gebruiken die is ingeschakeld voor aangepaste metrische gegevens.

  6. Voer de volgende opdrachten uit om de VIRTUELE machine te implementeren met behulp van de ARM-sjabloon.

    Notitie

    Als u een bestaande VM wilt bijwerken, voegt u incrementeel -Mode toe aan het einde van de volgende opdracht.

    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. Nadat de implementatie is voltooid, moet de virtuele machine zich in Azure Portal bevindt en metrische gegevens verzenden naar Azure Monitor.

    Notitie

    Er kunnen fouten optreden rond de geselecteerde vmSkuSize. Als deze fout optreedt, gaat u terug naar het bestand azuredeploy.json en werkt u de standaardwaarde van de vmSkuSize parameter bij. In dit geval raden we u aan om het te proberen "Standard_DS1_v2").

Uw metrische gegevens in kaart brengen

  1. Meld u aan bij de Azure-portal.

  2. Selecteer Controleren in het linkermenu.

  3. Selecteer metrische gegevens op de pagina Monitor.

    Screenshot that shows the Metrics page.

  4. Wijzig de aggregatieperiode in Afgelopen 30 minuten.

  5. Selecteer in het vervolgkeuzemenu van de resource de VM die u hebt gemaakt. Als u de naam in de sjabloon niet hebt gewijzigd, moet dit SimpleWinVM2 zijn.

  6. Selecteer in de vervolgkeuzelijst naamruimten azure.vm.windows.guestmetrics.

  7. Selecteer in de vervolgkeuzelijst met metrische gegevens geheugen%vastgelegde bytes in gebruik.

Volgende stappen

Meer informatie over aangepaste metrische gegevens.