网站日志的文件分析

做天考试系统又一次正式应用在了某某考试中,晚上师哥让我用python脚本分析一下日志,计算每秒中的响应请求,并制成曲线图。

今天就着手干。目前为止,我已经把昨天系统的所有时间点上的响应次数统计并按顺序排列下来了。现在就剩曲线图。

就最想说说日志文件:XXXX.log。

打开日志文件,我是用记事本打开的,结果发现并没有换行。重点是换行了,如果你是第一次接触能更easy点。

开头的用户ip地址我还是认得了,所以找啊找的,自己换行出来了几条。冥冥之中看的懂但又不知道有些是什么。

111.19.44.59 - - [14/Jan/2017:00:00:22 +0800] 167789 "GET /p/9 HTTP/1.0" 200 10611 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36"

用户ip 时间 未知数字 GET请求 访问地址 200状态码 被访问页面的体积 操作系统浏览器

大致就是上面这些依次表示过去。在网上看到一个说是统计用户IP的次数,又看了一篇不错的学习教程。明白了,我自己需要的是哪些数据,就是对这个数据获取,操作等。

因此,我要看看每秒的响应请求,那么就是用时间来分析咯。

for l in lines:
    times = re.compile(r'\d{2}\/\w{3}\/\d{4}:[0-9]{2}:\d{2}:\d{2}')
    match = times.search(l)
    if match:
        time = match.group()
        if ( arr.has_key(time) ):
            arr[time] += 1
        else:
            arr.setdefault(time,1)
我这里的正则表达式是真的简单。在网上我当时找的是“正则表达式时间格式匹配”,结果铺天盖地各种匹配就出来了。最后我还是用偷鸡的方法取到了。

放开头的时间统计略表尊敬。

14/Jan/2017:00:00:22->1
14/Jan/2017:00:00:23->1
14/Jan/2017:00:01:37->1
14/Jan/2017:00:02:23->2
14/Jan/2017:00:02:27->1
14/Jan/2017:00:02:35->1
14/Jan/2017:00:02:38->2
14/Jan/2017:00:02:51->1


需要什么吗?能用简单方法解决问题吗?keep thinking

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值