摘要:某些原因,一开始没有设计网站的统计模块如今需要加上,只能借助于百度统计或者阿里云的日志文件,阿里云的日志文件是的访问信息时间访问回源访问命中状态头文件类型将单条记录转换为对象时间访问回源响应时间请求地址请求大小响应大小缓存状态
某些原因,一开始没有设计网站的统计模块
如今需要加上,只能借助于百度统计或者阿里云的cdn日志文件,阿里云cdn的日志文件是web的访问信息
</>复制代码
[9/Mar/2016:00:00:16 +0800] 222.171.7.89 - 62113 "http://cloud.insta360.com/post/5e7b029d8ed7e3c4b23006a71bab73c8?e=true&m=true" "GET http://cloud.insta360.com/public/media/mp4/5e7b029d8ed7e3c4b23006a71bab73c8_960x480.mp4" 206 509 20516390 HIT "Mozilla/5.0 (iPhone; CPU iPhone OS 8_4_1 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12H321 NewsApp/5.3.2" "video/mp4"
fileds
时间
访问IP
回源IP
responsetime
referer
method
访问URL
httpcode
requestsize
responsesize
cache命中状态
UA头
文件类型
re</>复制代码
# 将单条记录转换为Dict对象
def line2dict(line):
# Snippet, thanks to http://www.seehuhn.de/blog/52
parts = [
r"[(?P
r"(?PS+)", # 访问IP %h
r"(?PS+)", # 回源IP %h
r"(?P[0-9]+)", # 响应时间 %>s
r""(?P.*)"", # Referer "%{Referer}i"
r""(?P.+)"", # 请求地址 "%r"
r"(?P[0-9]+)", # Httpcode %>s
r"(?PS+)", # 请求大小 %b (careful, can be "-")
r"(?P[0-9]+)", # 响应大小 size %>s
r"(?PS+)", # 缓存状态 %s
r""(?P.*)"", # user agent "%{User-agent}i"
r""(?P.*)"", # content type "%{Content-type}i"
]
pattern = re.compile(r"s+".join(parts) + r"s*")
m = pattern.match(line)
res = m.groupdict()
return res
script
AliyunLog.py
</>复制代码
# coding=utf-8
import fileinput
import re
import os
try:
import simplejson as json
except ImportError:
import json
# 读取输入文件并返回Dict对象
def readfile(file):
filecontent = {}
index = 0
statinfo = os.stat(file)
# just a guestimate. I believe a single entry contains atleast 150 chars
if statinfo.st_size < 150:
print "Not a valid log file. It does not have enough data"
else:
for line in fileinput.input(file):
index = index + 1
if line != "
": # don"t read newlines
filecontent[index] = line2dict(line)
fileinput.close()
return filecontent
# 将单条记录转换为Dict对象
def line2dict(line):
# Snippet, thanks to http://www.seehuhn.de/blog/52
parts = [
r"[(?P
r"(?PS+)", # 访问IP %h
r"(?PS+)", # 回源IP %h
r"(?P[0-9]+)", # 响应时间 %>s
r""(?P.*)"", # Referer "%{Referer}i"
r""(?P.+)"", # 请求地址 "%r"
r"(?P[0-9]+)", # Httpcode %>s
r"(?PS+)", # 请求大小 %b (careful, can be "-")
r"(?P[0-9]+)", # 响应大小 size %>s
r"(?PS+)", # 缓存状态 %s
r""(?P.*)"", # user agent "%{User-agent}i"
r""(?P.*)"", # content type "%{Content-type}i"
]
pattern = re.compile(r"s+".join(parts) + r"s*")
m = pattern.match(line)
res = m.groupdict()
return res
# 转换整个记录为Json对象
def toJson(file):
entries = readfile(file)
return json.JSONEncoder(indent=4).encode(entries)
main.py
</>复制代码
#!/usr/bin/env python
# coding=utf-8
import sys
from AliyunLog import *
def main():
if len(sys.argv) < 3:
print "Incorrect Syntax. Usage: python main.py -f "
sys.exit(2)
elif sys.argv[1] != "-f":
print "Invalid switch "" + sys.argv[1] + """
sys.exit(2)
elif os.path.isfile(sys.argv[2]) == False:
print "File does not exist"
sys.exit(2)
print toJson(sys.argv[2])
if __name__ == "__main__":
main()
result
run script
</>复制代码
python main.py -f data
terminal
</>复制代码
{
"6432": {
"res_time": "1728",
"res_ip": "118.114.213.118",
"req_size": "768",
"req_url": "GET http://cloud.insta360.com/public/media/mp4/f9e4bf15d452440c2884b234854d089c_audio.mp3",
"origin_ip": "-",
"referer": "http://cloud.insta360.com/post/f9e4bf15d452440c2884b234854d089c?m=true&from=timeline&isappinstalled=0",
"content_type": "audio/mpeg",
"time": "9/Mar/2016:00:59:58 +0800",
"ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Mobile/13C75 MicroMessenger/6.3.13 NetType/WIFI Language/zh_CN",
"http_code": "206",
"res_size": "5290084",
"cache_status": "HIT"
},
...
}
more
参考了github上apache log的解析方法
原文地址:parse-aliyun-cdn-log-file-with-python
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/37815.html
摘要:是由淘宝网发起的服务器项目。回源监控是内容分发网络的简称,其分发的内容来自用户源站,负责回源的模块是最重要组成部分之一,使跨越单机的限制,完成网络数据的接收处理和转发。这部分主要介绍的一些调试技巧和回源资源监控的内容,以及相应的实例分享。 摘要: Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,提供更强大的流量负载均衡能力、全站HTTPS...
摘要:摘要在刚刚结束的上海云栖大会飞天技术汇分论坛上,阿里云视频云产品架构师罗小飞进行了阿里云面向金融政企的最佳实践主题分享,为上海的嘉宾介绍的解决方案与技术服务体系。随后,年阿里云宣布全面降价,打破了行业原有的价格不透明一客一价的模式。 摘要: 在刚刚结束的上海云栖大会飞天技术汇分论坛上,阿里云视频云产品架构师罗小飞进行了《阿里云CDN——面向金融政企的CDN最佳实践》主题分享,为上海的嘉...
摘要:摘要在刚刚结束的上海云栖大会飞天技术汇分论坛上,阿里云视频云产品架构师罗小飞进行了阿里云面向金融政企的最佳实践主题分享,为上海的嘉宾介绍的解决方案与技术服务体系。随后,年阿里云宣布全面降价,打破了行业原有的价格不透明一客一价的模式。 摘要: 在刚刚结束的上海云栖大会飞天技术汇分论坛上,阿里云视频云产品架构师罗小飞进行了《阿里云CDN——面向金融政企的CDN最佳实践》主题分享,为上海的嘉...
摘要:数据出来后,阿里云还要在全球范围内调度流量,一丝一毫的不准确都可能导致很严重的后果,所以对于数据的准确性要求很高。阿里云更多的是做实时数据分析。 想要实现优质高速的互联网视频服务,一定离不开高质量的内容分发网络服务,就是我们常说的CDN,在10月13日云栖大会视频多媒体分论坛上,阿里云高级技术专家空见为大家讲解了CDN服务过程中,数据处理、安全监测、日志分析、智能分析是如何为CDN赋能...
摘要:数据出来后,阿里云还要在全球范围内调度流量,一丝一毫的不准确都可能导致很严重的后果,所以对于数据的准确性要求很高。阿里云更多的是做实时数据分析。 想要实现优质高速的互联网视频服务,一定离不开高质量的内容分发网络服务,就是我们常说的CDN,在10月13日云栖大会视频多媒体分论坛上,阿里云高级技术专家空见为大家讲解了CDN服务过程中,数据处理、安全监测、日志分析、智能分析是如何为CDN赋能...
阅读 3123·2021-11-16 11:45
阅读 5551·2021-09-22 10:57
阅读 2037·2021-09-08 09:36
阅读 1862·2021-09-02 15:40
阅读 2646·2021-07-26 23:38
阅读 1382·2019-08-30 15:55
阅读 1065·2019-08-30 15:54
阅读 1353·2019-08-29 14:06