设为首页 收藏本站
查看: 1088|回复: 0

[经验分享] LogParser的IIS网站分析技巧

[复制链接]

尚未签到

发表于 2015-8-12 14:36:40 | 显示全部楼层 |阅读模式
  LogParser介绍
  LogParser是微软的一个免费的日志分析工具,它支持许多格式的文件类型。主要有如下几类:
  · IIS 文件格式
  Ø IISW3C: IIS产生的W3C扩展格式
  Ø IIS: IIS专有格式.
  Ø BIN: IIS的BIN格式.
  Ø IISODBC: IIS可以把日志存储在数据库中。LogParser可以分析存储在数据库中的IIS日志.
  Ø HTTPERR: Http.sys日志格式.
  Ø URLSCAN: URLScan 日志格式.
  · 通用文本格式
  Ø CSV: 逗号分隔符文件.
  Ø TSV: 以空格或者以制表符分隔的文件.
  Ø XML: XML格式.
  Ø W3C: W3C格式.
  Ø NCSA: NCSA格式.
  Ø TEXTLINE: 普通文件文件. LogParser可以按行返回内容
  Ø TEXTWORD: LogParser可以把按字返回内容.
  · 系统信息
  EVT: 事件日志文件.
  FS: 文件目录.
  REG: 注册表格式.
  ADS: AD信息.
  另外还有一些其它格式,如NetMon, ETW等,在此不详述了。
LogParser原理
  LogParser架构如下图所示:
DSC0000.gif
  注:图片引自http://e-mojo.net/wp-content/uploads/2009/11/logparser_architecture.gif
  LogParser的核心为类SQL引擎,主要用于LogParser的SQL解析。使用LogParser我们可以把日志文件转换为很多格式,然后,我们可以用自己顺手的工具对其进行分析。
  需要注意的是,如果我们要输出图形格式,必须安装Office Web组件。

IIS高级日志分析
  本文主要介绍一些高级IIS日志分析功能,基本的分析功能请参考这些BLOG:
  http://hi.baidu.com/tpxc/blog/item/b6e4561060f2ecf9c2ce7931.html
  http://www.iyunv.com/yonglun/archive/2007/02/20/652929.html

每天用户访问数
  logparser "SELECT To_Date(TO_LOCALTIME(TO_TIMESTAMP(date, time))) AS [Date1], c-ip AS CIP INTO IISHC_DistinctClientIPPerDay.csv FROM *.log GROUP BY [Date1], CIP" -i:IISW3C -o:CSV -recurse:-1
  我们按日期进行汇总,主要是利用Group by 实现。由于IIS日志中时间为UTC格式,因此,我们需要使用To_Date(TO_LOCALTIME(TO_TIMESTAMP(date, time)))把其转换为本地时间。
  recurse:-1参数使LogParser对子目录下所有文件进行统计。
  本例中产生一个CSV文件,我们可以使用Excel进行处理,得出每天用户数曲线(当然,我们也可以直接用LogParser产生图形)。如下是一个例子:
DSC0001.gif
每小时用户访问数
  logparser "SELECT TO_LOCALTIME(QUANTIZE(TO_TIMESTAMP(date, time),3600)) AS Hours, COUNT(*) AS Hits INTO IISHC_RequestsPerHour.csv FROM *.log where To_Date(TO_LOCALTIME(TO_TIMESTAMP(date, time)))=TIMESTAMP('10/08/2010','MM/dd/yyyy' ) GROUP BY Hours ORDER BY Hours" -i:IISW3C -o:CSV -recurse:-1
  主要用法与上例类似。不过我们需要指定日期。指定日期在where To_Date(TO_LOCALTIME(TO_TIMESTAMP(date, time)))=TIMESTAMP('10/08/2010','MM/dd/yyyy' )中实现。
DSC0002.gif
拆分文件
  缺省情况下,IIS每天产生一个日志文件。对于一些特别繁忙的网站来说,IIS日志文件可能会非常大。我曾经有一个客户,每个日志文件有2个G之多。这么大的文件用LogParser进行分析时会非常慢,同时也很容易报错。
  解决办法是把日志文件进行拆分成许多小文件分别进行分析。如下命令可以把一个IIS日志按小时分成24个文件:
  logparser "SELECT REPLACE_CHR(REPLACE_CHR(TO_STRING(TO_LOCALTIME(QUANTIZE(TO_TIMESTAMP(date, time), 3600)), 'yyyy-MM-dd hh:mm:ss'), ':', '_'), ' ', '_'), date, time, c-ip, cs-uri-stem, cs-uri-query, sc-status, sc-substatus, sc-win32-status, sc-bytes, cs-bytes, time-taken FROM ex080114.log TO ex080114_*.log" -i:IISW3C -o:W3C
  这里边的技巧请大家自己去理解J 怎么样?
附录
  1. LogParser下载地址
  http://www.microsoft.com/downloads/en/details.aspx?FamilyID=890cd06b-abf8-4c25-91b2-f8d975cf8c07&displaylang=en
  2. Office 2003 Web Component
  http://www.microsoft.com/downloads/en/details.aspx?FamilyId=7287252C-402E-4F72-97A5-E0FD290D4B76&displaylang=en
  3. Security Update for Microsoft Office Web Components
  http://www.microsoft.com/downloads/en/details.aspx?familyid=95c94c9a-6aca-42fb-9679-3234f06c72f7&displaylang=en
  
  杜红俊

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-98040-1-1.html 上篇帖子: 运行iis出现:The server has encountered an error while loading an application ……的解决办法 下篇帖子: 如何在IIS部署PHP程序
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表