Inviare le metriche del sistema operativo guest al database delle metriche di Monitoraggio di Azure per una macchina virtuale Windows (versione classica)

Nota

È consigliabile usare il modulo Azure Az PowerShell per interagire con Azure. Per iniziare, vedere Installare Azure PowerShell. Per informazioni su come eseguire la migrazione al modulo AZ PowerShell, vedere Eseguire la migrazione di Azure PowerShell da AzureRM ad Az.

L'estensione Diagnostica (conosciuta come "WAD" o "Diagnostica") di Monitoraggio di Azure consente di raccogliere le metriche e i log dal sistema operativo guest eseguito come parte di un cluster di macchine virtuali, di un servizio cloud o di Service Fabric. L'estensione può inviare dati di telemetria a molte posizioni diverse.

Questo articolo descrive il processo di invio delle metriche sulle prestazioni del sistema operativo guest di una macchina virtuale Windows (versione classica) al database delle metriche di Monitoraggio di Azure. A partire dalla versione 1.11 di Diagnostica è possibile scrivere le metriche direttamente nell'archivio delle metriche di Monitoraggio di Azure in cui sono già state raccolte le metriche standard della piattaforma.

L'archiviazione in questo percorso consente di accedere alle stesse azioni eseguite per le metriche della piattaforma. Le azioni includono quasi in tempo reale gli avvisi, i grafici, il routing, l'accesso dall'API REST e altro ancora. Le versioni precedenti dell'estensione Diagnostica eseguono operazioni di scrittura in Archiviazione di Azure, ma non nell'archivio dati di Monitoraggio di Azure.

Il processo illustrato in questo articolo funziona solo sulle macchine virtuali classiche con il sistema operativo Windows.

Prerequisiti

Creare una macchina virtuale classica e un account di archiviazione

  1. Creare una macchina virtuale classica usando il portale di Azure. Creare una macchina virtuale classica

  2. Quando si crea questa macchina virtuale, scegliere l’opzione di creare un nuovo account di archiviazione classico. Questo account di archiviazione verrà usato nei passaggi successivi.

  3. Nel portale di Azure, passare al riquadro della risorsa Account di archiviazione. Scegliere Chiavi e annotare il nome dell'account di archiviazione e della chiave dell'account di archiviazione. Queste informazioni sono necessarie nei passaggi successivi. Chiavi di accesso alle risorse di archiviazione

Creare un'entità servizio

Creare un'entità servizio nel tenant di Microsoft Entra seguendo le istruzioni riportate in Creare un'entità servizio. Tenere presente quanto segue durante questo processo:

  • Creare un nuovo segreto client per l'app.
  • Salvare la chiave e l'ID client, in quanto saranno necessari nei passaggi successivi.

Assegnare all'app le autorizzazioni "Monitoring Metrics Publisher" (Autore delle metriche di monitoraggio) per la risorsa di cui si desidera generare le metriche. È possibile usare un gruppo di risorse o un'intera sottoscrizione.

Nota

L'estensione Diagnostica usa l'entità servizio per eseguire l'autenticazione in Monitoraggio di Azure e per generare le metriche per la macchina virtuale classica.

Creare la configurazione dell'estensione Diagnostica

  1. Preparare il file di configurazione dell'estensione Diagnostica. Questo file determina quali log e contatori delle prestazioni deve raccogliere l'estensione di diagnostica per la macchina virtuale classica. Di seguito è illustrato un esempio:

    <?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. Nella sezione SinksConfig del file di diagnostica definire un nuovo sink di Monitoraggio di Azure, come segue:

    <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. Nella sezione del file di configurazione in cui è presente l'elenco dei contatori delle prestazioni da raccogliere, indirizzare i contatori delle prestazioni al sink di Monitoraggio di Azure "AzMonSink".

    <PerformanceCounters scheduledTransferPeriod="PT1M" sinks="AzMonSink">
        <PerformanceCounterConfiguration counterSpecifier="\Processor(_Total)\% Processor Time" sampleRate="PT15S" />
    ...
    </PerformanceCounters>
    
  4. Nella configurazione privata, definire l'account di Monitoraggio di Azure. Quindi aggiungere le informazioni dell'entità servizio da utilizzare per generare metriche.

    <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. Salvare il file in locale.

Distribuire l'estensione Diagnostica al servizio cloud

  1. Avviare PowerShell ed eseguire l'accesso.

    Login-AzAccount
    
  2. Iniziare impostando il contesto per la macchina virtuale classica.

    $VM = Get-AzureVM -ServiceName <VM’s Service_Name> -Name <VM Name>
    
  3. Impostare il contesto dell'account di archiviazione classico creato con la macchina virtuale.

    $StorageContext = New-AzStorageContext -StorageAccountName <name of your storage account from earlier steps> -storageaccountkey "<storage account key from earlier steps>"
    
  4. Impostare il percorso del file di diagnostica su una variabile usando il comando seguente:

    $diagconfig = “<path of the diagnostics configuration file with the Azure Monitor sink configured>”
    
  5. Preparare l'aggiornamento per la macchina virtuale classica con il file di diagnostica che dispone del sink di Monitoraggio di Azure configurato.

    $VM_Update = Set-AzureVMDiagnosticsExtension -DiagnosticsConfigurationPath $diagconfig -VM $VM -StorageContext $Storage_Context
    
  6. Distribuire l'aggiornamento alla VM eseguendo il comando seguente:

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

Nota

Resta obbligatorio specificare un account di archiviazione nell'ambito dell'installazione dell'estensione Diagnostica. Tutti i log o i contatori delle prestazioni specificati nel file di configurazione di diagnostica verranno scritti nell'account di archiviazione specificato.

Tracciare le metriche nel portale di Azure

  1. Vai al portale di Azure.

  2. Nel menu a sinistra selezionare Monitoraggio.

  3. Nel riquadro Monitoraggio a sinistra, selezionare Metriche.

    Esplorare le metriche

  4. Nell'elenco a discesa della risorsa selezionare la macchina virtuale classica.

  5. Nell'elenco a discesa degli spazi dei nomi selezionare azure.vm.windows.guest.

  6. Nell'elenco a discesa delle metriche selezionare Memory\Committed Bytes in Use (Memoria\Byte di cui è stato eseguito il commit). Metriche del tracciato

Passaggi successivi