Enviar métricas do SO convidado para o repositório de métricas do Azure Monitor Serviços de Nuvem clássicos
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.
Com a extensão Azure Monitor Diagnostics, você pode 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 os Serviços de Nuvem clássicos do Azure para o repositório 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ê pode para 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 funciona apenas para contadores de desempenho nos Serviços de Nuvem do Azure. Não funciona para outras métricas personalizadas.
Pré-requisitos
Você deve ser um administrador de serviço ou coadministrador em sua assinatura do Azure.
A sua subscrição tem de estar registada no Microsoft.Insights.
Você precisa ter o Azure PowerShell ou o Azure Cloud Shell instalado.
Provisionar um serviço de nuvem e uma conta de armazenamento
Crie e implante um serviço de nuvem clássico. Um exemplo de aplicativo e implantação de Serviços de Nuvem clássicos pode ser encontrado em Introdução aos Serviços de Nuvem do Azure e ASP.NET.
Você pode usar uma conta de armazenamento existente ou implantar uma nova conta de armazenamento. É melhor se a conta de armazenamento estiver na mesma região do serviço de nuvem clássico que você criou. No portal do Azure, vá para o painel de recursos Contas de armazenamento e selecione Chaves. Anote o nome da conta de armazenamento e a chave da conta de armazenamento. Estas informações são necessárias nos passos posteriores.
Criar um principal de serviço
Crie uma entidade de serviço em seu locatário do Microsoft Entra usando as instruções em Usar portal para criar um aplicativo e entidade de serviço do Microsoft Entra que possa acessar recursos. Observe o seguinte enquanto você está passando por esse processo:
- Pode colocar qualquer URL para o URL de início de sessão.
- Crie um novo segredo de cliente para este aplicativo.
- Salve a chave e o ID do cliente para uso em etapas posteriores.
Conceda ao aplicativo criado na etapa anterior permissões do Monitoring Metrics Publisher ao recurso contra o qual você deseja emitir métricas. Se você planeja usar o aplicativo para emitir métricas personalizadas em relação a muitos recursos, poderá conceder essas permissões no nível do grupo de recursos ou da assinatura.
Nota
A extensão Diagnóstico usa a entidade de serviço para autenticar no Azure Monitor e emitir métricas para seu serviço de nuvem.
Configuração da extensão Author Diagnostics
Prepare o arquivo de configuração da extensão Diagnostics. Esse arquivo determina quais logs e contadores de desempenho a extensão de diagnóstico deve coletar para seu serviço de nuvem. A seguir está um exemplo de arquivo de configuração de diagnóstico:
<?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">
<DiagnosticInfrastructureLogs scheduledTransferLogLevelFilter="Error" />
<Directories scheduledTransferPeriod="PT1M">
<IISLogs containerName="wad-iis-logfiles" />
<FailedRequestLogs containerName="wad-failedrequestlogs" />
</Directories>
<PerformanceCounters scheduledTransferPeriod="PT1M">
<PerformanceCounterConfiguration counterSpecifier="\Processor(_Total)\% Processor Time" sampleRate="PT15S" />
<PerformanceCounterConfiguration counterSpecifier="\Memory\Available MBytes" sampleRate="PT15S" />
<PerformanceCounterConfiguration counterSpecifier="\Memory\Committed Bytes" sampleRate="PT15S" />
<PerformanceCounterConfiguration counterSpecifier="\Memory\Page Faults/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" />
</DiagnosticMonitorConfiguration>
<SinksConfig>
</SinksConfig>
</WadCfg>
<StorageAccount />
</PublicConfig>
<PrivateConfig xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration">
<StorageAccount name="" endpoint="" />
</PrivateConfig>
<IsEnabled>true</IsEnabled>
</DiagnosticsConfiguration>
Na seção "SinksConfig" do seu arquivo de diagnóstico, defina um novo coletor do Azure Monitor:
<SinksConfig>
<Sink name="AzMonSink">
<AzureMonitor>
<ResourceId>-Provide ClassicCloudService’s Resource ID-</ResourceId>
<Region>-Azure Region your Cloud Service is deployed in-</Region>
</AzureMonitor>
</Sink>
</SinksConfig>
Na seção do seu arquivo de configuração onde você lista os contadores de desempenho a serem coletados, adicione o coletor do Azure Monitor. Essa entrada garante que todos os contadores de desempenho especificados sejam roteados para o Azure Monitor como métricas. Você pode adicionar ou remover contadores de desempenho de acordo com suas necessidades.
<PerformanceCounters scheduledTransferPeriod="PT1M" sinks="AzMonSink">
<PerformanceCounterConfiguration counterSpecifier="\Processor(_Total)\% Processor Time" sampleRate="PT15S" />
...
</PerformanceCounters>
Finalmente, na configuração privada, adicione uma seção Conta do Azure Monitor. Insira o ID do cliente principal de serviço e o segredo que você criou anteriormente.
<PrivateConfig xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration">
<StorageAccount name="" endpoint="" />
<AzureMonitorAccount>
<ServicePrincipalMeta>
<PrincipalId>clientId from step 3</PrincipalId>
<Secret>client secret from step 3</Secret>
</ServicePrincipalMeta>
</AzureMonitorAccount>
</PrivateConfig>
Salve este arquivo de diagnóstico localmente.
Implantar a extensão Diagnostics em seu serviço de nuvem
Inicie o PowerShell e faça logon no Azure.
Login-AzAccount
Use os comandos a seguir para armazenar os detalhes da conta de armazenamento criada anteriormente.
$storage_account = <name of your storage account from step 3>
$storage_keys = <storage account key from step 3>
Da mesma forma, defina o caminho do arquivo de diagnóstico como uma variável usando o seguinte comando:
$diagconfig = “<path of the Diagnostics configuration file with the Azure Monitor sink configured>”
Implante a extensão de Diagnóstico em seu serviço de nuvem com o arquivo de diagnóstico com o coletor do Azure Monitor configurado usando o seguinte comando:
Set-AzureServiceDiagnosticsExtension -ServiceName <classicCloudServiceName> -StorageAccountName $storage_account -StorageAccountKey $storage_keys -DiagnosticsConfigurationPath $diagconfig
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 são gravados na conta de armazenamento especificada.
Plotar métricas no portal do Azure
Aceda ao portal do Azure.
No menu à esquerda, selecione Monitor.
No painel Monitor, selecione a guia Visualização de métricas.
No menu suspenso de recursos, selecione seu serviço de nuvem clássico.
No menu suspenso namespaces, selecione azure.vm.windows.guest.
No menu suspenso de métricas, selecione Memória\Bytes confirmados em uso.
Use os recursos de filtragem e divisão de dimensão para exibir a memória total usada por uma função ou instância de função específica.
Próximos passos
- Saiba mais sobre métricas personalizadas.