Como utilizar o SQL Server para analisar registos Web

Traduções de Artigos Traduções de Artigos
Artigo: 296085 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Sumário

Servidor/serviços de informação Internet fornece um número de formatos para reunir dados do formulário de registos web. Para sites ocupados, estes ficheiros baseados em texto simples algures tornam-se muito da carga para rever e são ignorados. Melhor forma de rever os dados faria estes registos um melhor recurso para os administradores e modelos globais de web.

Este artigo descreve um método para importar registos do IIS em formato de registo expandido de World Wide Web Consortium (W3C) para o Microsoft SQL Server para facilitar a revisão dos ficheiros de registo do IIS. Também podem ser alteradas técnicas fornecidas para outros formatos de ficheiro de registo.

Mais Informação

Os registos Web são ficheiros de texto delimitado tal como especificado pelo 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 explicativo um pouco automático: dados e hora são apenas o que parece [c-ip] é o endereço IP do cliente [cs-method] é o método HTTP para o pedido foi satisfeito; [cs-uri-stem] é o documento ter sido pedido; [cs-uri-query] é a cadeia de consulta que foi enviada como parte do pedido a ser registada; [sc-status] são o código de estado devolvido pelo servidor; [sc-bytes] é o número de bytes que foram devolvidos ao utilizador; [tomada tempo] é o tempo em milissegundos que demorou para o servidor concluir o processamento do pedido; [cs(Cookie)] é o cookie ou dados persistentes no pedido; e [cs(Referer)] é o URL do site anterior visitado pelo utilizador. Para o formato de log estendido do W3c, existem um número de campos adicionais que podem ser escolhidos, que são descritos na ajuda do IIS e no seguinte Web site da Microsoft:
http://msdn.microsoft.com/en-us/library/ms525152.aspx
Os registos são formatados da seguinte forma:

Reduzir esta tabelaExpandir esta tabela
Datatempoc-ipcs-methodcs-uri-stemcs-uri-consultasc-statussc-bytestomada de tempoCS(User-Agent)CS(Cookie)CS(Referrer)


Cabeçalho de ficheiros de registo corresponde aos campos seleccionados nas Propriedades do Web site, no separador Web Site e, em caso do registo expandido de W3C, separador de Propriedades expandidas . Se os registos web estiverem numa tabela do Microsoft SQL Server, é provável de registo de ODBC. No entanto, quando estiver a utilizar os campos de registo de ODBC não é configurável. Ajuda do IIS tem instruções sobre como configurar registo de ODBC, que incluem a utilização Logtemp.sql para criar a tabela na estrutura do esperado.

Pode utilizar o Enterprise Manager para criar a tabela, mas para tornar mais rápido e ajudar na automatização do processo, em vez disso, utilize o seguinte script no analisador de consultas 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 
	)
				

Note que alguns destes campos são bastante grandes e não poderão ser necessários para rever os ficheiros de registo específico.

Uma vez criada a tabela, pode importar os dados utilizando o Assistente de importação, o mapeamento do ficheiro *.log para a base de dados e tabela.

Pode ser aborrecida, utilizando o Assistente para o seguinte possa ser utilizado para acelerar a importar registos web:
BULK INSERT [dbo].[tablename] FROM 'c:\weblog.log'
WITH (
    FIELDTERMINATOR = ' ',
    ROWTERMINATOR = '\n'
)
				

Tenha em atenção que a inserção em massa falhará quando encontra as linhas que começam com "#". Para registos web, isto inclui as primeiras quatro linhas, bem como quaisquer outras instâncias quando o servidor é parado e iniciado, uma vez que as linhas de cabeçalho são escritas quando o serviço de mensagens em fila for reiniciado. O artigo da base de dados de conhecimento da Microsoft que se segue fornece um utilitário e código de origem para remover estas linhas e preparar o registo para a inserção em massa para o SQL Server:
296093FICHEIRO: Utilitário PrepWebLog prepara registos do IIS para inserção em massa SQL
Quando a importação estiver concluída, pode utilizar o analisador de consultas 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 vai apresentar os nomes de todas as páginas que demorou mais do que 20 segundos para processar e que foram processadas entre 4: 30 e 5: 30, juntamente com o tempo de processo (em milissegundos) para cada.

Tenha em atenção que por predefinição web logs são gravados no Meridiano de Greenwich, por isso, a menos que as alterações terem sido efectuadas para registar os registos na hora local, tem de ajustar para hora local quando consulte os registos.

Outra consulta de exemplo:
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 localiza a média [tempo-efectuada] para cada entrada no ficheiro de registo e selecciona a [cs-uri-stem] e o [tempo-assumida] e organiza no descendente por [tomada tempo]. Adicionar uma cláusula de "tempo entre" foi isolar ainda mais os resultados desta consulta.

Referências

NOTA: Inserção em massa não funcionarão com o SQL Server 7.0, mas funciona com o SQL Server 2000. Para obter informações adicionais, clique no número de artigo existente abaixo para visualizar o artigo na base de dados de conhecimento da Microsoft:
272292Erro: Erro 7399 em quando, massa inserir na tabela com coluna predefinido num NUMERIC ou DECIMAL coluna
Para obter mais informações sobre LocalTimeRollover para os registos do IIS e a definição LogFileLocaltimeRollover:
http://msdn.microsoft.com/en-us/library/microsoft.web.administration.sitelogfile.localtimerollover.aspx

Propriedades

Artigo: 296085 - Última revisão: 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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