Skicka mått för gästoperativsystem till Azure Monitor måttarkiv med hjälp av en Azure Resource Manager mall för en VM-skalningsuppsättning i Windows

Anteckning

Den här artikeln har uppdaterats till att använda Azure Az PowerShell-modulen. Az PowerShell-modulen är den rekommenderade PowerShell-modulen för att interagera med Azure. För att komma igång med Az PowerShell kan du läsa artikeln om att installera Azure PowerShell. Information om hur du migrerar till Az PowerShell-modulen finns i artikeln om att migrera Azure PowerShell från AzureRM till Az.

Med hjälp av Azure Monitor-tillägget för Windows Azure Diagnostics (WAD)kan du samla in mått och loggar från gästoperativsystemet (gästoperativsystem) som körs som en del av en virtuell dator, en molntjänst eller ett Azure Service Fabric-kluster. Tillägget kan skicka telemetri till många olika platser som anges i den tidigare länkade artikeln.

I den här artikeln beskrivs processen för att skicka prestandamått för gästoperativsystem för en VM-skalningsuppsättning i Windows Azure Monitor datalagret. Från och med Windows Azure Diagnostics version 1.11 kan du skriva mått direkt till Azure Monitor Metrics Store, där standardplattformsmått redan samlas in. Genom att lagra dem på den här platsen kan du komma åt samma åtgärder som är tillgängliga för plattformsmått. Åtgärderna omfattar aviseringar i nära realtid, diagram, routning, åtkomst från REST API och mycket mer. Tidigare skrev Windows Azure Diagnostics-tillägget till Azure Storage men inte Azure Monitor datalagret.

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

Förutsättningar

Konfigurera Azure Monitor som en data mottagare

Tillägget Azure Diagnostics använder en funktion som kallas data mottagare för att dirigera mått och loggar till olika platser. Följande steg visar hur du använder en Resource Manager och PowerShell för att distribuera en virtuell dator med hjälp av den nya Azure Monitor-datakällan.

Skapa en Resource Manager mall

I det här exemplet kan du använda en offentligt tillgänglig exempelmall:

  • Azuredeploy.jspå är en förkonfigurerad Resource Manager för distribution av en VM-skalningsuppsättning.

  • Azuredeploy.parameters.jspå är en parameterfil som lagrar information som t.ex. vilket användarnamn och lösenord du vill ange för den virtuella datorn. Under distributionen använder Resource Manager parametrarna som angetts i den här filen.

Ladda ned och spara båda filerna lokalt.

Ändra azuredeploy.parameters.jspå

Öppna filen azuredeploy.parameters.jsfil:

  • Ange en vmSKU som du vill distribuera. Vi rekommenderar Standard_D2_v3.
  • Ange en windowsOSVersion som du vill använda för VM-skalningsuppsättningen. Vi rekommenderar 2016-Datacenter.
  • Ge den virtuella datorn namnet skalningsuppsättningsresurs som ska distribueras med hjälp av en vmssName-egenskap. Ett exempel är VMSS-WAD-TEST.
  • Ange antalet virtuella datorer som du vill köra på VM-skalningsuppsättningen med egenskapen instanceCount.
  • Ange värden för adminUsername och adminPassword för VM-skalningsuppsättningen. Dessa parametrar används för fjärråtkomst till de virtuella datorerna i skalningsuppsättningen. Undvik att kapa den virtuella datorn genom att inte använda dem i den här mallen. Robotar söker igenom Internet efter användarnamn och lösenord på offentliga GitHub-lagringsplatsen. De kommer troligen att testa virtuella datorer med dessa standardvärden.

Ändra azuredeploy.jspå

Öppna filenazuredeploy.jsfil.

Lägg till en variabel som ska innehålla lagringskontoinformationen i Resource Manager mallen. Alla loggar eller prestandaräknare som anges i konfigurationsfilen för diagnostik skrivs till både Azure Monitor och det lagringskonto som du anger här:

"variables": { 
//add this line       
"storageAccountName": "[concat('storage', uniqueString(resourceGroup().id))]", 

Leta reda på definitionen för VM-skalningsuppsättningen i resursavsnittet och lägg till identitetsavsnittet i konfigurationen. Det här tillägget säkerställer att Azure tilldelar den en systemidentitet. Det här steget säkerställer också att de virtuella datorerna i skalningsuppsättningen kan generera gästmått om sig själva för att Azure Monitor:

    { 
      "type": "Microsoft.Compute/virtualMachineScaleSets", 
      "name": "[variables('namingInfix')]", 
      "location": "[resourceGroup().location]", 
      "apiVersion": "2017-03-30", 
      //add these lines below
      "identity": { 
           "type": "systemAssigned" 
       }, 
       //end of lines to add

I resursen för VM-skalningsuppsättningen hittar du avsnittet virtualMachineProfile. Lägg till en ny profil med namnet extensionsProfile för att hantera tillägg.

I extensionProfile lägger du till ett nytt tillägg i mallen enligt vad som visas i avsnittet VMSS-WAD-extension. Det här avsnittet är tillägget hanterade identiteter för Azure-resurser som säkerställer att måtten som genereras godkänns av Azure Monitor. Namnfältet kan innehålla vilket namn som helst.

Följande kod från MSI-tillägget lägger också till diagnostiktillägget och konfigurationen som en tilläggsresurs till resursen för VM-skalningsuppsättningen. Du kan lägga till eller ta bort prestandaräknare efter behov:

          "extensionProfile": { 
            "extensions": [ 
            // BEGINNING of added code  
            // Managed identities for Azure resources   
                { 
                 "name": "VMSS-WAD-extension", 
                 "properties": { 
                       "publisher": "Microsoft.ManagedIdentity", 
                       "type": "ManagedIdentityExtensionForWindows", 
                       "typeHandlerVersion": "1.0", 
                       "autoUpgradeMinorVersion": true, 
                       "settings": { 
                             "port": 50342 
                           }, 
                       "protectedSettings": {} 
                     } 
                                
            }, 
            // add diagnostic extension. (Remove this comment after pasting.)
            { 
              "name": "[concat('VMDiagnosticsVmExt','_vmNodeType0Name')]", 
              "properties": { 
                   "type": "IaaSDiagnostics", 
                   "autoUpgradeMinorVersion": true, 
                   "protectedSettings": { 
                        "storageAccountName": "[variables('storageAccountName')]", 
                        "storageAccountKey": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', variables('storageAccountName')),'2015-05-01-preview').key1]", 
                        "storageAccountEndPoint": "https://core.windows.net/" 
                   }, 
                   "publisher": "Microsoft.Azure.Diagnostics", 
                   "settings": { 
                        "WadCfg": { 
                              "DiagnosticMonitorConfiguration": { 
                                   "overallQuotaInMB": "50000", 
                                   "PerformanceCounters": { 
                                       "scheduledTransferPeriod": "PT1M", 
                                       "sinks": "AzMonSink", 
                                       "PerformanceCounterConfiguration": [ 
                                          { 
              "counterSpecifier": "\\Memory\\% Committed Bytes In Use", 
                                              "sampleRate": "PT15S" 
           }, 
           { 
              "counterSpecifier": "\\Memory\\Available Bytes", 
              "sampleRate": "PT15S" 
           }, 
           { 
              "counterSpecifier": "\\Memory\\Committed Bytes", 
              "sampleRate": "PT15S" 
           } 
                                       ] 
                                 }, 
                                 "EtwProviders": { 
                                       "EtwEventSourceProviderConfiguration": [ 
                                           { 
                                              "provider": "Microsoft-ServiceFabric-Actors", 
                                              "scheduledTransferKeywordFilter": "1", 
                                              "scheduledTransferPeriod": "PT5M", 
                                              "DefaultEvents": { 
                                              "eventDestination": "ServiceFabricReliableActorEventTable" 
                                           } 
                                           }, 
                                           { 
                                              "provider": "Microsoft-ServiceFabric-Services", 
                                              "scheduledTransferPeriod": "PT5M", 
                                              "DefaultEvents": { 
                                                   "eventDestination": "ServiceFabricReliableServiceEventTable" 
                                              } 
                                           } 
                                     ], 
                                     "EtwManifestProviderConfiguration": [ 
                                           { 
                                              "provider": "cbd93bc2-71e5-4566-b3a7-595d8eeca6e8", 
                                              "scheduledTransferLogLevelFilter": "Information", 
                                              "scheduledTransferKeywordFilter": "4611686018427387904", 
                                              "scheduledTransferPeriod": "PT5M", 
                                              "DefaultEvents": { 
                                                   "eventDestination": "ServiceFabricSystemEventTable" 
                                              } 
                                          } 
                                     ] 
                               } 
                               }, 
                               "SinksConfig": { 
                                     "Sink": [ 
                                          { 
                                              "name": "AzMonSink", 
                                              "AzureMonitor": {} 
                                          } 
                                      ] 
                               } 
                         }, 
                         "StorageAccount": "[variables('storageAccountName')]" 
                         }, 
                        "typeHandlerVersion": "1.11" 
                  } 
           } 
            ] 
          }
          }
      }
    },
    //end of added code plus a few brackets. Be sure that the number and type of brackets match properly when done. 
    {
      "type": "Microsoft.Insights/autoscaleSettings",
...

Lägg till en dependsOn för lagringskontot för att se till att det skapas i rätt ordning:

"dependsOn": [ 
"[concat('Microsoft.Network/loadBalancers/', variables('loadBalancerName'))]", 
"[concat('Microsoft.Network/virtualNetworks/', variables('virtualNetworkName'))]" 
//add this line below
"[concat('Microsoft.Storage/storageAccounts/', variables('storageAccountName'))]" 

Skapa ett lagringskonto om det inte redan har skapats i mallen:

"resources": [
// add this code    
{
    "type": "Microsoft.Storage/storageAccounts",
    "name": "[variables('storageAccountName')]",
    "apiVersion": "2015-05-01-preview",
    "location": "[resourceGroup().location]",
    "properties": {
    "accountType": "Standard_LRS"
    }
},
// end added code
{ 
    "type": "Microsoft.Network/virtualNetworks",
    "name": "[variables('virtualNetworkName')]",

Spara och stäng båda filerna.

Distribuera Resource Manager mall

Anteckning

Du måste köra Azure Diagnostics version 1.5 eller senare och ha egenskapen autoUpgradeMinorVersion: inställd på true i din Resource Manager mall. 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 mallen igen.

Om du vill Resource Manager mallen använder du Azure PowerShell:

  1. Starta PowerShell.

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

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

  4. Ange den prenumeration som du ska skapa eller uppdatera den virtuella datorn:

    Select-AzSubscription -SubscriptionName "<Name of the subscription>" 
    
  5. Skapa en ny resursgrupp för den virtuella dator som distribueras. Kör följande kommando:

     New-AzResourceGroup -Name "VMSSWADtestGrp" -Location "<Azure Region>" 
    

    Anteckning

    Kom ihåg att använda en Azure-region som är aktiverad för anpassade mått. Kom ihåg att använda en Azure-region som är aktiverad för anpassade mått.

  6. Kör följande kommandon för att distribuera den virtuella datorn:

    Anteckning

    Om du vill uppdatera en befintlig skalningsuppsättning lägger du till -Mode Incremental i slutet av kommandot.

    New-AzResourceGroupDeployment -Name "VMSSWADTest" -ResourceGroupName "VMSSWADtestGrp" -TemplateFile "<File path of your azuredeploy.JSON file>" -TemplateParameterFile "<File path of your azuredeploy.parameters.JSON file>"  
    
  7. När distributionen har lyckats bör du hitta VM-skalningsuppsättningen i Azure Portal. Den bör generera mått till Azure Monitor.

    Anteckning

    Du kan få fel runt den valda vmSkuSize. I så fall går du tillbaka till azuredeploy.jsfil och uppdaterar standardvärdet för vmSkuSize-parametern. Vi rekommenderar att du provar Standard_DS1_v2.

Diagram över dina mått

  1. Logga in på Azure-portalen.

  2. I den vänstra menyn väljer du Övervaka.

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

    Övervaka – sidan Mått

  4. Ändra aggregeringsperioden till Senaste 30 minuterna.

  5. I den nedrullningsna resursmenyn väljer du vm-skalningsuppsättningen som du skapade.

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

  7. I den nedrullningsna menyn Mått väljer du % Minnesdefördeerade byte i Använd.

Du kan sedan också välja att använda måttens dimensioner för att skapa diagram för en viss virtuell dator eller rita varje virtuell dator i skalningsuppsättningen.

Nästa steg