首页 > 代码库 > django+pandas+matplotlib进行日志分析,画图,页面展示

django+pandas+matplotlib进行日志分析,画图,页面展示

首先装好环境。

Django的配置这里不再说了

看看日志格式,以及我们需要做什么,一条举例

218.104.141.167 - - [26/Jan/2014:06:46:30 +0800] "GET /main/index.php?cmd=CheckMob&Useage=REGIST&Mob=15377587416%20alt= HTTP/1.1" 200 55 "http://www.zhasini.ml/ddos.php?hm=15377587416&c=281
" "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko" 90021
175.41.23.251 - - [26/Jan/2014:06:46:31 +0800] "GET /main/index.php?cmd=CheckMob&Useage=REGIST&Mob=13276444989 HTTP/1.1" 200 55 "http://www.zhanimei.ga/mini/index.php?hm=13276444989&c=50689
" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" 65882

这里有2条日志,是我站点的日志,可以看见我需要统计我的站点到底是有多少数量是直接输入域名访问,多少是从其他地方referred过来,大概统计下。

如何统计我就不说了,直接上结果

d={‘1.htldxhzj.duapp.com‘: 9398,
 ‘gtxapi.cdn.duapp.com‘: 79496,
 ‘www.xxx.com‘: 2477070,
 ‘www.baidu.com‘: 1465,
 ‘www.bing.com‘: 777,
 ‘www.aaa.com‘: 1113101,
 ‘www.ccc.net.cn‘: 922,
 ‘www.zhanimei.ga‘: 29847,
 ‘www.zhanimei.ml‘: 40155,
 ‘www.zhasini.ml‘: 373436}

我只取了前几名,整理成了一个字典

开始作图

from pandas import Series,DataFrame
import matplotlib.pyplot as plt

plt.figure(figsize=(8,6), dpi=80)
ts = Series(d)
ts.plot(kind=‘barh‘)
plt.savefig(‘/var/www/jastme/static/images/log.png‘)

HTML里写入img调用,把上面的代码写进Django的视图里,当你访问页面的时候即可得到图片。

django+pandas+matplotlib进行日志分析,画图,页面展示