51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 2071|回复: 0
打印 上一主题 下一主题

iis日志运营报告

[复制链接]
  • TA的每日心情
    无聊
    12 小时前
  • 签到天数: 403 天

    连续签到: 1 天

    [LV.9]测试副司令

    跳转到指定楼层
    1#
    发表于 2018-12-12 15:11:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    一、获取iis日志,通过bat进行合并

    执行脚本将多个log合并成一个log

    1. type u_ex160123.log,u_ex160124.log>>12-19.log
    复制代码

    或者批量
    1. type *.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时区时间。
    1. d:
    2. cd "D:\Program Files (x86)\Log Parser 2.2"
    3. 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
    4. pause;
    复制代码
    这里面记录了:

    1. 请求发生在什么时刻,
    2. 哪个客户端IP访问了服务端IP的哪个端口,
    3. 客户端工具是什么类型,什么版本,
    4. 请求的URL以及查询字符串参数是什么,
    5. 请求的方式是GET还是POST,
    6. 请求的处理结果是什么样的:HTTP状态码,以及操作系统底层的状态码,
    7. 请求过程中,客户端上传了多少数据,服务端发送了多少数据,
    8. 请求总共占用服务器多长时间、等等。

    这些信息在分析时有什么用途,我后面再说。先对它有个印象就可以了。

    三、通过sql脚本统计请求总览和请求频率
    1. --001请求总览,按照请求url类别,统计90%请求平均时间以90%最大时间以及所有请求最大最小时间
    2. SELECT  * FROM (
    3. SELECT
    4. t1.[csUriStem], t1.Cnt, t1.MaxTime, t1.MinTime,
    5. ROUND(AVG(t2.TimeTaken),0) AS AvgTime90,
    6. MAX(t2.TimeTaken) AS MaxTime90
    7. FROM (
    8.   SELECT [csUriStem], COUNT(*) AS Cnt, MAX(TimeTaken) AS MaxTime, MIN(TimeTaken) AS MinTime
    9.   FROM temp_lti_WebLog_online_all WHERE HTTP
    10.   GROUP BY [csUriStem]
    11. ) t1
    12. INNER JOIN (
    13.   SELECT ROW_NUMBER() OVER (PARTITION BY [csUriStem] ORDER BY TimeTaken) AS rownum, *
    14.   FROM temp_lti_WebLog_online_all
    15. ) t2 ON t1.[csUriStem] = t2.[csUriStem]
    16. WHERE t2.rownum <= 0.9 * t1.Cnt
    17. GROUP BY t1.[csUriStem], t1.Cnt, t1.MaxTime, t1.MinTime
    18. ) t3
    19. ORDER BY csuristem
    复制代码

    1. --002请求频率 (minitue)
    2. SELECT LEFT(CONVERT(VARCHAR(100), requesttime, 108), 5) ,
    3.         COUNT(*) AS cnt
    4. FROM   [dbo].[temp_lti_WebLog_online_all]
    5. WHERE  LEFT(requesttime, 10) = '01 24 2017'
    6. GROUP BY LEFT(CONVERT(VARCHAR(100), requesttime, 108), 5)
    7. ORDER BY LEFT(CONVERT(VARCHAR(100), requesttime, 108), 5)

    复制代码


    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-4-26 22:00 , Processed in 0.062519 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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