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

Kommentar

Vi rekommenderar att du använder Azure Az PowerShell-modulen för att interagera med Azure. Se Installera Azure PowerShell för att komma igång. Information om hur du migrerar till Az PowerShell-modulen finns i artikeln om att migrera Azure PowerShell från AzureRM till Az.

Genom att använda Azure Monitor Azure Diagnostics-tillägget för Windows (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, molntjänst eller 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 skalningsuppsättning för virtuella Windows-datorer till Azure Monitor-datalagret. Från och med Microsoft Azure Diagnostics version 1.11 kan du skriva mått direkt till Azure Monitor-måttarkivet, 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 nästan realtidsaviseringar, diagram, routning, åtkomst från REST-API:et med mera. Tidigare skrev Microsoft Azure Diagnostics-tillägget till Azure Storage men inte till Azure Monitor-datalagret.

Om du inte har använt Resource Manager-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 Resource Manager-mall och PowerShell för att distribuera en virtuell dator med hjälp av den nya Azure Monitor-datamottagaren.

Skapa en Resource Manager-mall

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

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

  • Azuredeploy.parameters.json är en parameterfil som lagrar information som 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:

  • 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.
  • Namnge resursen för vm-skalningsuppsättningen 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 i offentliga GitHub-lagringsplatser. De kommer sannolikt att testa virtuella datorer med dessa standardvärden.

Ändra azuredeploy.json

Öppna filen azuredeploy.json.

Lägg till en variabel för att lagra lagringskontoinformationen i Resource Manager-mallen. Alla loggar eller prestandaräknare som anges i diagnostikkonfigurationsfilen skrivs till både Azure Monitor-måttarkivet och det lagringskonto som du anger här:

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

Leta upp definitionen för vm-skalningsuppsättningen i avsnittet resurser 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 till 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
   ...
}

Leta reda på avsnittet virtualMachineProfile i vm-skalningsuppsättningsresursen. 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 till mallen enligt vad som visas i avsnittet VMSS-WAD-extension. Det här avsnittet är de hanterade identiteterna för Azure-resurstillägget som säkerställer att måtten som genereras godkänns av Azure Monitor. Namnfältet kan innehålla valfritt namn.

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. Lägg gärna 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. Be sure that the number and type of brackets match properly when done. 
  {
  "type": "Microsoft.Insights/autoscaleSettings",
  ...
  }

Lägg till ett dependsOn för lagringskontot för att säkerställa 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 ett 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-mallen

Kommentar

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.

Om du vill distribuera 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 Get-AzSubscriptionav .

  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 datorn som distribueras. Kör följande kommando:

     New-AzResourceGroup -Name "VMSSWADtestGrp" -Location "<Azure Region>"
    
  6. Kör följande kommandon för att distribuera den virtuella datorn:

    Kommentar

    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 slutförts bör du hitta vm-skalningsuppsättningen i Azure-portalen. Den bör generera mått till Azure Monitor.

    Kommentar

    Du kan stöta på fel runt den valda vmSkuSize. I så fall går du tillbaka till filen azuredeploy.json och uppdaterar standardvärdet för parametern vmSkuSize . 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.

    A screenshot showing the metrics menu item on the Azure Monitor menu page.

  4. Ändra aggregeringsperioden till Senaste 30 minuterna.

  5. I den nedrullningsbara resursmenyn väljer du den vm-skalningsuppsättning som du skapade.

  6. I listrutan namnområden väljer du Virtuell datorgäst.

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

    A screenshot showing the selection of namespace metric and aggregation for a metrics chart.

Sedan kan du också välja att använda dimensionerna för det här måttet för att kartlägga det för en viss virtuell dator eller rita varje virtuell dator i skalningsuppsättningen.

Nästa steg