当前位置:当百下载站 > 电脑软件 > 网络软件 > 站长工具 > IIS日志分析工具(Log Parser)v2.2
IIS日志分析工具(Log Parser)

IIS日志分析工具(Log Parser)

版本:v2.2 大小:1.15MB 语言:简体中文 类别:站长工具
  • 类型:国外软件
  • 更新:2026-11-01 18:34:01
  • 系统:win7/win8/win10/win11

详情介绍

Log Parser 是一款专门用来解析 IIS 日志的工具,能够读取日志文件中的各类信息,并以表格或数据库的形式呈现。它支持命令行调用,语法灵活,适合需要反复统计和分析日志的场景。很多人第一次接触 IIS 日志分析,用的就是它。不过日志文件较大时,直接用它查看会比较慢,查询语法也没有 SQL 那样全面,因此实际使用中更推荐先把日志导出到数据库再做分析。

IIS日志分析工具(Log Parser) 界面截图

IIS日志分析工具(Log Parser) 软件界面截图

IIS日志分析工具(Log Parser) 界面截图

IIS日志分析工具(Log Parser) 界面截图

解析IIS日志教程

IIS日志分析工具(Log Parser) 界面截图

运行下面的命令行即可查看日志内容(为不影响页面宽度,命令文本做了换行处理): "C:\Program Files\Log Parser 2.2\LogParser.exe" -i:IISW3C -o:DATAGRID "SELECT c-ip,cs-method,s-port,cs-uri-stem,sc-status,sc-win32-status, sc-bytes,cs-bytes,time-taken FROM u_ex130615.log" 执行后就能以表格形式阅读 IIS 日志

  1. 不推荐用这种方式分析 IIS 日志,原因有两点:
  2. 慢:日志文件稍大一点,分析就比较浪费时间,尤其是需要多次统计的时候
  3. 不方便:它支持的查询语法不够丰富,没有像 SQL Server 针对数据表查询那样全面

推荐的IIS日志分析方法

Log Parser 支持把解析结果以表格形式供人阅读,但遇到需要按不同方式多次查询的细致分析时,每次查询都直接运行 Log Parser 会浪费很多时间。它支持将解析结果导出为多种格式,这里建议选择输出格式为 SQL。 注意:这里的 SQL 并不是指 SQL Server,而是指所有提供 ODBC 访问接口的数据库

可以用下面的命令把 IIS 日志导入 SQL Server(为不影响页面宽度,命令文本做了换行处理): "C:\Program Files\Log Parser 2.2\logparser.exe" "SELECT * FROM 'D:\Temp\u_ex130615.log' to MyMVC_WebLog" -i:IISW3C -o:SQL -oConnString:"Driver={SQL Server};server=localhost\sqlexpress;database=MyTestDb;Integrated Security=SSPI" -createtable:ON 导入完成后,就能用熟悉的 SQL Server 做各种查询和统计分析了,例如: SELECT cip,csmethod,sport,csuristem,scstatus,scwin32status,scbytes,csbytes,timetaken FROM dbo.MyMVC_WebLog

IIS日志分析工具(Log Parser) 界面截图

  1. 注意:
  2. IIS 日志导出到 SQL Server 时,字段名中不符合标识符规范的字符会被删除。例如 c-ip 会变成 cip,s-port 会变成 sport
  3. IIS 日志记录的是 UTC 时间,而且日期和时间分开存放,导出到 SQL Server 时会生成 date、time 两个字段,看起来不太舒服。下面说两种解决方法: 方法一,在 SQL Server 中增加一列,把 UTC 时间换成本地时区时间,T-SQL 脚本如下: alter table MyMVC_WebLog add RequestTime datetime go update MyMVC_WebLog set RequestTime=dateadd(hh,8,convert(varchar(10),date,120) + ' ' + convert(varchar(13),time,114)) 方法二,直接在导出时转换时间,需要修改命令: "C:\Program Files\Log Parser 2.2\logparser.exe" "SELECT TO_LOCALTIME(TO_TIMESTAMP(ADD(TO_STRING(date, 'yyyy-MM-dd '), TO_STRING(time, 'hh:mm:ss')), 'yyyy-MM-dd hh:mm:ss')) AS RequestTime, * FROM 'D:\Temp\u_ex130615.log' to MyMVC_WebLog2" -i:IISW3C -o:SQL -oConnString:"Driver={SQL Server};server=localhost\sqlexpress;database=MyTestDb;Integrated Security=SSPI" -createtable:ON 再看这三列: select RequestTime, date, time from MyMVC_WebLog2 这样处理后就可以直接把 date、time 两列删掉(也可以在导出时忽略它们,但要明确指出每个字段名)

命令行模式速查方案

进入命令行模式,输入: LOGPARSER -i:IISW3C file:D:/Log/log_SQL/Slowest10IPInIIS_MySite.sql -o:DataGrid -q:off 其中 Slowest20FilesInIIS_MySite.sql 的内容如下: --rem 运行最慢的20个页面 --Finding the 20 slowest pages in your Web site 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 D:/Log/log_SQL/LogFiles/ex*.log Order by time-taken desc 从结果可以看出,访问最慢而且最频繁的页面是 /Company/List.aspx,而且集中在一个 IP:116.7.16.249,基本可以判断是有人恶意爬数据。再输入: LOGPARSER -i:IISW3C file:D:/Log/log_SQL/Slowest10IPInIIS_MySite.sql -o:DataGrid -q:off 其中 Slowest10IPInIIS_MySite.sql 的内容如下: --rem 访问量最大的IP的访问明细 Select cs-uri-stem as [RequestURI],count(cs-uri-stem) as VisitCounts,c-ip as [ClientIP] FROM D:Log/log_SQL/LogFiles/ex090829.log group by cs-uri-stem,c-ip ORDER BY VisitCounts DESC 启动管理工具,禁 IP

下载地址

  • 电脑版
IIS日志分析工具(Log Parser)v2.2

用户评论

(您的评论需要经过审核才能显示)


0条评论

↑