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

Observação

Para interagir com o Azure, é recomendável o módulo do PowerShell do Azure Az. Confira Instalar o Azure PowerShell para começar. Para saber como migrar para o módulo Az PowerShell, confira Migrar o Azure PowerShell do AzureRM para o Az.

A extensão de diagnóstico do Azure Monitor (conhecida como "WAD" ou "Diagnóstico") permite coletar métricas e logs do sistema operacional convidado (sistema operacional convidado) em execução como parte de uma máquina virtual, serviço em 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 sistema operacional convidado para uma máquina virtual do Windows (clássica) ao banco de dados de métricas do Azure Monitor. A partir da versão 1.11 do Diagnostics, você pode gravar métricas diretamente no repositório de métricas do Monitor do Azure, onde métricas de plataforma padrão já foram coletadas.

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

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

Pré-requisitos

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

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

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

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

Criar uma entidade de serviço

Crie uma entidade de serviço em seu locatário do Active Directory do Azure usando as instruções em Criar uma entidade de serviço. Observe o seguinte ao percorrer este processo:

  • Crie um novo segredo de cliente para este aplicativo.
  • Salve a Chave e a ID do cliente para serem usadas em etapas posteriores.

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

Observação

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

Criar configuração de Extensão de diagnóstico

  1. Prepare o arquivo de configuração de Extensão de diagnóstico. Esse arquivo determina quais logs e contadores de desempenho a extensão Diagnostics deve coletar para sua VM clássica. A seguir está 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ósticos, 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 em que a lista de contadores de desempenho a serem coletados está listada, direcione os contadores de desempenho para o coletor do Monitor do Azure "AzMonSink".

    <PerformanceCounters scheduledTransferPeriod="PT1M" sinks="AzMonSink">
        <PerformanceCounterConfiguration counterSpecifier="\Processor(_Total)\% Processor Time" sampleRate="PT15S" />
    ...
    </PerformanceCounters>
    
  4. Na configuração privada, defina a conta do Monitor do Azure. Em seguida, adicione as informações do principal de serviço para usar 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 esse arquivo localmente.

Implantar a Extensão de diagnóstico para 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ássico 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 Diagnostics 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 possui o coletor do Monitor do Azure 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
    

Observação

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 Diagnostics serão gravados na conta de armazenamento especificada.

Plotar as métricas no portal do Azure

  1. Vá para o portal do Azure.

  2. No menu esquerdo, selecione Monitor.

  3. Sobre o Monitor folha, selecione métricas.

    Navegue de 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 Bytes de Memória\Confirmados em Uso. Plotar as métricas

Próximas etapas