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

xiaoxiao2021-02-28  114

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

服务器部署方案

本机 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负责搜集数据。

转载请注明原文地址: https://www.6miu.com/read-30638.html

最新回复(0)