Dela via


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

Azure Monitor Agent (AMA) samlar in övervakningsdata från gästoperativsystemet i Azure och virtuella hybriddatorer och vm-skalningsuppsättningar och levererar dem till Azure Monitor för användning av funktioner, insikter och andra tjänster som Microsoft Sentinel och Microsoft Defender för molnet.

Vi rekommenderar att du använder Azure Monitor-agenten för att samla in loggar och mått från VM-skalningsuppsättningar. Mer information finns i Översikt över Azure Monitor Agent.

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.

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.

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 Portal. 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. Välj Bildskärm i menyn till vänster.

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

    En skärmbild som visar menyalternativet mått på azure monitor-menysidan.

  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.

    En skärmbild som visar valet av namnområdesmått och aggregering för ett måttdiagram.

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