Rastreamento
O rastreamento usa o ETW (Rastreamento de eventos para Windows). Para usar as ferramentas de rastreamento disponíveis com o Windows Server 2008 R2, instale o SDK do Microsoft Windows.
Há três níveis de rastreamento com suporte:
- Detalhado (todos os rastreamentos disponíveis).
- Informações (rastreamentos informativos).
- Erro (rastreamentos de erro).
Os seguintes eventos são rastreados:
- Quaisquer erros (Level=Error, Level=Info ou Level=Verbose).
- Entrada/saída de uma API (Level=Info ou Level=Verbose).
- Início e término de qualquer E/S (Level=Info ou Level=Verbose)
- Mensagens SOAP trocadas (Level=Verbose, disponível no Windows 2003 SP1 e superior)
O WWSAPI usa os eventos com base em manifesto no Windows Vista e superior. Como resultado, a experiência de rastreamento diverge com base na versão do sistema operacional. A geração de rastreamentos ETW pode ser feita usando as ferramentas ETW na caixa em todas as plataformas compatíveis. Porém, para ver os rastreamentos ETW em um formato fácil é preciso ter ferramentas personalizadas no Windows XP SP2 e no Windows 2003 SP1. Há diversas maneiras de coletar e exibir rastreamentos de eventos WWSAPI ETW, dependendo da versão do sistema operacional.
Habilitando e exibindo rastreamentos WWSAPI no Visualizador de Eventos (para o Windows Vista e superior)
- Execute o eventvwr.msc na linha de comando ou no menu Executar.
- Clique no link de exibição no painel Ações à direita e habilite a opção Mostrar logs analíticos e de depuração.
- Navegue para Logs de Aplicativos e Serviços\Microsoft\Windows\Provedores de WebServices no painel esquerdo.
- Clique com o botão direito do mouse no provedor de Rastreamento e selecione Habilitar log.
- Execute o seu cenário.
- Ao atualizar a página do visualizador de eventos, você deve ver as entradas de rastreamento WWSAPI.
O arquivo em lote wstrace.bat proporciona um jeito conveniente de:
- Criar um log de rastreamento
- Excluir um log de rastreamento
- Habilitar e desabilitar o rastreamento
- Atualizar o nível de rastreamento (info/error/verbose)
- Convertendo os logs de rastreio em arquivos CSV
O arquivo em lotes usa logman.exe para todos os comandos, exceto pela conversão dos logs em arquivo CSV, que exige uma ferramenta personalizada (wstracedump.exe).
O comando a seguir cria um log que usa nível info, error ou verbose. Esse comando exige privilégios elevados.
wstrace.bat create [info | error | verbose]
O comando a seguir exclui o log. Esse comando exige privilégios elevados.
wstrace.bat delete
O comando a seguir habilita rastreamento. Primeiro, você deve criar um log.
wstrace.bat on
O nível de rastreamento (info, error ou verbose) pode ser modificado da seguinte forma:
wstrace.bat update [info | error | verbose]
Para despejar a saída do rastreamento, use este comando:
wstrace.bat dump > temp.csv
Os eventos serão despejados no arquivo CSV até que Ctrl-C seja pressionado ou o rastreamento desabilitado.
Os arquivos CSV criados por wstrace.bat são arquivos de texto simples de variáveis separadas por vírgulas. Esses arquivos são abertos no Excel, Bloco de Notas, etc.
As colunas do arquivo são estas:
- TimeStamp - Carimbo de data/hora do registro do evento
- ProcessID - ID ULONG do processo registrador do evento
- ThreadID - ID ULONG do thread que registra o evento
- Evento - O valor enumerado do tipo de evento pode ser ("api enter" | "api pending" | "api ExitSyncSuccess" | "api ExitSyncFailure" | "api ExitAsyncSuccess" | "api ExitAsyncFailure" | "io started" | "io completed" | "io failed" | "error" | "received message start" | "received message" | "received message stop" | "sending message start" | "sending message" | "sending message stop")
- Operação - O nome da operação sendo invocada. Normalmente, isso é mapeado para a API sendo chamada.
- Erro - Número de erro de HRESULT opcional
- Info - Informações opcionais sobre o evento
Habilitando o rastreamento de ETW para WWSAPI
logman start wstrace -bs 64 -ft 1 -rt -p Microsoft-Windows-WebServices [flags [level]] [-o <EtlLogFileName>] -ets
para criar e iniciar a sessão de rastreamento de ETW. O Logman.exe é uma ferramenta ETW na caixa disponível em todas as plataformas compatíveis. Observe que você precisa usar Microsoft_Windows_WebServices como nome do provedor no XPSP2 e W2K3. Você pode executar os provedores de consulta logman para ver a lista de provedores registrados. O provedor Microsoft-Windows-WebServices (ou Microsoft_Windows_WebServices) deve ser listado, a menos que ele não esteja registrado. Normalmente, o provedor é registrado durante a instalação. Porém, ele também pode ser registrado manualmente executando wevtutil.exe im <ManifestFileName> (no Windows Vista e superior) ou mofcomp.exe <MofFileName> (no XPSP2 e W2K3).
Os sinalizadores podem ser usados para filtrar rastreamentos por tipo. Pode ser o valor OR'd dos tipos seguintes de rastreamento. Se não for fornecido, todos os tipos de rastreamento serão ativados.
- 0x1 - Rastreamentos de entrada/saída de API.
- 0x2 - Rastreamentos de erros.
- 0x4 - Rastreamentos de E/S.
- 0x8 - Rastreamentos das mensagens SOAP.
- 0x10 - Rastreamentos das mensagens binárias.
O Nível pode ser usado para filtrar os rastreamentos por nível. Ele deve ter um dos seguintes valores. Se não for fornecido, todos os níveis de rastreamento serão ativados.
- 0x1 - Rastreamentos fatais.
- 0x2 - Rastreamentos de erros.
- 0x3 - Rastreamentos de aviso.
- 0x4 - Rastreamentos informativos.
- 0x5 - Rastreamentos detalhados.
O EtlLogFileName é o caminho para o arquivo de log de eventos ETW a ser criado (use a extensão .etl). Se não for fornecido, o ETW escolhe um nome aleatório que pode ser consultado posteriormente. Esse arquivo não deve estar no diretório de perfil do usuário. O arquivo de log de eventos ETW (arquivo .etl) vem em formato binário. Ele pode ser consumido por aplicativos ETW, mas seu formato é ilegível por humanos. A próxima etapa descreve como ver seu conteúdo.
Execute o seu cenário
Coletando o arquivo de log de eventos de ETW.
logman stop wstrace -ets
para parar a sessão de rastreamento de ETW. É quando o ETW para de registrar eventos. O arquivo de log de eventos de ETW (especificado no parâmetro EtlLogFileName) está pronto para consumo. Ele pode ser visto localmente (as instruções são fornecidas abaixo) ou enviado ao grupo de produtos para investigação.
Exemplo completo usando as ferramentas ETW:
logman start wstrace -bs 64 -ft 1 -rt -p Microsoft-Windows-WebServices -o mytrace.etl -ets
echo .. execute o seu cenário..
logman stop wstrace -ets
tracerpt mytrace.etl -o mytrace.xml
wstrace.htm
echo .. use mytrace.xml e wstrace.xsl na página aberta.
Exibindo rastreamentos do arquivo WWSAPI ETW Trace com a ferramenta wstracedump.exe (para o Windows XP e superior)
O Wstracedump.exe é uma ferramenta de consumidor de ETW desenvolvida sob medida para processar eventos no arquivo de rastreamento WWSAPI ETW e produz uma saída legível por humanos. Ele pode produzir saída de todas as plataformas compatíveis. Consulte o seu uso (wstracedump.exe -?) para mais informações.
Exibindo rastreamentos do arquivo WWSAPI ETW com ferramentas de ETW (para o Windows Vista e superior)
O Tracerpt.exe é a ferramenta para ver o conteúdo de um arquivo de log de eventos ETW e está disponível em todas as plataformas compatíveis. Ele pode ser usado para gerar arquivos de despejo CSV, EVTX ou XML de um arquivo de log de eventos de ETW. Porém, o arquivo de saída gerado tem rastreamentos legíveis somente no Windows Vista e posterior. Estas instruções descrevem como gerar o arquivo de despejo XML e usá-lo com um arquivo xsl para exibir os rastreamentos em formato fácil (o arquivo xsl é muito trivial e pode ser alterado se formatos diferentes forem desejados).
Executar
tracerpt <EtlLogFileName> -o <OutputXMLFileName>
para criar um dump XML a partir do arquivo ETL binário (o tracerpt.exe cria o arquivo de saída no formato XML por padrão. Execute tracerpt -? Para ver outros formatos disponíveis).
Neste ponto, você pode ver as informações do rastreamento no arquivo XML. Além disso, você pode abrir o arquivo wstrace.htm e usar o arquivo de despejo xml e o arquivo wstrace.xsl para ver os rastreamentos em um formato mais fácil. Observe que os arquivos precisam estar na máquina local para poder usar este arquivo html no IE.
Ao habilitar o rastreamento, os administradores considerar que ele consome espaço em disco adicional e potência de computação. Um cliente ou aplicativo malicioso pode esgotar os recursos do sistema, a menos que as configurações de rastreamento sejam definidas com limites razoáveis. Ao usar o recurso de rastreamento de mensagens, as mensagens com informações confidenciais, como credenciais, informações pessoais, etc., podem ficar no disco ou serem visualizadas por qualquer pessoa que tenha acesso ao visualizador de eventos do sistema. Para atenuar esse problema, o rastreamento pode ser habilitado por usuários do Sistema ou do Administrador no Windows 2003 e posterior. O rastreamento de mensagens está desabilitado no Windows XP, onde qualquer usuário pode ativar o rastreamento.
Esta enumeração é usada com rastreamento: