Partilhar via


Enviar métricas do SO convidado para o banco de dados de métricas do Azure Monitor para uma máquina virtual do Windows (clássica)

Nota

Recomendamos que utilize o módulo Azure Az do PowerShell para interagir com o Azure. Para começar, consulte Instalar o Azure PowerShell. Para saber como migrar para o módulo do Az PowerShell, veja Migrar o Azure PowerShell do AzureRM para o Az.

A extensão Azure Monitor Diagnostics (conhecida como "WAD" ou "Diagnostics") permite coletar métricas e logs do sistema operacional convidado (SO convidado) em execução como parte de uma máquina virtual, serviço de nuvem ou cluster do Service Fabric. A extensão pode enviar telemetria para muitos locais diferentes.

Este artigo descreve o processo de envio de métricas de desempenho do SO convidado para uma máquina virtual do Windows (clássica) para o banco de dados de métricas do Azure Monitor. A partir da versão 1.11 do Diagnóstico, você pode escrever métricas diretamente no repositório de métricas do Azure Monitor, onde as métricas padrão da plataforma já são coletadas.

Armazená-los nesse local permite que você acesse as mesmas ações que você faz para as métricas da plataforma. As ações incluem alertas quase em tempo real, criação de gráficos, roteamento, acesso a partir de uma API REST e muito mais. No passado, a extensão Diagnóstico gravava no Armazenamento do Azure, mas não no armazenamento de dados do Azure Monitor.

O processo descrito neste artigo só funciona em máquinas virtuais clássicas que executam o sistema operacional Windows.

Pré-requisitos

Criar uma máquina virtual clássica e uma conta de armazenamento

  1. Crie uma VM clássica usando o portal do Azure. Criar VM clássica

  2. Ao criar essa VM, escolha a opção para criar uma nova conta de armazenamento clássica. Usamos essa conta de armazenamento em etapas posteriores.

  3. No portal do Azure, vá para o painel de recursos Contas de armazenamento . Selecione Chaves e anote o nome da conta de armazenamento e a chave da conta de armazenamento. Você precisa dessas informações em etapas posteriores. Chaves de acesso de armazenamento

Criar um principal de serviço

Crie uma entidade de serviço em seu locatário do Microsoft Entra usando as instruções em Criar uma entidade de serviço. Observe o seguinte ao passar por esse processo:

  • Crie um novo segredo de cliente para este aplicativo.
  • Salve a chave e o ID do cliente para uso em etapas posteriores.

Conceda a este aplicativo permissões "Monitoring Metrics Publisher" para o recurso contra o qual você deseja emitir métricas. Você pode usar um grupo de recursos ou uma assinatura inteira.

Nota

A extensão Diagnóstico usa a entidade de serviço para autenticar no Azure Monitor e emitir métricas para sua VM clássica.

Configuração da extensão Author Diagnostics

  1. Prepare o arquivo de configuração da extensão Diagnostics. Esse arquivo dita quais logs e contadores de desempenho a extensão de diagnóstico deve coletar para sua VM clássica. Segue-se um exemplo:

    <?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. Na seção "SinksConfig" do seu arquivo de diagnóstico, defina um novo coletor do Azure Monitor, da seguinte maneira:

    <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. Na seção do arquivo de configuração onde a lista de contadores de desempenho a serem coletados está listada, roteie os contadores de desempenho para o coletor do Azure Monitor "AzMonSink".

    <PerformanceCounters scheduledTransferPeriod="PT1M" sinks="AzMonSink">
        <PerformanceCounterConfiguration counterSpecifier="\Processor(_Total)\% Processor Time" sampleRate="PT15S" />
    ...
    </PerformanceCounters>
    
  4. Na configuração privada, defina a conta do Azure Monitor. Em seguida, adicione as informações da entidade de serviço a serem usadas para emitir métricas.

    <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. Salve este arquivo localmente.

Implantar a extensão Diagnostics em seu serviço de nuvem

  1. Inicie o PowerShell e entre.

    Login-AzAccount
    
  2. Comece definindo o contexto para sua VM clássica.

    $VM = Get-AzureVM -ServiceName <VM’s Service_Name> -Name <VM Name>
    
  3. Defina o contexto da conta de armazenamento clássica que foi criada com a VM.

    $StorageContext = New-AzStorageContext -StorageAccountName <name of your storage account from earlier steps> -storageaccountkey "<storage account key from earlier steps>"
    
  4. Defina o caminho do arquivo de diagnóstico para uma variável usando o seguinte comando:

    $diagconfig = “<path of the diagnostics configuration file with the Azure Monitor sink configured>”
    
  5. Prepare a atualização para sua VM clássica com o arquivo de diagnóstico que tem o coletor do Azure Monitor configurado.

    $VM_Update = Set-AzureVMDiagnosticsExtension -DiagnosticsConfigurationPath $diagconfig -VM $VM -StorageContext $Storage_Context
    
  6. Implante a atualização em sua VM executando o seguinte comando:

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

Nota

Ainda é obrigatório fornecer uma conta de armazenamento como parte da instalação da extensão Diagnostics. Todos os logs ou contadores de desempenho especificados no arquivo de configuração de Diagnóstico serão gravados na conta de armazenamento especificada.

Plotar as métricas no portal do Azure

  1. Aceda ao portal do Azure.

  2. No menu à esquerda, selecione Monitor.

  3. No painel Monitor à esquerda, selecione Métricas.

    Navegar pelas métricas

  4. No menu suspenso de recursos, selecione sua VM clássica.

  5. No menu suspenso namespaces, selecione azure.vm.windows.guest.

  6. No menu suspenso de métricas, selecione Memória\Bytes confirmados em uso. Métricas de plotagem

Próximos passos