发表于: 2017-06-07 11:29:37

2 1339


近日完成:


写脚本统计Nginx访问记录。

选择了使用Python写个脚本分析Nginx access.log。在nginx.conf 里面配置access.log里面要记录什么。我们需要记录REQUEST请求什么URL,以及每次RESPONSE用了多少时间。在nginx.conf配置里面要有下面两个log format 


python 脚本如下

import texttable

if __name__== "__main__":

dictDataAccessCount = dict();
dictDataTimeCount = dict();
listResult = list()

with open("access.log") as f:
while 1:
strLine = f.readline()
if not strLine:
break

           listLine = strLine.split("||")

if len(listLine) > 3:
strRequest = listLine[3]
strRequest = strRequest[2:-2]

strTime = listLine[2]

try:
numTime = float(strTime)
if strRequest in dictDataTimeCount:
dictDataTimeCount[strRequest] += numTime
dictDataAccessCount[strRequest] += 1
                   else:
dictDataAccessCount[strRequest] = 1
                       dictDataTimeCount[strRequest] = numTime
except:
continue

   listResult.append(["REQUEST", "ACCESS COUNT", "TOTAL RESPONSE TIME", "AVERAGE RESPONSE TIME"])

for (k, v) in dictDataAccessCount.items():
tmp = list()
tmp.append(k)
tmp.append(v)
tmp.append(round(dictDataTimeCount[k], 4))
tmp.append(round(tmp[2] / tmp[1], 4))
listResult.append(tmp)

t = texttable.Texttable()
t.add_rows(listResult)
print(t.draw())


执行结果如下:


感觉访问速度还ok。 GET不需要0.01秒。一秒似乎能应付100个GET的样子。


明日计划:

如果任务3可以通过了就开始做任务4了。



返回列表 返回列表
评论

    分享到