mmdbcn 发表于 2015-8-12 11:19:50

使用LogParser分析IIS网站日志

  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 ,
date as ,
time as ,
c-ip as ,
s-ip as ,
s-port as ,
cs-method as ,
cs-uri-stem as ,
sc-bytes as ,
sc-status as ,
sc-substatus as ,
sc-win32-status as ,
time-taken as
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 ,
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
页: [1]
查看完整版本: 使用LogParser分析IIS网站日志