方案一:
保存到日志文件中或者保存到document db(如mongodb)都是一个优秀的解决方案。
保存到日志的话相对占用容量较少,不过需要自己写脚本分析日志。
保存到document db的话相对占用容量较大,不过db自身提供多种查询解决方案可以很方便快速的查询自己想要的结果
统计信息对于实效性要求都不高,所以一般的做法是:
- 开启服务器访问Log
- 每天定期使用awk对log进行分析,整理出统计数据并转换为系统可以识别的格式。
- 定期使用程序将分析出来的数据入库
一般像排行榜这种东西一天后台运行一次入库程序就可以了,时段选在深夜。
如果对于及时性要求比较高的统计数据,可以考虑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很高时,日志的内容如果还需要处理的话问题会比较多
时间: 2024-10-18 02:59:32