Chinaunix首页 | 论坛 | 博客
  • 博客访问: 270698
  • 博文数量: 53
  • 博客积分: 2580
  • 博客等级: 少校
  • 技术积分: 509
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-29 10:02
文章分类

全部博文(53)

文章存档

2014年(1)

2013年(1)

2011年(14)

2010年(37)

我的朋友

分类: LINUX

2011-01-26 16:25:42

    很佩服腾讯的数据采集分析,做了这么多年,并且数据一直保存。相信他们在这块投入了很多。
    这里我要说的是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
   
阅读(1014) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~