Wysyłanie metryk systemu operacyjnego gościa do bazy danych metryk usługi Azure Monitor dla maszyny wirtualnej z systemem Windows (klasycznej)

Uwaga

Do interakcji z platformą Azure zalecamy używanie modułu Azure Az w programie PowerShell. Zobacz Instalowanie programu Azure PowerShell, aby rozpocząć. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.

Rozszerzenie diagnostyki usługi Azure Monitor (znane jako "WAD" lub "Diagnostyka") umożliwia zbieranie metryk i dzienników z systemu operacyjnego gościa działającego jako część maszyny wirtualnej, usługi w chmurze lub klastra usługi Service Fabric. Rozszerzenie może wysyłać dane telemetryczne do wielu różnych lokalizacji.

W tym artykule opisano proces wysyłania metryk wydajności systemu operacyjnego gościa dla maszyny wirtualnej z systemem Windows (klasycznej) do bazy danych metryk usługi Azure Monitor. Począwszy od diagnostyki w wersji 1.11, można zapisywać metryki bezpośrednio w magazynie metryk usługi Azure Monitor, gdzie już zbierane są standardowe metryki platformy.

Przechowywanie ich w tej lokalizacji umożliwia dostęp do tych samych akcji, co w przypadku metryk platformy. Akcje obejmują alerty niemal w czasie rzeczywistym, wykresy, routing, dostęp z interfejsu API REST i nie tylko. W przeszłości rozszerzenie Diagnostyka napisało do usługi Azure Storage, ale nie do magazynu danych usługi Azure Monitor.

Proces opisany w tym artykule działa tylko na klasycznych maszynach wirtualnych z systemem operacyjnym Windows.

Wymagania wstępne

Tworzenie klasycznej maszyny wirtualnej i konta magazynu

  1. Utwórz klasyczną maszynę wirtualną przy użyciu witryny Azure Portal. Create Classic VM

  2. Podczas tworzenia tej maszyny wirtualnej wybierz opcję utworzenia nowego klasycznego konta magazynu. To konto magazynu jest używane w kolejnych krokach.

  3. W witrynie Azure Portal przejdź do okienka zasobów Konta magazynu. Wybierz pozycję Klucze i zanotuj nazwę konta magazynu i klucz konta magazynu. Te informacje są potrzebne w kolejnych krokach. Storage access keys

Tworzenie jednostki usługi

Utwórz jednostkę usługi w dzierżawie firmy Microsoft Entra, korzystając z instrukcji w temacie Tworzenie jednostki usługi. Podczas wykonywania tego procesu zwróć uwagę na następujące kwestie:

  • Utwórz nowy klucz tajny klienta dla tej aplikacji.
  • Zapisz klucz i identyfikator klienta do użycia w kolejnych krokach.

Nadaj tej aplikacji uprawnienia "Wydawca metryk monitorowania" do zasobu, dla którego chcesz emitować metryki. Możesz użyć grupy zasobów lub całej subskrypcji.

Uwaga

Rozszerzenie Diagnostyka używa jednostki usługi do uwierzytelniania w usłudze Azure Monitor i emitowania metryk dla klasycznej maszyny wirtualnej.

Konfiguracja rozszerzenia Diagnostyka autora

  1. Przygotuj plik konfiguracji rozszerzenia diagnostyki. Ten plik określa, które dzienniki i liczniki wydajności mają być zbierane przez rozszerzenie diagnostyki dla klasycznej maszyny wirtualnej. Oto przykład:

    <?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. W sekcji "SinksConfig" pliku diagnostycznego zdefiniuj nowy ujście usługi Azure Monitor w następujący sposób:

    <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. W sekcji pliku konfiguracji, w której jest wyświetlana lista liczników wydajności do zebrania, należy kierować liczniki wydajności do ujścia usługi Azure Monitor "AzMonSink".

    <PerformanceCounters scheduledTransferPeriod="PT1M" sinks="AzMonSink">
        <PerformanceCounterConfiguration counterSpecifier="\Processor(_Total)\% Processor Time" sampleRate="PT15S" />
    ...
    </PerformanceCounters>
    
  4. W konfiguracji prywatnej zdefiniuj konto usługi Azure Monitor. Następnie dodaj informacje o jednostce usługi, które mają być używane do emitowania metryk.

    <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. Zapisz ten plik lokalnie.

Wdrażanie rozszerzenia diagnostyki w usłudze w chmurze

  1. Uruchom program PowerShell i zaloguj się.

    Login-AzAccount
    
  2. Zacznij od ustawienia kontekstu klasycznej maszyny wirtualnej.

    $VM = Get-AzureVM -ServiceName <VM’s Service_Name> -Name <VM Name>
    
  3. Ustaw kontekst klasycznego konta magazynu utworzonego za pomocą maszyny wirtualnej.

    $StorageContext = New-AzStorageContext -StorageAccountName <name of your storage account from earlier steps> -storageaccountkey "<storage account key from earlier steps>"
    
  4. Ustaw ścieżkę pliku diagnostyki na zmienną przy użyciu następującego polecenia:

    $diagconfig = “<path of the diagnostics configuration file with the Azure Monitor sink configured>”
    
  5. Przygotuj aktualizację klasycznej maszyny wirtualnej przy użyciu pliku diagnostycznego, który ma skonfigurowany ujście usługi Azure Monitor.

    $VM_Update = Set-AzureVMDiagnosticsExtension -DiagnosticsConfigurationPath $diagconfig -VM $VM -StorageContext $Storage_Context
    
  6. Wdróż aktualizację na maszynie wirtualnej, uruchamiając następujące polecenie:

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

Uwaga

Nadal wymagane jest podanie konta magazynu w ramach instalacji rozszerzenia Diagnostyka. Wszystkie dzienniki lub liczniki wydajności określone w pliku konfiguracji diagnostyki zostaną zapisane na określonym koncie magazynu.

Kreślenie metryk w witrynie Azure Portal

  1. Przejdź do portalu Azure Portal.

  2. W menu po lewej stronie wybierz pozycję Monitor.

  3. W okienku Monitorowanie po lewej stronie wybierz pozycję Metryki.

    Navigate metrics

  4. Z menu rozwijanego zasobów wybierz klasyczną maszynę wirtualną.

  5. W menu rozwijanym Przestrzenie nazw wybierz pozycję azure.vm.windows.guest.

  6. W menu rozwijanym metryki wybierz pozycję Pamięć\Zatwierdzone bajty w obszarze Użyj. Plot metrics

Następne kroki

  • Dowiedz się więcej o metrykach niestandardowych.