Dados de diagnóstico de computação de PaaS (plataforma como serviço) do Windows Azure
Quando você precisa solucionar um problema, uma das coisas mais importantes a entender é quais dados de diagnóstico estão disponíveis. Se você não souber onde procurar logs ou outras informações de diagnóstico, talvez seja necessário recorrer à abordagem de tentativa e erro ou espingarda para solução de problemas. Se você tiver acesso aos logs, terá mais chances de diagnosticar qualquer problema, mesmo que não esteja dentro de sua área de especialização.
Este artigo discute os dados disponíveis em ambientes de computação de PaaS (plataforma como serviço) do Azure. Ele descreve como você pode coletar facilmente esses dados de uma VM (máquina virtual) de PaaS do Windows.
As seções a seguir incluem as fontes de dados mais usadas quando você soluciona problemas em uma VM de PaaS do Windows. As seções são ordenadas aproximadamente por importância (a frequência de uso do log para diagnosticar problemas).
Logs de eventos do Windows Azure
Os logs de eventos do Windows Azure contêm a saída de diagnóstico de chave do tempo de execução do Azure. Os logs registram informações sobre esses eventos como as seguintes:
- A função começa e termina
- Tarefas de inicialização
OnStart
Iniciar e pararOnRun
começar- Falhas
- Recicla
Para exibir os logs de eventos do Windows Azure:
No menu Iniciar, pesquise Visualizador de Eventos e selecione esse aplicativo.
No painel de navegação, expanda Logs de Aplicativos e Serviços e selecione Windows Azure.
Essa fonte de diagnóstico ajuda você a identificar a causa de vários dos problemas mais comuns que impedem que as funções do Azure sejam iniciadas corretamente. Isso inclui falhas de tarefas de inicialização e falhas no ou OnRun
.OnStart
O Visualizador de Eventos captura falhas nos processos de host do Azure Runtime que executam o código do ponto de entrada da função (como WebRole.cs ou WorkerRole.cs) e fornece pilhas de chamadas.
Logs de eventos do aplicativo
Você pode usar logs de eventos do aplicativo para solução de problemas padrão em servidores locais e do Azure. Muitas vezes, você pode encontrar erros relacionados a w3wp.exe nesses logs.
Para exibir os logs de eventos do aplicativo:
No menu Iniciar, pesquise Visualizador de Eventos e selecione esse aplicativo.
No painel de navegação, expanda Logs do Windows e selecione Aplicativo.
Logs de tempo de execução do agente de aplicativo
O log de tempo de execução do agente de aplicativo está localizado em C:\Logs\AppAgentRuntime.log e é gravado pelo executável WindowsAzureGuestAgent.exe . O log contém informações sobre eventos que ocorrem no agente convidado e na VM. Essas informações do evento incluem, mas não se limitam a, as seguintes categorias:
- Configuração do firewall
- Alterações de estado da função
- Recicla
- Reinicia
- Alterações no estado de funcionamento
- A função é interrompida e iniciada
- Configuração do Certificado
Esse log é útil para obter uma visão geral rápida dos eventos que ocorrem ao longo do tempo para uma função. Isso ocorre porque ele registra grandes alterações na função sem registrar pulsações. Se o agente convidado não puder iniciar a função corretamente (por exemplo, se um arquivo bloqueado impedir a limpeza do diretório), você verá o evento registrado neste log.
Logs de pulsação do agente de aplicativo
O log de pulsação do agente de aplicativo está localizado em C:\Logs\WaAppAgent.log e é gravado pelo executável WindowsAzureGuestAgent.exe . Ele contém informações de status sobre as investigações de integridade para o bootstrapper do host.
O processo do agente convidado é responsável por relatar o status de integridade (por exemplo, Ready
ou Busy
) para a malha. Portanto, o status de integridade que esse log relata é o mesmo que você verá no portal de gerenciamento. O log é útil para determinar o estado atual da função na VM ou para determinar qual era o estado em algum momento anterior. Você pode fornecer descrições de problemas, como "Meu site estava fora do ar das 10:00 às 11:30 ontem" para usar o log de pulsação para ajudá-lo a determinar o status de integridade da função durante esse período.
Logs de bootstrapper do host
O log de bootstrapper do host está localizado em C:\Resources\WaHostBootstrapper.log. Ele contém entradas para tarefas de inicialização, incluindo plug-ins como Cache ou RDP (Remote Desktop Protocol). O log também contém investigações de integridade para o processo de host que executa o código do ponto de entrada da função (o código WebRole.cs que é executado no WaIISHost.exe).
Um arquivo de log é gerado toda vez que o bootstrapper do host é reiniciado. (Em outras palavras, ele é reiniciado sempre que sua função é reciclada devido a um evento como falha, reciclagem, reinicialização da VM ou atualização.) Essa prática facilita o uso do log para determinar com que frequência ou quando sua função foi reciclada.
Logs dos Serviços de Informações da Internet
Os logs do IIS (Serviços de Informações da Internet) estão localizados em C:\Resources\Directory\<DeploymentID>.<RoleName>. DiagnosticStore\LogFiles\Web. Esses logs são usados para solução de problemas padrão em servidores locais e do Azure.
Os logs do IIS geralmente são ignorados em cenários como "Meu site estava fora do ar das 10:00 às 11:30 ontem". É natural culpar o Azure pela interrupção. ("Meu site estava funcionando bem por duas semanas, então o problema deve ser o Azure!") No entanto, os logs do IIS geralmente indicam o contrário. Você pode descobrir que o aumento dos tempos de resposta ocorreu imediatamente antes da interrupção. Ou você pode descobrir que os códigos de status de falha foram retornados pelo IIS. Esses códigos indicariam um problema que ocorreu no próprio site (ou seja, no código ASP.NET que é executado no w3wp.exe) e não no Azure.
Contadores de desempenho
Para exibir contadores de desempenho, selecione o menu Iniciar, pesquise perfmon e selecione Monitor de Desempenho. Esse aplicativo é um snap-in do MMC (Console de Gerenciamento Microsoft). Como alternativa, instale e configure a extensão de diagnóstico do Windows Azure (WAD).
Os contadores de desempenho são usados para solução de problemas padrão em servidores locais e do Azure. Se você configurar o WAD com antecedência, geralmente terá contadores de desempenho valiosos para solucionar problemas que ocorreram no passado (por exemplo, "Meu site estava fora do ar das 10:00 às 11:30 ontem.").
Além dos problemas para os quais você coleta contadores de desempenho específicos, os usos mais comuns para contadores de desempenho coletados pelo WAD são procurar os seguintes itens, na ordem fornecida:
Entradas regulares do contador de desempenho
Um período sem inscrições
Um dos estados na tabela a seguir.
Estadual Descrição A retomada das entradas regulares Um cenário em que a VM potencialmente não estava em execução 100% de uso da CPU Um loop infinito ou algum outro problema de lógica no próprio código do site
HTTP.SYS logs
Os logs HTTP.SYS estão localizados em D:\Windows\System32\LogFiles\HTTPERR. Esses logs são usados para solução de problemas padrão em servidores locais e do Azure.
Como acontece com os logs do IIS, os logs HTTP.SYS geralmente são ignorados. No entanto, eles são importantes quando você tenta solucionar um problema no qual um site de serviço hospedado não está respondendo. Muitas vezes, esse problema é causado pelo IIS não conseguir processar o volume de solicitações recebidas. A evidência dessa causa geralmente aparece nos registros HTTP.SYS.
Arquivos de log de solicitação com falha do IIS
Os arquivos de log "Solicitação com falha do IIS" estão localizados em C:\Resources\Directory\<DeploymentID.<>RoleName>. DiagnosticStore\FailedReqLogFiles. Esses logs são usados para solução de problemas padrão em servidores locais e do Azure.
Por padrão, esses arquivos de log não são ativados no Windows Azure. Eles raramente são usados. No entanto, se você estiver solucionando problemas específicos do IIS ou do ASP.NET, considere ativar o rastreamento FREB (buffer de eventos de solicitação com falha). O rastreamento FREB pode fornecer mais detalhes sobre esses problemas.
Tabelas de diagnóstico e configuração do Windows Azure
As tabelas e a configuração da extensão de diagnóstico do Windows Azure (WAD) estão localizadas em C:\Resources\Directory\<DeploymentID>.<RoleName>. DiagnosticStore\Monitor. Esses itens representam o cache local na VM dos dados WAD.
O WAD executa as seguintes etapas:
Captura os dados conforme você os configurou.
Armazena os dados em arquivos .tsf personalizados na VM.
Transfere os dados para o armazenamento com base no período de transferência agendado que você especificou.
Infelizmente, como os dados estão em um formato .tsf personalizado, o conteúdo dos dados WAD é de uso limitado. Mas eles contêm os arquivos de configuração de diagnóstico que são úteis para solucionar problemas se o WAD não estiver funcionando corretamente. Na pasta Configuração, procure um arquivo chamado config.xml. Esse arquivo inclui os dados de configuração do WAD. Se o WAD não estiver funcionando corretamente, verifique esse arquivo para garantir que ele esteja refletindo a maneira como você espera que o WAD seja configurado.
Arquivos de log de cache do Windows Azure
Os arquivos de log de cache do Windows Azure estão localizados em C:\Resources\Directory\<DeploymentID>.<RoleName>. DiagnosticStore\AzureCaching. Esses logs contêm informações detalhadas sobre o cache baseado em função do Windows Azure. Os logs podem ajudá-lo a solucionar problemas nos quais o cache não está funcionando conforme o esperado.
Logs do WaIISHost
O log do WaIISHost está localizado em C:\Resources\Directory\<DeploymentID.><RoleName>. DiagnosticStore\WaIISHost.log. Ele contém informações do processo WaIISHost.exe . Esse processo é onde o código do ponto de entrada de função (WebRole.cs) é executado para WebRoles. A maioria dessas informações também está incluída nos outros logs discutidos neste artigo (como os logs de eventos do Windows Azure). No entanto, você pode ocasionalmente encontrar informações mais úteis aqui.
Logs do IISConfigurator
O log do IISConfigurator está localizado em C:\Resources\Directory\<DeploymentID.><RoleName>. DiagnosticStore\IISConfigurator.log. Ele contém informações sobre o processo IISConfigurator. Esse processo é usado para fazer a configuração real do IIS do seu site, com base no modelo definido nos arquivos de definição de serviço. O processo raramente falha ou encontra erros. Mas se o IIS ou o w3wp.exe não parecem estar configurados corretamente para o seu serviço, esse log é o local para verificar.
Arquivos de configuração de função
O arquivo de configuração de função está localizado em C:\Config\<DeploymentID.><RoleName>.<Versão>.xml. Ele contém informações sobre a configuração da sua função, como os seguintes itens:
Configurações definidas no arquivo ServiceConfiguration.cscfg
Diretórios de recursos locais
Endereços IP e portas para IP dinâmico (DIP) e IP virtual (VIP)
Impressões digitais do certificado
Investigações do balanceador de carga
Outras instâncias
O arquivo de configuração de função é semelhante ao arquivo de definição de modelo de função, pois não contém informações geradas por runtime. No entanto, pode ser útil garantir que seu serviço esteja configurado conforme o esperado.
Arquivo de definição de modelo de função
O arquivo de definição de modelo de função está localizado em E:\RoleModel.xml ou F:\RoleModel.xml. Ele contém informações sobre como seu serviço é definido de acordo com o runtime do Azure.
O arquivo contém entradas para cada tarefa de inicialização e informações sobre como a tarefa é executada, incluindo as seguintes características:
- Tela de fundo
- Variáveis de ambiente
- Location
Você também pode ver como seu <elemento sites> é definido para uma função Web.
O arquivo de definição de modelo de função não contém informações geradas em tempo de execução, mas pode ajudá-lo a verificar se o Azure está executando seu serviço conforme o esperado. Essa verificação geralmente ajuda quando você tem uma versão específica de uma definição de serviço em seu computador de desenvolvimento, mas o servidor de compilação e pacote está usando outra versão dos arquivos de definição de serviço.
Sobre arquivos ETL
A pasta C:\Logs contém arquivos RuntimeEvents_<Iteration.etl> e WaAppAgent_<Iteration.etl>. Esses arquivos ETL (log de rastreamento de eventos) são rastreamentos ETW (Rastreamento de Eventos para Windows) que contêm uma compilação das informações encontradas nos logs de eventos do Windows Azure, logs de agente convidado e outros logs. Os arquivos são uma compilação conveniente dos dados de log mais importantes em uma VM do Azure. Como os arquivos estão no formato ETL, você precisa executar algumas etapas extras para consumir as informações. Se você tiver uma ferramenta de exibição ETW favorita, poderá ignorar muitos dos arquivos de log mencionados. Em vez disso, você pode apenas examinar as informações nesses dois arquivos ETL.
Próximas etapas
Mais informações
Entre em contato conosco para obter ajuda
Se você tiver dúvidas ou precisar de ajuda, crie uma solicitação de suporte ou peça ajuda à comunidade de suporte do Azure. Você também pode enviar comentários sobre o produto para a comunidade de comentários do Azure.