Como usar o SQL Server para analisar logs da Web

Traduções deste artigo Traduções deste artigo
ID do artigo: 296085 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Sumário

Servidor/IIS fornece uma série de formatos para coletar dados na forma de logs da web. Para sites ocupados, esses arquivos simples com base em texto um dia se tornar muito de carga para revisar e são ignorados. Uma maneira melhor de revisar os dados seria tornar esses logs um recurso de melhor para os administradores e web mestres.

Este artigo descreve um método para importar logs do IIS no formato de log estendido World Wide Web Consortium (W3C) para o Microsoft SQL Server para facilitar a revisão dos arquivos de log do IIS. As técnicas fornecidas também podem ser alteradas para outros formatos de arquivo de log.

Mais Informações

Logs da Web são arquivos de texto delimitado conforme especificado pela RFC 2616, "Hypertext Transfer Protocol--HTTP/1.1" (http://www.rfc-editor.org/rfc/rfc2616.txt).

No formato de log estendido do W3C os campos são um pouco auto explicação: dados e hora estão apenas parecem [c-ip] é o endereço IP do cliente [cs-method] é o método HTTP para a solicitação foi atendida; [cs-uri-stem] é o documento que foi solicitado; [cs-uri-query] é a seqüência de consulta que foi enviada como parte da solicitação sendo registrada; [sc-status] é o código de status retornado pelo servidor; [sc-bytes] é o número de bytes que foram retornados para o usuário; [tomada tempo] é o tempo em milissegundos que levou para o servidor concluir o processamento da solicitação; [cs(Cookie)] é o cookie ou dados persistentes na solicitação; e [cs(Referer)] é a URL do site anterior visitado pelo usuário. Para o formato de log estendido do W3C, há um número de campos adicionais que podem ser escolhidas, que está descrito na Ajuda do IIS e no site da Microsoft:
http://msdn.microsoft.com/en-us/library/ms525152.aspx
Os logs são formatados da seguinte maneira:

Recolher esta tabelaExpandir esta tabela
Datatempoc-ipcs-methodcs-uri-stemcs-uri-consultasc-statussc-bytestomada de tempocs(User-Agent)cs(Cookie)cs(Referrer)


O cabeçalho dos arquivos de log corresponde aos campos escolhidos nas Propriedades do site da Web, na guia Site e no caso de log estendido do W3C, guia Propriedades estendidas . Se os logs da web já estiverem em uma tabela no Microsoft SQL Server, é provável causa de log de ODBC. No entanto, quando você estiver usando os campos de log de ODBC não é configurável. Ajuda do IIS tem instruções sobre como configurar log de ODBC, que inclui o uso Logtemp.sql para criar a tabela na estrutura de esperado.

Você pode usar Enterprise Manager para criar a tabela, mas para torná-lo mais rápido e para ajudar na automação do processo, em vez disso, usar o seguinte script no Query Analyzer para criar a tabela:
CREATE TABLE [dbo].[tablename] (
	[date] [datetime] NULL,
	[time] [datetime] NULL ,
	[c-ip] [varchar] (50) NULL ,
	[cs-method] [varchar] (50) NULL ,
	[cs-uri-stem] [varchar] (255) NULL ,
	[cs-uri-query] [varchar] (2048) NULL ,
	[sc-status] [int] NULL ,
	[sc-bytes] [int] NULL ,
	[time-taken] [int] NULL ,
	[cs(User-Agent)] [varchar] (255) NULL ,
	[cs(Cookie)] [varchar] (2048) NULL ,
	[cs(Referer)] [varchar] (2048) NULL 
	)
				

Observe que alguns desses campos são muito grandes e não podem ser necessários para revisar os arquivos de log específico.

Quando a tabela tiver sido criada, você pode importar os dados usando o Assistente de importação, o mapeamento do arquivo *.log para o banco de dados e a tabela.

Usando o assistente pode ser entediante, para que o seguinte possa ser usado para agilizar a importar os logs da web:
BULK INSERT [dbo].[tablename] FROM 'c:\weblog.log'
WITH (
    FIELDTERMINATOR = ' ',
    ROWTERMINATOR = '\n'
)
				

Observe que a inserção em massa falhará quando encontra linhas que começam com "#". Para logs da web, isto inclui as quatro primeiras linhas, bem como quaisquer outras instâncias, quando o servidor é interrompido e iniciado, desde que as linhas de cabeçalho são gravadas quando o serviço for reiniciado. O seguinte artigo da Base de dados de Conhecimento da Microsoft fornece um utilitário e código-fonte para remover essas linhas e preparar o log para a inserção em massa para o SQL Server:
296093ARQUIVO: Utilitário PrepWebLog prepara logs do IIS para SQL Bulk Insert
Quando a importação estiver concluída, você pode usar o Query Analyzer para executar consultas para organizar os dados. Por exemplo:
Select [cs-uri-stem], [time-taken] from tablename where [time-taken] >= 20000 and time between '1899-12-30 16:30:00.000' and '1899-12-30 17:30:00.000' 
				
esta consulta exibe os nomes de todas as páginas que levou mais de 20 segundos para processar e que foram processadas entre 4: 30 e 17 h 30, juntamente com o tempo de processo (em milissegundos) para cada.

Observe que por padrão da web logs são gravados no Greenwich, assim, a menos que as alterações feitas para registrar os logs no horário local, você deve ajustar para hora local ao revisar os logs de.

Outro exemplo de consulta:
Select distinct [cs-uri-stem], [time-taken] from tablename where [time-taken] > (select avg([time-taken]) from tablename)order by [time-taken] desc
				
esta consulta encontra a média [hora-tomada] para cada entrada no arquivo de log e seleciona o [cs-uri-stem] e o [hora-tomada] e organiza isso em decrescente order by [tomada tempo]. Adicionando uma cláusula "tempo entre" poderia isolar ainda mais os resultados dessa consulta.

Referências

Observação: Inserir em massa não funcionará com o SQL Server 7.0, mas ele funciona com o SQL Server 2000. Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
272292Erro: Erro 7399 em quando você massa inserir em tabela com colunas padrão em um NUMERIC ou DECIMAL coluna
Para obter mais informações sobre LocalTimeRollover para os logs do IIS e a configuração LogFileLocaltimeRollover:
http://msdn.microsoft.com/en-us/library/microsoft.web.administration.sitelogfile.localtimerollover.aspx

Propriedades

ID do artigo: 296085 - Última revisão: terça-feira, 21 de novembro de 2006 - Revisão: 3.3
A informação contida neste artigo aplica-se a:
  • Microsoft Internet Information Server 3.0
  • Microsoft Internet Information Server 4.0
  • Microsoft Internet Information Services 5.0
Palavras-chave: 
kbmt kbhowto KB296085 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 296085

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com