Senden von Metriken des Gastbetriebssystems an die Azure Monitor-Metrikendatenbank für einen virtuellen Windows-Computer (klassisch)

Hinweis

Für die Interaktion mit Azure wird das PowerShell-Modul „Azure Az“ empfohlen. Informationen zu den ersten Schritten finden Sie unter Installieren des Azure Az PowerShell-Moduls. Informationen zum Migrieren zum Az PowerShell-Modul finden Sie unter Migrieren von Azure PowerShell von AzureRM zum Az-Modul.

Die Diagnoseerweiterung von Azure Monitor (auch „WAD“ oder „Diagnose“ genannt) ermöglicht es Ihnen, Metriken und Protokolle vom Gastbetriebssystem zu erfassen, das als Teil eines virtuellen Computers, eines Clouddiensts oder eines Service Fabric-Clusters ausgeführt wird. Die Erweiterung kann Telemetriedaten an viele verschiedene Standorte senden.

In diesem Artikel erfahren Sie, wie Sie Leistungsmetriken des Gastbetriebssystems für einen virtuellen Windows-Computer (klassisch) an die Azure Monitor-Metrikendatenbank senden. Ab Version 1.11 der Diagnoseerweiterung können Sie Metriken direkt in den Azure Monitor-Metrikspeicher schreiben, in dem bereits Metriken der Standardplattformen gesammelt werden.

Durch die Speicherung an diesem Ort stehen Ihnen die gleichen Aktionen zur Verfügung wie für Plattformmetriken. Dazu zählen unter anderem zeitnahe Benachrichtigungen, Diagrammerstellung, Routing und Zugriff über eine REST-API. In der Vergangenheit hat die Diagnoseerweiterung in Azure Storage geschrieben, aber nicht in den Azure Monitor-Datenspeicher.

Der in diesem Artikel beschriebene Prozess funktioniert nur mit klassischen virtuellen Computern unter dem Windows-Betriebssystem.

Voraussetzungen

Erstellen eines klassischen virtuellen Computers und eines Speicherkontos

  1. Erstellen Sie einen klassischen virtuellen Computer über das Azure-Portal. Erstellen eines klassischen virtuellen Computers

  2. Wählen Sie beim Erstellen dieses virtuellen Computers aus, dass Sie ein neues klassisches Speicherkonto erstellen möchten. Wir verwenden dieses Speicherkonto in späteren Schritten.

  3. Navigieren Sie im Azure-Portal zum Ressourcenblatt Speicherkonten. Wählen Sie Schlüssel aus, und notieren Sie sich den Speicherkontonamen und den Speicherkontoschlüssel. Sie benötigen diese Informationen in den späteren Schritten. Speicherzugriffsschlüssel

Erstellen eines Dienstprinzipals

Erstellen Sie anhand der Anleitung unter Erstellen eines Dienstprinzipals einen Dienstprinzipal in Ihrem Azure Active Directory-Mandanten. Beachten Sie Folgendes, während Sie diesen Prozess durchlaufen:

  • Erstellen Sie einen neuen geheimen Clientschlüssel für diese App.
  • Speichern Sie den Schlüssel und die Client-ID für die Verwendung in späteren Schritten.

Erteilen Sie dieser App für die Ressource, für die Sie Metriken ausgeben möchten, Berechtigungen vom Typ „Überwachungsmetriken veröffentlichen“. Sie können eine Ressourcengruppe oder ein vollständiges Abonnement verwenden.

Hinweis

Die Diagnoseerweiterung verwendet den Dienstprinzipal, um sich gegenüber Azure Monitor zu authentifizieren und Metriken für Ihren klassischen virtuellen Computer auszugeben.

Erstellen der Konfiguration der Diagnoseerweiterung

  1. Bereiten Sie Ihre Konfigurationsdatei für die Diagnoseerweiterung vor. Diese Datei bestimmt, welche Protokolle und Leistungsindikatoren die Diagnoseerweiterung für Ihren klassischen virtuellen Computer erfassen soll. Dies ist ein Beispiel:

    <?xml version="1.0" encoding="utf-8"?>
    <DiagnosticsConfiguration xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration">
    <PublicConfig xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration">
        <WadCfg>
        <DiagnosticMonitorConfiguration overallQuotaInMB="4096" sinks="applicationInsights.errors">
            <DiagnosticInfrastructureLogs scheduledTransferLogLevelFilter="Error" />
            <Directories scheduledTransferPeriod="PT1M">
                <IISLogs containerName="wad-iis-logfiles" />
                <FailedRequestLogs containerName="wad-failedrequestlogs" />
            </Directories>
            <PerformanceCounters scheduledTransferPeriod="PT1M">
                <PerformanceCounterConfiguration counterSpecifier="\Processor(*)\% Processor Time" sampleRate="PT15S" />
                <PerformanceCounterConfiguration counterSpecifier="\Memory\Available Bytes" sampleRate="PT15S" />
                <PerformanceCounterConfiguration counterSpecifier="\Memory\Committed Bytes" sampleRate="PT15S" />
                <PerformanceCounterConfiguration counterSpecifier="\Memory\% Committed Bytes" sampleRate="PT15S" />
                <PerformanceCounterConfiguration counterSpecifier="\LogicalDisk(*)\Disk Read Bytes/sec" sampleRate="PT15S" />
            </PerformanceCounters>
            <WindowsEventLog scheduledTransferPeriod="PT1M">
                <DataSource name="Application!*[System[(Level=1 or Level=2 or Level=3)]]" />
                <DataSource name="Windows Azure!*[System[(Level=1 or Level=2 or Level=3 or Level=4)]]" />
            </WindowsEventLog>
            <CrashDumps>
                <CrashDumpConfiguration processName="WaIISHost.exe" />
                <CrashDumpConfiguration processName="WaWorkerHost.exe" />
                <CrashDumpConfiguration processName="w3wp.exe" />
            </CrashDumps>
            <Logs scheduledTransferPeriod="PT1M" scheduledTransferLogLevelFilter="Error" />
            <Metrics resourceId="/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/MyResourceGroup/providers/Microsoft.ClassicCompute/virtualMachines/MyClassicVM">
                <MetricAggregation scheduledTransferPeriod="PT1M" />
                <MetricAggregation scheduledTransferPeriod="PT1H" />
            </Metrics>
        </DiagnosticMonitorConfiguration>
        <SinksConfig>
        </SinksConfig>
        </WadCfg>
        <StorageAccount />
    </PublicConfig>
    <PrivateConfig xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration">
        <StorageAccount name="" endpoint="" />
    </PrivateConfig>
    <IsEnabled>true</IsEnabled>
    </DiagnosticsConfiguration>
    
  2. Definieren Sie im Abschnitt „SinksConfig“ Ihrer Diagnosedatei wie folgt eine neue Azure Monitor-Senke:

    <SinksConfig>
        <Sink name="AzMonSink">
            <AzureMonitor>
                <ResourceId>Provide the resource ID of your classic VM </ResourceId>
                <Region>The region your VM is deployed in</Region>
            </AzureMonitor>
        </Sink>
    </SinksConfig>
    
  3. Leiten Sie in dem Abschnitt Ihrer Konfigurationsdatei, in dem Sie die zu erfassenden Leistungsindikatoren auflisten, die Leistungsindikatoren an die Azure Monitor-Senke „AzMonSink“ weiter.

    <PerformanceCounters scheduledTransferPeriod="PT1M" sinks="AzMonSink">
        <PerformanceCounterConfiguration counterSpecifier="\Processor(_Total)\% Processor Time" sampleRate="PT15S" />
    ...
    </PerformanceCounters>
    
  4. Definieren Sie in der privaten Konfiguration das Azure Monitor-Konto. Fügen Sie anschließend die Dienstprinzipalinformationen hinzu, die für die Metrikausgabe verwendet werden sollen.

    <PrivateConfig xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration">
    <StorageAccount name="" endpoint="" />
        <AzureMonitorAccount>
            <ServicePrincipalMeta>
                <PrincipalId>clientId for your service principal</PrincipalId>
                <Secret>client secret of your service principal</Secret>
            </ServicePrincipalMeta>
        </AzureMonitorAccount>
    </PrivateConfig>
    
  5. Speichern Sie diese Datei lokal.

Bereitstellen der Diagnoseerweiterung für Ihren Clouddienst

  1. Starten Sie PowerShell, und melden Sie sich an.

    Login-AzAccount
    
  2. Legen Sie zunächst den Kontext für Ihren klassischen virtuellen Computer fest.

    $VM = Get-AzureVM -ServiceName <VM’s Service_Name> -Name <VM Name>
    
  3. Legen Sie den Kontext des klassischen Speicherkontos fest, das mit dem virtuellen Computer erstellt wurde.

    $StorageContext = New-AzStorageContext -StorageAccountName <name of your storage account from earlier steps> -storageaccountkey "<storage account key from earlier steps>"
    
  4. Legen Sie mit dem folgenden Befehl den Diagnosedateipfad auf eine Variable fest:

    $diagconfig = “<path of the diagnostics configuration file with the Azure Monitor sink configured>”
    
  5. Bereiten Sie das Update für Ihren klassischen virtuellen Computer mit der Diagnosedatei vor, die die konfigurierte Azure Monitor-Senke enthält.

    $VM_Update = Set-AzureVMDiagnosticsExtension -DiagnosticsConfigurationPath $diagconfig -VM $VM -StorageContext $Storage_Context
    
  6. Stellen Sie das Update mithilfe des folgenden Befehls auf Ihrem virtuellen Computer bereit:

    Update-AzureVM -ServiceName "ClassicVMWAD7216" -Name "ClassicVMWAD" -VM $VM_Update.VM
    

Hinweis

Im Rahmen der Installation der Diagnoseerweiterung muss weiterhin ein Speicherkonto angegeben werden. Alle Protokolle und/oder Leistungsindikatoren, die in der Diagnosekonfigurationsdatei angegeben sind, werden in das angegebene Speicherkonto geschrieben.

Darstellen der Metriken im Azure-Portal

  1. Öffnen Sie das Azure-Portal.

  2. Wählen Sie im Menü auf der linken Seite Monitor aus.

  3. Wählen Sie auf dem Blatt Monitor die Option Metriken aus.

    Navigieren zu „Metriken“

  4. Wählen Sie im Dropdownmenü mit den Ressourcen Ihren klassischen virtuellen Computer aus.

  5. Wählen Sie im Dropdownmenü mit den Namespaces azure.vm.windows.guest aus.

  6. Wählen Sie im Dropdownmenü mit den Metriken Arbeitsspeicher\Verwendete zugesicherte Bytes aus. Darstellen von Metriken

Nächste Schritte