很佩服腾讯的数据采集分析,做了这么多年,并且数据一直保存。相信他们在这块投入了很多。
这里我要说的是web的数据采集分析,由分析日志获取相关信息,用于用户行为分析和获取QOS质量,用于提高用户体验和为相关决策提供分析数据。
有如下几个方案:
如果数据量不是很大的话,可以使用如下方案:
1、syslog-ng
2、tail --> awk --> mysql
首先统一日志格式,用tail获取日志,awk格式化日志,然后insert远端syslog中心的数据库。mysql server和客户端做长连接,但必须要有重连机制。
一个简单的实现脚本:
#!/bin/bash
tail -f /home/nginx/logs/access.log|awk '{print$7"/"$10"/"$14$15"/"$(NF-1)"/"$NF}'|grep .mp4|sed 's/?/\//'|sed 's/\;//'|awk -F / '{print$3,$5,$6,$7,$8}'|while read mp4_name mp4_block_size http_user_agent response_time http_status
do
echo mp4_name=$mp4_name
echo mp4_block_size=$mp4_block_size
echo http_user_agent=$http_user_agent
echo response_time=$response_time
echo http_status=$http_status
mysql -u test -p << spool
done
如果数据量很大,可以采用以下方法,不过我没有实践过
3、tail + Cassandra
阅读(1011) | 评论(0) | 转发(0) |