Utilizzo di SQL Server per l'analisi dei registri Web

Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell’utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell’utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 296085
Questo articolo è stato archiviato. L’articolo, quindi, viene offerto “così come è” e non verrà più aggiornato.
Sommario
Internet Information Server/Services fornisce una serie di formati per raccogliere i dati sotto forma di registri web. Per i siti occupati, questi file flat basati su testo a un giorno diventano eccessivo carico di lavoro per esaminare e vengono ignorati. Un modo migliore per esaminare i dati renderebbe questi registri una risorsa migliore per gli amministratori e web master.

In questo articolo viene descritto un metodo per importare i registri IIS in formato esteso W3C (World Wide Web Consortium) in Microsoft SQL Server per semplificare l'analisi dei file di registro IIS. Le tecniche fornite possono essere modificate anche per altri formati di file registro.
Informazioni
I registri Web sono file di delimitato testo come specificato in RFC 2616, "Hypertext Transfer Protocol--HTTP/1.1" (http://www.rfc-editor.org/rfc/rfc2616.txt).

In formato registrazione W3C estesa i campi sono piuttosto self descrittivo: data e ora solo sembrano; [c-IP] è l'indirizzo IP del client; [cs-method] è il metodo HTTP per la richiesta che è stato soddisfatto; [cs-uri-stem] è il documento che è stata richiesta; [query uri cs] è la stringa di query che è stata inviata come parte della richiesta in corso la registrazione; [sc-status] è il codice di stato restituito dal server; [sc-byte] è il numero di byte che sono stati resi all'utente; di [time preso] è il tempo in millisecondi, impiegato per completare l'elaborazione della richiesta il server, di [cs(Cookie)] è il cookie o dei dati permanenti nella richiesta; e [cs(Referer)] è l'URL del sito precedente visitato dall'utente. Per il formato registrazione W3C estesa, esistono numerosi campi aggiuntivi che possono essere scelti, descritti nella Guida di IIS e il seguente sito Web Microsoft: I registri sono il seguente formati:

Dataorac-ipcs-methodcs-uri-stemuri cs-querysc-statosc-byteTime presocs(User-Agent)cs(Cookie)cs(Referrer)


L'intestazione del file di registro corrisponde ai campi scelto nella finestra Proprietà del sito Web, nella scheda sito Web e, nel caso di registrazione W3C estesa, la scheda Proprietà estese . Se i registri web sono già in una tabella di Microsoft SQL Server, è probabile causa della registrazione ODBC. Tuttavia, quando si utilizza ODBC registrazione i campi non sono configurabili. Guida in linea di IIS include istruzioni sulla configurazione di registrazione ODBC, che include l'utilizzo di Logtemp.sql per creare la tabella nella struttura del prevista.

È possibile utilizzare Enterprise Manager per creare la tabella, ma per rendere più veloce e per aiutare l'automazione del processo, utilizzare lo script seguente in Query Analyzer per creare la tabella:
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 	)				

Si noti che parte di questi campi sono di grandi dimensioni e potrebbe non essere necessari per la revisione dei file di log specifico.

Una volta creata la tabella, è possibile importare i dati utilizzando l'importazione guidata, mapping dal file *.log il database e la tabella.

Mediante la creazione guidata può essere noioso, è possibile utilizzare quanto segue per velocizzare l'importazione i registri web:
BULK INSERT [dbo].[tablename] FROM 'c:\weblog.log'WITH (    FIELDTERMINATOR = ' ',    ROWTERMINATOR = '\n')				

Si noti che l'inserimento di massa avrà esito negativo quando incontra righe che iniziano con "#". Per i registri web, questo include le prime quattro righe, così come eventuali altre istanze quando il server viene interrotto e avviato, poiché le linee di testata vengono scritte quando il servizio viene riavviato. Il seguente articolo fornisce un utilità e di un codice sorgente per rimuovere tali righe e preparare il registro per l'inserimento di massa in SQL Server:
296093FILE: Utilità PrepWebLog Prepara registri IIS per l'inserimento di massa SQL
Una volta completata l'importazione, è possibile utilizzare Query Analyzer per eseguire query per organizzare i dati. Ad esempio:
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' 				
questa query è in verrà di visualizzare i nomi dei tutte le pagine che è durata più di 20 secondi per elaborare e che sono stati elaborati compreso tra 4: 30 e 5: 30 PM, insieme con il tempo di processo (in millisecondi) per ogni.

Si noti che da web predefinito vengono annotati nei registri ora di Greenwich, pertanto, a meno che le modifiche apportate per registrare i registri in ora locale, è necessario modificare per ora locale quando si esaminano i registri.

Un'altra query di esempio:
Select distinct [cs-uri-stem], [time-taken] from tablename where [time-taken] > (select avg([time-taken]) from tablename)order by [time-taken] desc				
questa query trova la media [time-preso] per ogni voce nel file di registro e quindi seleziona il [cs-uri-stem] e la [time-preso] e consente di organizzare in decrescente da [time preso]. Aggiungendo una clausola "intervallo tra" Impossibile isolare ulteriormente i risultati della query.
Riferimenti
Nota: Inserimento di massa non funzionerà con SQL Server 7.0 ma funziona con SQL Server 2000. Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
272292BUG: Errore 7399 quando si massa Inserisci in tabella con colonne di default su un NUMERIC o DECIMAL colonna
Per ulteriori informazioni su LocalTimeRollover per i registri di IIS e l'impostazione LogFileLocaltimeRollover:

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 296085 - Ultima revisione: 12/06/2015 02:03:14 - Revisione: 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 KbMtit
Feedback