Você está offline; aguardando reconexão

Como usar o SQL Server para analisar logs da Web

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
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
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: Os logs são formatados da seguinte maneira:

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:

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 296085 - Última Revisão: 12/06/2015 02:03:18 - Revisão: 3.3

Microsoft Internet Information Server 3.0, Microsoft Internet Information Server 4.0, Microsoft Internet Information Services 5.0

  • kbnosurvey kbarchive kbmt kbhowto KB296085 KbMtpt
Comentários