Utilizar o Log Analytics para a funcionalidade de diagnóstico no Azure Virtual Desktop (clássico)

Importante

Este conteúdo aplica-se ao Azure Virtual Desktop (clássico), que não suporta objetos do Azure Resource Manager Azure Virtual Desktop. Se estiver a tentar gerir objetos do Azure Resource Manager Azure Virtual Desktop, veja este artigo.

O Azure Virtual Desktop oferece uma funcionalidade de diagnóstico que permite ao administrador identificar problemas através de uma única interface. Esta funcionalidade regista informações de diagnóstico sempre que alguém atribuído à função de Ambiente de Trabalho Virtual do Azure utiliza o serviço. Cada registo contém informações sobre a função do Azure Virtual Desktop envolvida na atividade, quaisquer mensagens de erro que apareçam durante a sessão, informações do inquilino e informações do utilizador. A funcionalidade de diagnóstico cria registos de atividades para ações administrativas e de utilizador. Cada registo de atividades é abrangido por três categorias principais:

  • Atividades de subscrição de feed: quando um utilizador tenta ligar-se ao respetivo feed através de aplicações Ambiente de Trabalho Remoto da Microsoft.
  • Atividades de ligação: quando um utilizador tenta ligar-se a um ambiente de trabalho ou RemoteApp através de aplicações Ambiente de Trabalho Remoto da Microsoft.
  • Atividades de gestão: quando um administrador executa operações de gestão no sistema, como criar conjuntos de anfitriões, atribuir utilizadores a grupos de aplicações e criar atribuições de funções.

As ligações que não atingem o Azure Virtual Desktop não aparecem nos resultados do diagnóstico porque o próprio serviço de função de diagnóstico faz parte do Azure Virtual Desktop. Os problemas de ligação do Azure Virtual Desktop podem ocorrer quando o utilizador está a ter problemas de conectividade de rede.

Por que motivo deve utilizar o Log Analytics

Recomendamos que utilize o Log Analytics para analisar dados de diagnóstico no cliente do Azure que vão além da resolução de problemas de utilizador único. Como pode solicitar contadores de desempenho de VMs para o Log Analytics, tem uma ferramenta para recolher informações para a sua implementação.

Antes de começar

Antes de poder utilizar o Log Analytics com a funcionalidade de diagnóstico, terá de criar uma área de trabalho.

Depois de criar a área de trabalho, siga as instruções em Ligar computadores Windows ao Azure Monitor para obter as seguintes informações:

  • O ID da área de trabalho
  • A chave primária da área de trabalho

Irá precisar destas informações mais tarde no processo de configuração.

Enviar dados de diagnóstico para a área de trabalho

Pode enviar dados de diagnóstico do inquilino do Azure Virtual Desktop para o Log Analytics para a área de trabalho. Pode configurar esta funcionalidade imediatamente quando criar o seu inquilino pela primeira vez ao ligar a área de trabalho ao seu inquilino ou pode configurá-la mais tarde com um inquilino existente.

Para ligar o seu inquilino à área de trabalho do Log Analytics enquanto está a configurar o seu novo inquilino, execute o seguinte cmdlet para iniciar sessão no Azure Virtual Desktop com a sua conta de utilizador TenantCreator:

Add-RdsAccount -DeploymentUrl https://rdbroker.wvd.microsoft.com

Se pretender ligar um inquilino existente em vez de um novo inquilino, execute este cmdlet:

Set-RdsTenant -Name <TenantName> -AzureSubscriptionId <SubscriptionID> -LogAnalyticsWorkspaceId <String> -LogAnalyticsPrimaryKey <String>

Terá de executar estes cmdlets para todos os inquilinos que pretende ligar ao Log Analytics.

Nota

Se não quiser ligar a área de trabalho do Log Analytics quando criar um inquilino, execute o New-RdsTenant cmdlet.

Cadência para enviar eventos de diagnóstico

Os eventos de diagnóstico são enviados para o Log Analytics quando concluído.

Consultas de exemplo

As seguintes consultas de exemplo mostram como a funcionalidade de diagnóstico gera um relatório para as atividades mais frequentes no seu sistema:

Este primeiro exemplo mostra as atividades de ligação iniciadas por utilizadores com clientes de ambiente de trabalho remoto suportados:

WVDActivityV1_CL
| where Type_s == "Connection"
| join kind=leftouter (
    WVDErrorV1_CL
    | summarize Errors = makelist(pack('Time', Time_t, 'Code', ErrorCode_s , 'CodeSymbolic', ErrorCodeSymbolic_s, 'Message', ErrorMessage_s, 'ReportedBy', ReportedBy_s , 'Internal', ErrorInternal_s )) by ActivityId_g
    ) on $left.Id_g  == $right.ActivityId_g 
| join  kind=leftouter (
    WVDCheckpointV1_CL
    | summarize Checkpoints = makelist(pack('Time', Time_t, 'ReportedBy', ReportedBy_s, 'Name', Name_s, 'Parameters', Parameters_s) ) by ActivityId_g
    ) on $left.Id_g  == $right.ActivityId_g
|project-away ActivityId_g, ActivityId_g1

Esta consulta de exemplo seguinte mostra atividades de gestão por administradores em inquilinos:

WVDActivityV1_CL
| where Type_s == "Management"
| join kind=leftouter (
    WVDErrorV1_CL
    | summarize Errors = makelist(pack('Time', Time_t, 'Code', ErrorCode_s , 'CodeSymbolic', ErrorCodeSymbolic_s, 'Message', ErrorMessage_s, 'ReportedBy', ReportedBy_s , 'Internal', ErrorInternal_s )) by ActivityId_g
    ) on $left.Id_g  == $right.ActivityId_g 
| join  kind=leftouter (
    WVDCheckpointV1_CL
    | summarize Checkpoints = makelist(pack('Time', Time_t, 'ReportedBy', ReportedBy_s, 'Name', Name_s, 'Parameters', Parameters_s) ) by ActivityId_g
    ) on $left.Id_g  == $right.ActivityId_g
|project-away ActivityId_g, ActivityId_g1

Parar de enviar dados para o Log Analytics

Para parar de enviar dados de um inquilino existente para o Log Analytics, execute o seguinte cmdlet e defina cadeias vazias:

Set-RdsTenant -Name <TenantName> -AzureSubscriptionId <SubscriptionID> -LogAnalyticsWorkspaceId <String> -LogAnalyticsPrimaryKey <String>

Terá de executar este cmdlet para todos os inquilinos a partir dos quais pretende parar de enviar dados.

Passos seguintes

Para rever cenários de erro comuns que a funcionalidade de diagnóstico pode identificar automaticamente, veja Identificar e diagnosticar problemas.