发表于: 2017-06-07 11:29:37
2 1339
近日完成:
写脚本统计Nginx访问记录。
选择了使用Python写个脚本分析Nginx access.log。在nginx.conf 里面配置access.log里面要记录什么。我们需要记录REQUEST请求什么URL,以及每次RESPONSE用了多少时间。在nginx.conf配置里面要有下面两个log format
- $request_time
- $request
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了。
评论