ASP.NET Coluna de Voz de Suporte
Analisador de Registos 2.2 e ASP.NET
Para personalizar esta coluna de acordo com as suas necessidades, queremos convidá-lo para submeter as suas ideias sobre tópicos que lhe interessam e problemas que pretende ver abordados em futuros artigos da Base de Dados de Conhecimento e colunas voz de suporte. Pode submeter as suas ideias e comentários através do formulário Pedir. Também existe uma ligação para o formulário na parte inferior desta coluna.
Bem-vindo à Coluna de Voz de Suporte do ASP.NET. O meu nome é Rahul Soni e estou com a Microsoft há cerca de dois anos. Na coluna deste mês, vou abordar alguns dos factos sobre o Log Parser 2.2. Antes de entrarmos em cenários específicos, permita-me que descreva a ferramenta Analisador de Registos.
Acerca de
O Analisador de Registos é uma ferramenta muito avançada e versátil que fornece acesso universal a dados baseados em texto, como ficheiros de registo, ficheiros XML e ficheiros CSV, bem como origens de dados chave no sistema operativo Microsoft Windows, como o registo de eventos, o registo, o sistema de ficheiros e o serviço de diretório do Active Directory. Clique
aqui para transferir a ferramenta. Nesta versão, pode analisar facilmente os seguintes ficheiros a partir da ferramenta Análise de Registos:
IISW3C, NCSA, IIS, IISODBC, BIN, IISMSID, HTTPERR, URLSCAN, CSV, TSV, W3C, XML, EVT, ETW, NETMON, REG, ADS, TEXTLINE, TEXTWORD, FS e COM. Concordo que a interface da linha de comandos não é muito intuitiva e irá encontrá-la assim que instalar e executar a ferramenta. No entanto, o que falta à ferramenta no sentimento intuitivo está a ser corrigido pela documentação fornecida para a ferramenta. Vou dar um pequeno conselho aqui: não deixes que a interface da linha de comandos o desative tão cedo. Esta ferramenta é obrigatória no toolkit de um geek e ajuda-o muito, especialmente se quiser resolver problemas do ponto de vista do desempenho.
Não vou discutir "como" utilizar a ferramenta Análise de Registos porque a documentação é bastante boa e a pasta de instalação também contém uma pasta "Samples\Queries" que contém bastantes exemplos.
Assim, depois de terminar a minha promoção da ferramenta Log Parser, deixe-me voltar aos cenários de que estava a falar.
Cenário 1: Analisar ficheiros de texto grandes para um texto específico
Um pequeno fundo do problema
O cliente tem um problema de "Acesso Negado" quando efetuou alguma ação. Recomenda que o cliente utilize outra ferramenta brilhante com o nome
Filemon e reproduza o problema. Se for um problema com as ACLs de recursos, a ferramenta Filemon conseguirá detetar o erro. Agora, peça ao cliente para lhe enviar o ficheiro de registo filemon guardado. Aqui vem a parte infeliz. Obtém o ficheiro (por exemplo, Filemon.log), mas descobre que o tamanho é enorme (o Filemon regista muitos dados!). O bloco de notas parece estar bloqueado e será dolorosamente lento para encontrar as linhas "Acesso Negado" no ficheiro de registo. O Microsoft Office Excel recusar-se-á a abrir completamente o ficheiro. E agora?
Resposta: Abra a janela de comandos do Analisador de Registos e utilize o seguinte comando:
LOGPARSER "Select Text from C:\Filemon.log where Text like '%Access Denied%'" -i:TEXTLINE -q:OffWhat we are telling the Log Parser tool is to parse through each line (Text) from the given file (C:\Filemon.log) where the line contains 'Access Denied'. O comutador da linha de comandos -i:TEXTLINE especifica o formato de entrada e o parâmetro -q:Off da linha de comandos indica que é verboso (-q[:ON|DESATIVADO]:modo silencioso;). Se ativar o comutador da linha de comandos -q, as estatísticas apresentadas e o nome do campo (Texto) na saída abaixo estarão ausentes.
Saída de exemplo
Texto7447 1:49:24 PM explorer.exe:1200 DIRETÓRIO C:\ Estatísticas De Acesso NegadoLements processados: 640444
Saída dos elementos: 1
Tempo de execução: 12,75 segundos
Como evitar premir ENTER várias vezes se o número de registos devolvidos pela consulta for superior a 10?
Resposta: Utilize o parâmetro -rtp:-1 nas suas consultas!
Este será um parâmetro necessário caso pretenda redirecionar a saída para um ficheiro. Além disso, quando escreve em STDOUT, os registos de saída são apresentados em lotes compostos por um número de linhas iguais ao valor especificado para este parâmetro. Depois de um lote de linhas ser apresentado, irá pedir ao utilizador para premir uma tecla para apresentar o próximo lote de linhas. Especificar "-1" para este parâmetro desativa completamente a criação de batches!
Utilizar ficheiros de consulta
Outra forma de obter os mesmos resultados de uma forma mais limpa é criar um ficheiro de consulta. Desta forma, pode ajustar facilmente o ficheiro de consulta e executá-lo a partir da linha de comandos da ferramenta Análise de Registos. Além disso, pode criar facilmente uma GUI de acordo com o seu gosto. A GUI carrega a consulta SQL guardada e executa a consulta com a ferramenta Analisador de Registos.
Se quiser obter o mesmo efeito (como no Cenário 1) das consultas SQL, pode fornecer o seguinte comando:
LOGPARSER -i:TEXTLINE file:C:\LPQ\SearchAnyTextfile.sql -q:offC:\LPQ\SearchAnyTextFile.sql contém as seguintes informações:
Nota Criar uma pasta LPQ no seu C:\ para utilizar os exemplos apresentados nesta coluna.
Select Text as LineFromFile
FROM C:\Filemon.log
WHERE Text
LIKE '%Access Denied%'
Se reparar, a consulta parece muito mais limpa agora e faz mais sentido. Desta forma, também pode criar consultas mais complexas e maiores e tudo se ajustará à sua linha de comandos porque está a utilizar o . Ficheiro SQL em vez de toda a consulta. De qualquer forma, não é possível ajustar mais de 260 carateres na linha de comandos!
Mantendo as vantagens de utilizar ficheiros de consulta, utilizarei este método nos seguintes cenários. Tenho todas as minhas consultas guardadas em C:\LPQ com uma extensão .sql (pode utilizar a sua).
Cenário 2: localizar os 10 ficheiros maiores de uma pasta específica, incluindo as respetivas subpastas
Um pequeno fundo do problema
Tem uma pasta e existem bastantes subpastas e ficheiros na mesma. Quer descobrir os 10 maiores ficheiros nessa pasta, incluindo as respetivas subpastas.
Sei que, para uma pasta específica, pode simplesmente alterar a vista (no menu Ver , clique em Detalhes) no Explorador do Windows e ordenar a vista por tamanho. No entanto, o problema aqui é que também tem de ter em conta os conteúdos da subpasta.
Resposta: Abra a janela de comandos da ferramenta Log Parser e utilize o seguinte comando:
LOGPARSER -i:FS file:C:\LPQ\Top10Files.sql -q:off -Recurse:-1Top10Files.sql contém o seguinte:
SELECT TOP 10
Path,
Name,
Size,
Attributes
FROM 'C:\Program Files\Microsoft Office\*.*'
ORDER BY Size DESC
Aqui -i:FS significa que estamos a consultar o sistema de ficheiros. Pode ver a lista completa de campos de formato de entrada FS na documentação e enquadrar a consulta em conformidade.
-Recurse:-1 implica que queremos incluir todas as subpastas. Se não quiser todas as subpastas ou quiser limitar a recursão, utilize 0, 1, 2, etc. O número implica a profundidade em que o analisador irá entrar. 0 significa que não há recursão, 2 significa que o analisador se repete até à profundidade 2, etc.
Saída de exemplo
Path Name Size Attributes
------------------------------------------------------------ ------------ -------- ----------
C:\Program Files\Microsoft Office\Office10\WINWORD.EXE WINWORD.EXE 10738448 -A--R----
C:\Program Files\Microsoft Office\Office10\EXCEL.EXE EXCEL.EXE 9358096 -A--R----
C:\Program Files\Microsoft Office\Office10\OUTLLIB.DLL OUTLLIB.DLL 6326984 -A-------
C:\Program Files\Microsoft Office\Office10\POWERPNT.EXE POWERPNT.EXE 6093584 -A--R----
C:\Program Files\Microsoft Office\Office10\MSOWC.DLL MSOWC.DLL 3041880 -A-------
C:\Program Files\Microsoft Office\Office10\CLIPPIT.ACS CLIPPIT.ACS 2904417 -A-------
C:\Program Files\Microsoft Office\Office10\GRAPH.EXE GRAPH.EXE 2144824 -A-------
C:\Program Files\Microsoft Office\Office10\1033\OUTLLIBR.DLL OUTLLIBR.DLL 1977032 -A-------
C:\Program Files\Microsoft Office\Office10\1033\XLMAIN10.CHM XLMAIN10.CHM 1646072 -A-------
C:\Program Files\Microsoft Office\Office10\MSOWCW.DLL MSOWCW.DLL 1200177 -A-------
StatisticsElements processados: 1000
Saída de elementos: 10
Tempo de execução: 0,42 segundos
Cenário 3: localizar as 20 páginas mais lentas no Web site
Um pequeno fundo do problema
Está a utilizar Serviços de Informação Internet da Microsoft (IIS) 6, tem alguns sites ASP.NET e não está muito satisfeito com o desempenho. Quer otimizar o servidor e saber mais sobre as 20 páginas que estão a demorar mais tempo a servir a partir do servidor Web. Não é como se determinasse as páginas que demoram mais tempo, corrigi-la e os seus problemas fossem resolvidos. Infelizmente, não existem marcas de prata para resolver problemas de desempenho. Pelo menos deve haver uma maneira de começar. Correto?
Resposta: Abra a janela de comandos do Analisador de Registos e utilize o seguinte comando:
LOGPARSER -i:IISW3C file:C:\LPQ\Slowest20FilesInIIS.sql -o:DataGrid -q:offSlowest20FilesInIIS.sql contém o seguinte código de exemplo.
Select Top 20
LogRow as [Line Number],
date as [Date],
time as [Time],
c-ip as [Client-IP],
s-ip as [Server IP],
s-port as [Server Port],
cs-method as [Request Verb],
cs-uri-stem as [Request URI],
sc-bytes as [Bytes sent],
sc-status as [Status],
sc-substatus as [Sub-status],
sc-win32-status as [Win 32 Status],
time-taken as [Time Taken]
From
C:\ex060813.log
Order by time-taken desc
Aqui, -i:IISW3C significa que estamos a consultar os registos W3C do IIS. Pode ver a lista completa de campos de formato de entrada IISW3C na documentação e enquadrar a consulta em conformidade.
-o:DataGrid implica que a saída deve ser mostrada numa grelha de dados da seguinte forma:
Nota: para utilizar esta consulta, deve utilizar o Registo IISW3C e ter ativado as propriedades do Registo Avançado. (Abra as propriedades do Web site, clique no separador Web Site , clique para selecionar Ativar Registo e, em seguida, defina o formato de registo Ativo como Formato de Ficheiro de Registo Expandido W3C. Clique em Propriedades, clique no
separadorAvançadas e, em seguida, clique para selecionar todas as opções.)
Cenário 4: localizar as 20 páginas .aspx mais utilizadas no Web site
Um pequeno fundo do problema
Está a utilizar o IIS 6, tem algumas ASP.NET Web sites e quer saber os ficheiros .aspx mais utilizados para que, se ajustar o desempenho dessas páginas, eventualmente todo o Web site/servidor beneficie. É sempre melhor passar tempo a ajustar as páginas mais utilizadas do que as páginas que são utilizadas com moderação. (Embora possam existir exceções a esta regra. Digamos que a página utilizada com moderação é uma página muito má que causa uma utilização elevada da CPU!) Agora, se descobrir que uma determinada página demora muito tempo a ser servida (Cenário 3) e a página for uma das páginas mais utilizadas, deve sempre confirmar que a página se comporta bem sob stress.
Resposta: Abra a janela de comandos da ferramenta Log Parser e utilize o seguinte comando:
LOGPARSER -i:IISW3C file:C:\LPQ\Popular20FilesInIIS.sql -chartType:Bar3D -groupSize:640x480 -view:onPopular20FilesInIIS.sql contém o seguinte código de exemplo.
Select Top 20
cs-uri-stem as [Request URI],
COUNT(*) AS Hits
INTO MyChart.gif
FROM C:\ex060813.log
Group by cs-uri-stem ORDER BY Hits DESC
Neste caso, -chartType:Bar3D indica à ferramenta Analisador de Registos que tipo de gráfico deve preparar. O parâmetro -groupSize especifica a largura e altura da imagem de destino, em píxeis. O conjunto de tipos de gráfico disponíveis depende da versão dos Componentes Web do Microsoft Office instalados no computador local.
Eis o aspeto da saída:
Como já viu, podem existir várias formas de a ferramenta Parser de Registos ser realmente útil na análise dos dados de vários registos. Só a criatividade é o limite aqui! Existem formas quase ilimitadas de os dados refletirem uma imagem muito melhor para si e pode ser algo em que pode agir. O que tocámos é apenas a ponta do iceberg! Também pode utilizar idiomas de alto nível, como o Microsoft Visual C#, Microsoft Visual Basic .NET, etc. para criar programas úteis com o poder da ferramenta Parser de Registos. Consulte a secção "Recursos" abaixo.
Recursos
-
Novidades no Log Parser 2.2
http://www.microsoft.com/technet/scriptcenter/tools/logparser/lpfeatures.mspx
-
Como funciona o Analisador de Registos 2.2
-
Microsoft Log Parser Toolkit – um livro sobre o Analisador de Registos!
http://www.microsoft.com/technet/scriptcenter/tools/logparser/default.mspx
Gostaria de discutir mais cenários para a ferramenta Parser de Registos e criei uma nova secção no meu blogue apenas para a ferramenta Parser de Registos. Se tiver alguma sugestão para cenários ou consultas de ferramentas do Analisador de Registos que pretenda partilhar, envie-me um e-mail para
rahulso@microsoft.com e publicaria o mesmo o mais rapidamente possível no seguinte Web site:
https://learn.microsoft.com/archive/blogs/rahulso/
Como sempre, pode submeter ideias sobre tópicos que pretende abordar em colunas futuras ou na Base de Dados de Conhecimento através do formulário Pedir.
Os produtos de terceiros que este artigo aborda são fabricados por empresas independentes da Microsoft. A Microsoft não concede qualquer garantia, implícita ou não, relativamente ao desempenho ou fiabilidade destes produtos.