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

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

服务器部署方案

本机 master slave1 slave2
目标程序(ecshop)   日志采集服务器 日志采集服务器
  采集服务器负载均衡    
  目标网站(web程序)    
  namenode namenode  
  datanode datanode datanode
  rm1 rm2  
  nm nm nm
  zk zk zk
  jn jn jn
      管理节点
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负责搜集数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值