日志分析系统研究

方案一:

保存到日志文件中或者保存到document db(如mongodb)都是一个优秀的解决方案。

保存到日志的话相对占用容量较少,不过需要自己写脚本分析日志。

保存到document db的话相对占用容量较大,不过db自身提供多种查询解决方案可以很方便快速的查询自己想要的结果

统计信息对于实效性要求都不高,所以一般的做法是:

  1. 开启服务器访问Log
  2. 每天定期使用awk对log进行分析,整理出统计数据并转换为系统可以识别的格式。
  3. 定期使用程序将分析出来的数据入库

一般像排行榜这种东西一天后台运行一次入库程序就可以了,时段选在深夜。

如果对于及时性要求比较高的统计数据,可以考虑NoSQL,关系型数据库可以考虑延迟插入

方案二:

可以对每个操作发送一个url到日志服务器上

然后离线对日志服务器上的日志进行分析、

方案三:

1.使用数据仓库-infobright

2.日志根据不同表或功能按以文件形式存储到服务器

3.使用计划任务每段时间把文件load data infile到数据仓库

方案四:

Fluentd + Mongodb

方案五:

不太清楚你们网站的规模,如果你们网站的pv在5000w以上的换,强烈不建议使用数据库记录日志,如果你用的是apache服务器,可以将日志写到web服务器上,然后将日志收集到分布式平台上(hadoop)
目前我们公司使用的是flume收集日志然后写入到hadoop数据平台上,通过hive方便非hadoop编程人员写统计脚本
flume介绍http://www.docin.com/p-278791827.html
另外不知道你们是不是打算用php去写日志,如果用php的话,当pv很高时,日志的内容如果还需要处理的话问题会比较多

原文地址:https://www.cnblogs.com/Alight/p/4502516.html