Použití serveru SQL Server pro analýzu protokolů webu

Souhrn

Server IIS Internet poskytuje celou řadu formátů pro shromažďování dat ve formuláři webové protokoly. Tyto textové obyčejných souborů sítích zaneprázdněn někdy stane příliš velkou zátěž pro kontrolu a jsou ignorovány. Lepší způsob prohlížení dat. by tyto protokoly lepší prostředku být správci a správci webů.


Tento článek popisuje způsob, jak importovat do aplikace Microsoft SQL Server usnadňuje revizi souborů protokolu služby IIS protokoly služby IIS ve formátu Extended Logging World Wide Web Consortium (W3C). Techniky k dispozici mohou být změněny také jiných formátů souborů protokolu.

Další informace

Webové protokoly jsou textové soubory s oddělovači podle dokumentu RFC 2616, "Hypertext Transfer Protocol – HTTP/1.1" (http://www.rfc-editor.org/rfc/rfc2616.txt).

Ve formátu protokolování W3C Extended pole jsou poněkud self vysvětlující: data a času jsou právě co mohou zdát; [c-ip] je adresa IP klienta; [cs metoda] je metoda HTTP pro požadavek, který byl plněny; [cs-uri kmen] je dokument, který požádal; [cs-uri-query] je řetězec dotazu, který byl odeslán jako součást požadavku protokolu; [sc-status] je kód stavu vrácené serverem. [sc-bytes] je počet bajtů, které byly vráceny uživateli; [doba trvání] je čas v milisekundách, kterou trvalo serveru k dokončení zpracování žádosti; [cs(Cookie)] je soubor cookie nebo trvalá data v žádosti; a [CS(Referer))] je adresa URL předchozí server navštívený uživatelem. U formátu W3C Extended Logging existuje několik dalších polí, které lze zvolit, které jsou popsány v nápovědě služby IIS a na následujícím webu společnosti Microsoft:

Protokoly jsou formátovány takto:

Datumčasc-ipcs metodacs-uri kmendotaz v identifikátoru uri cssc-statussc-bytesDoba trváníCS(User-Agent))CS(cookie)CS(Referrer)


Vybraná pole v Vlastnosti webu na kartě webový server a u formátu W3C Extended, na kartu Rozšířené vlastnosti odpovídající hlavičku souboru protokolu. Webové deníky již tabulky v Microsoft SQL Server, je pravděpodobné, že z důvodu protokolování ODBC. Při použití pole protokolování do ODBC jsou však není konfigurovatelné. Nápovědu služby IIS obsahuje pokyny týkající se nastavení protokolování ODBC, který zahrnuje vytvoření tabulky ve struktuře očekávané pomocí Logtemp.sql.

Chcete-li vytvořit tabulku, ale aby rychleji a pro usnadnění automatizace procesu, použijte následující skript Query Analyzer pro vytvoření tabulky můžete použít Enterprise Manager:

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
)


Poznámka: některé z těchto polí jsou poměrně velké a nemusí být nezbytné pro soubory protokolu konkrétní revize.

Po vytvoření tabulky můžete importovat data pomocí Průvodce importem mapování ze souboru *.log do databáze a tabulky.

Pomocí Průvodce může být únavné, takže tímto slouží k urychlení importu webové protokoly:

BULK INSERT [dbo].[tablename] FROM 'c:\weblog.log'WITH (
FIELDTERMINATOR = ' ',
ROWTERMINATOR = '\n'
)


Všimněte si, že hromadné vložení se nezdaří, pokud nalezne řádky, které začínají znakem "#". Webové protokoly jedná se o první čtyři řádky, jakož i všechny ostatní instance při server je zastavena a spuštěna, protože řádky záhlaví jsou zapsány při restartování služby. V následujícím článku znalostní báze Microsoft Knowledge Base poskytuje nástroje a zdrojový kód odebrat tyto řádky a připravit pro hromadné vložení SQL Server do protokolu:

SOUBOR 296093 : nástroj PrepWebLog připraví protokoly služby IIS pro hromadné vložení SQL
Po dokončení importu můžete spouštět dotazy uspořádat data Query Analyzer. Například:

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' 
Tento dotaz se zobrazí názvy všech stránek, které trvalo déle než 20 sekund ke zpracování a které byly zpracovány od 4:30 do 17:30 hodin, a doba zpracování (v milisekundách) pro každý.

Všimněte si, že ve výchozí webové protokoly jsou zaznamenány do středoevropského času, tak pokud byly provedeny změny nahrát protokoly v místním čase, musíte nastavit pro místní čas při prohlížení protokolů.

Další ukázkový dotaz:
Select distinct [cs-uri-stem], [time-taken] from tablename where [time-taken] > (select avg([time-taken]) from tablename)order by [time-taken] desc
Tento dotaz najde průměr [-doba] pro každou položku v souboru protokolu a potom vybere [cs-uri kmen] a [-doba] a to uspořádá v sestupném pořadí podle [doba trvání]. Přidání klauzule "doba mezi" by mohl další izolaci výsledky tohoto dotazu.

Odkazy

Poznámka: Hromadné vložení nebude pracovat s SQL Server 7.0, ale funguje i v serveru SQL Server 2000. Další informace získáte klepnutím na níže uvedené číslo článku znalostní báze Microsoft Knowledge Base:

Chyba 272292 : Chyba 7399 při hromadné vložení do tabulky s výchozí sloupec DESETINNÝ nebo číselný sloupec
Další informace o LocalTimeRollover pro protokoly služby IIS a nastavení LogFileLocaltimeRollover:

Vlastnosti

ID článku: 296085 - Poslední kontrola: 19. 1. 2017 - Revize: 1

Váš názor