TA的每日心情 | 无聊 12 小时前 |
---|
签到天数: 530 天 连续签到: 2 天 [LV.9]测试副司令
|
一、获取iis日志,通过bat进行合并
执行脚本将多个log合并成一个log
- type u_ex160123.log,u_ex160124.log>>12-19.log
复制代码
或者批量
二、通过Log Parser 工具将log文本导入到MSSQLServer中
注意:iis的log是零时区,通过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 将时间转成当前8时区时间。
- d:
- cd "D:\Program Files (x86)\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 'E:\work\task\iislog\log\iisAll.log' to temp_lti_WebLog" -i:IISW3C -o:SQL -oConnString:"Driver={SQL Server};server=10.12.75.0;database=mydb;uid=sa;pwd=mypassword;Integrated Security=SSPI" -createtable:ON
- pause;
复制代码 这里面记录了:
1. 请求发生在什么时刻,
2. 哪个客户端IP访问了服务端IP的哪个端口,
3. 客户端工具是什么类型,什么版本,
4. 请求的URL以及查询字符串参数是什么,
5. 请求的方式是GET还是POST,
6. 请求的处理结果是什么样的:HTTP状态码,以及操作系统底层的状态码,
7. 请求过程中,客户端上传了多少数据,服务端发送了多少数据,
8. 请求总共占用服务器多长时间、等等。
这些信息在分析时有什么用途,我后面再说。先对它有个印象就可以了。
三、通过sql脚本统计请求总览和请求频率
- --001请求总览,按照请求url类别,统计90%请求平均时间以90%最大时间以及所有请求最大最小时间
- SELECT * FROM (
- SELECT
- t1.[csUriStem], t1.Cnt, t1.MaxTime, t1.MinTime,
- ROUND(AVG(t2.TimeTaken),0) AS AvgTime90,
- MAX(t2.TimeTaken) AS MaxTime90
- FROM (
- SELECT [csUriStem], COUNT(*) AS Cnt, MAX(TimeTaken) AS MaxTime, MIN(TimeTaken) AS MinTime
- FROM temp_lti_WebLog_online_all WHERE HTTP
- GROUP BY [csUriStem]
- ) t1
- INNER JOIN (
- SELECT ROW_NUMBER() OVER (PARTITION BY [csUriStem] ORDER BY TimeTaken) AS rownum, *
- FROM temp_lti_WebLog_online_all
- ) t2 ON t1.[csUriStem] = t2.[csUriStem]
- WHERE t2.rownum <= 0.9 * t1.Cnt
- GROUP BY t1.[csUriStem], t1.Cnt, t1.MaxTime, t1.MinTime
- ) t3
- ORDER BY csuristem
复制代码
- --002请求频率 (minitue)
- SELECT LEFT(CONVERT(VARCHAR(100), requesttime, 108), 5) ,
- COUNT(*) AS cnt
- FROM [dbo].[temp_lti_WebLog_online_all]
- WHERE LEFT(requesttime, 10) = '01 24 2017'
- GROUP BY LEFT(CONVERT(VARCHAR(100), requesttime, 108), 5)
- ORDER BY LEFT(CONVERT(VARCHAR(100), requesttime, 108), 5)
复制代码
|
|