您的位置:首页 > 运维架构 > 网站架构

网站数据统计分析系统之采集服务部署

2017-06-06 23:47 447 查看


网站数据统计分析项目之采集服务部署

服务器部署方案
本机masterslave1slave2
目标程序(ecshop) 日志采集服务器日志采集服务器
 采集服务器负载均衡  
 目标网站(web程序)  
 namenodenamenode 
 datanodedatanodedatanode
 rm1rm2 
 nmnmnm
 zkzkzk
 jnjnjn
   管理节点


OpenResty环境搭建

可以参考:网站数据统计分析系统之后端脚本之OpenResty简介课程中的详细讲解。


开发和部署采集脚本

ma.js可以放到采集服务器的工作目录下:/home/hadoop/work/html/

然后修改一下埋点脚本中的ma.js路径。
...... 页面其它省略......
//通过页面input接受后台用户uid
< input type="hidden" id="_uid" value="< ?php echo $user_id;?"/>
< script type="text/javascript">
var _maq=_maq||[];
_maq.push(['_account','user1']);
//通过js获取用户uid数据
_maq.push(['_uid','getElementsById("_uid").value']);

(function(){
var ma=document.createElement("script");
ma.type="text/javascript";
//异步加载
ma.async=true;
//引入具体采集代码,ma.js放在采集服务器中
ma.src="http://192.168.0.201:8080/ma.js";
//创建一个script标签
var s=document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(ma,s);
})();
< /script>
< /html>


同时需要修改采集脚本中的路径:
(function(){
var params={};

//document
if(document){
//域名
params.domain=document.domain||'';
//URL
params.url=document.URL||'';
//页面标题
params.title=document.title||'';
//从哪个页面跳转过来referrer
params.referrer=document.referrer||'';
}

//window
if(window&&window.screen){
//分辨率
params.sh=window.screen.height||0;
params.sw=window.screen.width||0;
//颜色深度
params.cd=window.screen.colorDepth||0;
}

//navigator
if(navigator){
//客户端语言
params.lang=navigator.language||'';
}

//解析_maq
if(_maq){
for(var i in _maq){
switch(_maq[i][0]){
case '_account':
params.account=_maq[i][1];
break;
case '_uid':
params.uid=_maq[i][1];
break;
default:
break;
}
}
}

//console.log(params);

var ags="";
//拼接参数
for(var i in params){
if(ags!=''){
ags+='&';
}
ags+=i+'='+encodeURIComponent(params[i]);
}

console.log(ags);
var img=new Image(1,1);
//将采集的数据以图片的形式发送到采集服务器
img.src='http://192.168.0.201:8080/1.gif?'+ags;
})();


开发和部署后端处理程序

后端程序在前面的课程中已经详细讲解,这里我们就不再赘叙。


前后端测试

1.启动OpenResty服务器

2.启动ecshop项目

3.模拟访问ecshop中的页面,在后端服务器产生用户访问日志。


实现采集服务器负载均衡

我们在master节点同样需要安装OpenResty服务,从而实现负载均衡。

master节点中/home/home/work/conf/nigix.conf配置如下:
[hadoop@master work]# ls
conf logs
[hadoop@master work]# cd conf/
[hadoop@master conf]# vi nginx.conf 	//创建一个nginx.conf文件
worker_processes	1;//work 进程数指定为1

error_log	logs/error.log;//日志目录

events{
worker_connections 1024;//为每个work指定最大连接数
}

http{
upstream maservers{
server 192.168.0.201:8080 weight=1;
server 192.168.0.202:8080 weight=1;
}
server{
listen 8080; //监听端口
server_name 192.168.0.200 //该节点实现转发
location /{
proxy_pass http://maservers; proxy_set_header realip $remote_addr;
}
}
}


master只负责负载均衡,将产生的日志数据均匀的分发到slave1和slave2, slave1和slave2的后端脚本负责对采集的数据进行处理。

整个数据采集的流程就是:ecshop产生日志数据---master 负载均衡---slave1和slave2后端脚本采集数据---flume负责搜集数据。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐