LogParser是個強大的,多功能的分析工具,它統一的查詢方式適用於各種文本類型文件(例如日志文件,XML文件,CSV文件)和操作系統層面數據文件(例如事件日志,注冊表,文件系統,以及活動目錄目錄服務)。最新的LogParser 2.2能方便地分析以下類型的文件:IISW3C, NCSA, IIS, IISODBC, BIN, IISMSID, HTTPERR, URLSCAN, CSV, TSV, W3C, XML, EVT, ETW, NETMON, REG, ADS, TEXTLINE, TEXTWORD, FS 和 COM。雖然命令行界面並不那么直觀,但是LogParser所附的詳細文檔和”Samples\Queries“目錄里的范例可以幫助我們迅速掌握這個工具。本文不介紹LogParser的基本用法,而是通過兩個真實的場景來演示如何使用LogParser分析IIS網站日志。
場景1:查找網站響應最慢的20個請求背景
您對一個運行於IIS上的網站性能剛到不滿意。首先您需要從IIS日志中找到響應最慢的頁面,以此作為診斷問題的開始。
方法:在LogParser命令行下運行以下命令:
LOGPARSER -i:IISW3C file:C:\Log\Slow20FilesInIIS.sql -o:DataGrid -q:off
Slow20FilesInIIS.sql內容:
Select Top 20 LogRow as [Line Number], date as [Date], time as [Time], c-ip as [Client-IP], s-ip as [Server IP], s-port as [Server Port], cs-method as [Request Verb], cs-uri-stem as [Request URI], sc-bytes as [Bytes sent], sc-status as [Status], sc-substatus as [Sub-status], sc-win32-status as [Win 32 Status], time-taken as [Time Taken] From C:\ex130312.log Order by time-taken desc
這里,-I:IISW3C說明我們想查詢IIS W3C日志;-o:DataGrid說明結果會以數據表格形式給出:
場景2:查找網站中最常訪問的20個.aspx頁面
當對IIS網站進行性能優化的時候,您想了解哪些頁面是最經常被訪問的,那么對這些頁面進行性能優化也通常能對整個服務器的響應起到幫助 – 盡管不是必然的,但是如果這些經常被訪問的頁面也是在場景1里出現的響應慢的頁面時,那他們會是調試性能很好的入口點。
方法:在LogParser命令行下運行以下命令:
LOGPARSER -i:IISW3C file:C:\Log\Popular20FileInIIS.sql -chartType:Bar3D -groupSize:640x480 -view:on
Popular20FileInIIS.sql內容
Select Top 20 cs-uri-stem as [Request URI], COUNT(*) AS Hits INTO MyChart.gif FROM C:\ex060813.log Group by cs-uri-stem ORDER BY Hits DESC
這里-chartType:Bar3D告訴LogParser工具需要哪種輸出圖形,-groupSize定義了輸出圖片的長寬像素數。
輸出結果如下:
由此可見,LogParser在我們的日常數據分析中確實是非常有幫助的。前面的演示只是介紹了LogParser的冰山一角,您甚至可以使用Visual C#, VB.Net等高級語言創建基於LogParser的工具。
資源:
• What's new in Log Parser 2.2
http://www.microsoft.com/technet/scriptcenter/tools/logparser/lpfeatures.mspx
• How Log Parser 2.2 works
http://technet.microsoft.com/en-us/library/bb878032.aspx
• Microsoft Log Parser Toolkit – a book on Log Parser!
http://www.microsoft.com/technet/scriptcenter/tools/logparser/default.mspx
希望以上內容對您有所幫助
Richard Chen