`
san_yun
  • 浏览: 2652915 次
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

python 分析日志

 
阅读更多


使用python写了一个分析URL请求时间的脚本
import re

r = re.compile("\d+")

f = open("log","r") 
head = re.compile("HEAD /[a-zA-Z/]*")
options = re.compile("OPTIONS /[a-zA-Z/0-9?=&]*")
post = re.compile("[POST|GET] /[a-zA-Z0-9/]*")
hc = re.compile("[HTTP/1.1|HTTP/1.0]\" \d*")
ma = re.compile(":7199 [0-9.]*")
result = {}


for read in f.readlines():
	url=http_code=http_time = None
	
	if options.search(read):
		#print options.search(read).group()
		continue
	match =  post.search(read)	
	if match:
		url = str(match.group())[2:].strip()
	if not url and head.search(read):
		url = str(head.search(read).group())[5:].strip()		
	url =  r.sub("0",url)
	if url[len(url)-1:]!='/':
		url = url+'/'
	match = hc.search(read)
	if match:
		http_code = str(match.group())[3:]
	match = ma.search(read)
	if match:
		http_time = str(match.group())[6:]
		if len(http_time)==0:
		   http_time = 0
		else:
		   http_time = float(http_time)

	if not result.get(url):
		if not http_time:
			http_time=0
		result[url] = {"url":url,"http_time":http_time,"http_count":1,"http_code":{http_code:1}}
	else:
		if not http_time:
			http_time=0
	
		if result[url]["http_code"].get(http_code) is None:
			result[url]["http_code"][http_code] = 1
		else:
			result[url]["http_code"][http_code] = result[url]["http_code"][http_code]+1
		
		result[url]["http_count"] = result[url]["http_count"]+1
		ht = result[url]["http_time"] +http_time
		result[url]["http_time"]  = ht

list = []
for r in result:
    http_count =  result[r]["http_count"] 	
    result[r]["http_time"] = result[r]["http_time"]/http_count
    list.append(result[r])

list.sort(cmp=lambda x,y : cmp(x["http_count"], y["http_count"]),reverse=True)  
for x in list:
    print "|%s |%s |%s |%s|" %(x["url"],x["http_count"],x["http_time"],x["http_code"])


日志:
175.145.249.158 - null - null - [01/Jun/2012:14:59:09 +0800]"GET /object/comments/1/20/?comment_message_id=8719418&1338533947531 HTTP/1.1" 200 365 "http://www.duitang.com/people/mblog/8719418/detail/?next=8719523" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.52 Safari/536.5" 0.047 192.168.172.8:8080 0.047 .
203.145.159.148 - null - null - [01/Jun/2012:14:59:10 +0800]"GET /album/470553/masn/p/2/24/ HTTP/1.1" 200 15751 "http://www.duitang.com/album/470553/?from=detail_right" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.77 Safari/535.7" 0.607 192.168.172.8:8080 0.607 .
219.229.109.49 - ymylcf - 2e3ee5b52a33eb2f8badf49f2be60fb6 - [01/Jun/2012:14:59:10 +0800]"GET /hot/masn/?page=4&page_size=24&_type=&begin_time=1338533938 HTTP/1.1" 200 19434 "http://www.duitang.com/topics/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.151 Safari/535.19" 1.619 192.168.172.10:8080 1.619 .
218.249.50.150 - %E8%8C%B92805819 - a6b134828a8489862de77668876840d4 - [01/Jun/2012:14:59:11 +0800]"GET /people/663035/ HTTP/1.1" 302 5 "http://www.duitang.com/myhome/" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.168 Safari/535.19 QIHU 360EE" 0.006 192.168.172.7:8080 0.006 .

输出:
|/blog/unread/ |11782 |0.0367470718044 |{'200': 11623, '302': 146, '502': 1, '499': 1, '500': 11}|
|/people/mblog/0/detail/ |9720 |0.314687345679 |{'200': 8870, '301': 187, '302': 52, '404': 529, '403': 54, '499': 24, '502': 4}|
|/blogs/tag/hot/0/ |8613 |0.406990711715 |{'301': 4310, '499': 6, '200': 4297}|
|/api/blog/detail/ |2103 |0.0471583452211 |{'200': 2034, '499': 68, '500': 1}|
|/album/0/masn/p/0/0/ |2081 |0.847947621336 |{'200': 2062, '499': 8, '301': 11}|
|/search/ |1785 |0.793348459384 |{'200': 1783, '499': 2}|
|/hot/masn/ |1620 |1.07875864198 |{'200': 1618, '499': 2}|
分享到:
评论

相关推荐

    python 分析日志(初本)

    本文将深入探讨使用Python进行日志分析的基本方法,以"python 分析日志(初本)"为主题,结合提供的两个Python脚本文件——read_file.py和read.py,来讲解如何有效地读取、解析和分析日志文件。 首先,让我们从基础...

    基于Python+MySQL+日志文件 实现的监控报表

    Python分析日志文件,日志可以是apache、nginx的访问日志,也可以是自定义生成的日志 统计数据入库 将Python分析日志得到的统计数据放到MySQL库中 利用Flask渲染页面 利用Flask框架,生成路由和渲染图表页面 ...

    工作积累(6)-使用python进行log分析

    标题“工作积累(6)-使用python进行log分析”指出,这个话题主要关注如何利用Python语言对日志(log)数据进行分析。在IT行业中,日志文件是系统、应用程序或服务运行过程中产生的记录,用于追踪错误、调试问题、监控...

    Python程序设计:python apache日志分析.pptx

    在Python中进行Apache日志分析时,我们需要关注以下几个关键点: 1. **日志文件读取**:首先,我们需要使用Python的内置模块`open()`来打开日志文件,并以适当的模式(如'r'表示读取)进行读取。接着,我们可以逐行...

    基于Python+MySQL+日志文件 实现的监控报表+源代码+文档说明

    Python分析日志文件,日志可以是apache、nginx的访问日志,也可以是自定义生成的日志 ### 统计数据入库 将Python分析日志得到的统计数据放到MySQL库中 ### 利用Flask渲染页面 利用Flask框架,生成路由和渲染图表...

    python解析日志文件并且导出到excel中

    在IT领域,日志文件分析是一项重要的任务,它可以帮助我们理解系统的运行情况,排查错误,优化性能。Python作为一门强大的脚本语言...通过这些技术,我们可以高效地管理和分析日志数据,为系统监控和故障排查提供便利。

    iis日志和tomcat日志批量分析(python)demo

    本示例着重于使用Python进行IIS(Internet Information Services)和Tomcat服务器的日志批量分析。IIS是Microsoft提供的Web服务器,而Tomcat是基于Java的开源Web应用服务器,它们都会记录详细的访问日志,这些日志...

    Python-基于Python3的Web日志分析小工具

    4. **统计分析**:分析日志数据,例如计算访问频率、最常访问的页面、错误率等。`pandas`提供了丰富的统计函数,可以轻松完成这些任务。 5. **结果可视化**:将分析结果以图表形式展示,有助于直观理解。可以使用`...

    Python 实时日志监控

    这篇博文"Python 实时日志监控"可能详细介绍了如何利用Python进行实时的日志分析和管理。 在Python中,内置的`logging`模块是实现日志功能的基础。这个模块提供了一套完整的日志记录系统,包括定义日志级别(如...

    Python大作业基于python的web日志分析工具项目源码+注释.zip

    Python大作业基于python的web日志分析工具项目源码+注释.zipPython大作业基于python的web日志分析工具项目源码+注释.zipPython大作业基于python的web日志分析工具项目源码+注释.zipPython大作业基于python的web日志...

    Python-基于python实现的linux后台日志监控小项目

    【Python-基于Python实现的Linux后台日志监控小项目】 在IT运维中,实时监控Linux系统的后台日志是一项至关重要的任务。它可以帮助我们快速发现系统异常、错误信息以及潜在的安全问题。本项目“Python-基于Python...

    基于python实现的web日志分析工具+源代码+文档说明

    基于python实现的web日志分析工具 注: 同目录下新建一个logs目录,存放需要分析的日志文件 -------- 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载...

    Python解析日志文件并且导出到excel源码

    这篇我们将讨论如何利用Python解析日志文件并将其导出到Excel,这对于数据分析、故障排查和监控系统状态非常有用。 首先,解析日志文件通常涉及到字符串处理和正则表达式。Python的标准库`re`提供了正则表达式的...

    iis日志分析和tomcat日志分析(python语言)

    Python的`pandas`库非常适合处理和分析日志数据,可以快速筛选、聚合和统计日志信息。 为了实现IP归属地查询,我们需要一个IP数据库,如MaxMind的GeoLite2,它可以提供国家、地区等地理信息。Python的`geoip2`库...

    基于Python的数字电视头端日志分析系统.pdf

    在数字电视头端日志分析系统中,Python语言的应用展示了其在数据处理和软件开发上的灵活性和强大功能。数字电视头端系统负责处理和分发电视信号,其日志文件记录了大量关于系统运行和服务状态的信息。由于这些信息非...

    Python-用于Python日志模块的GUI

    总结来说,这个工具为Python开发者提供了一种直观的方式来管理和分析日志,尤其是当项目使用SocketHandler进行日志传输时,它能提供实时监控和分析的能力。通过图形化界面,开发者可以更有效地排查错误,提升开发...

    Python-NginxApacheIIS日志分析自动生成Excel报表

    标题 "Python-NginxApacheIIS日志分析自动生成Excel报表" 暗示了这个项目是关于使用Python解析和分析Nginx、Apache及IIS服务器的日志,并且能够生成详细的Excel报告。Nginx、Apache和IIS是三种常见的Web服务器,它们...

    python日志规范.doc

    Python日志规范是软件开发中一个非常重要的环节,它确保了程序在运行过程中产生的信息能够被有效记录、管理和分析。良好的日志规范可以帮助开发者更好地理解程序的状态,定位和解决问题,同时也有助于维护团队间的...

Global site tag (gtag.js) - Google Analytics