网站流量日志埋点收集—原理实现分析|学习笔记

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 快速学习网站流量日志埋点收集—原理实现分析

开发者学堂课程【大数据分析之企业级网站流量运营分析系统开发实战(第一阶段)网站流量日志埋点收集—原理实现分析】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/693/detail/12172


网站流量日志埋点收集—原理实现分析


内容简介

一、原理分析

二、小结


一、原理分析

要想去埋点收集用户的行为数据,该如何设计一个系统。

结合我们上节内容学习的雏形图,我们现在学习应该真正可以用来收集用户行为数据的埋点系统,该如何去理清它。

image.png

再次强调:埋点指我们的页面上预先埋上一段 js 代码然后用户的行为去触发它来进行用户数据的收集,只不过为了后期更好维护,为了性能做了某种改变,某种性能的优化。

图片剖析:

我们去收集用户的行为数据,用户不管是通过移动端还是其他访问网站都需要通过浏览器 broswer 发起请求,所以浏览器相当于客户进入网站交互的终端。

浏览器去访问请求页面,所以 page 是用户访问的页面(待收集数据的页面),埋点代码是写在此页面上的,红色粗框是待搜集数据的页面,埋点代码的页面。

如果把 js 写死在页面则耦合性太强,不利于后期的维护,所以我们要通过改变,把收集数据的 js 单独拉取出变成文件 javascript(collect client data),绿色小框是真正收集数据的 js。因为 js 必须在页面上才能执行,所以需要把 js 引至页面,所以需要通过 src 属性引入加载至页面上,这样就完成了前端的一个设计(红色大框是前端服务器)。

当我们把绿色的 js 收集至页面上之后,它就开始进行我们数据的收集。那么收集的数据需要发往另一台服务器collect.itcast.cn,这时候我们单独部署一台服务器来接收请求,就涉及如何把前端服务器的数据发送至另一台机器上。

这时已经不能使用 js 直接发送了,所以需要伪装请求图片<img src=”collect.itcast.cn/log.gif> , 重点不是这张图片,而是图片后面采集的数据,不管收集多少参数都可以拼接在请求的后面。所以前端 js 收集用户行为数据把数据以参数的形式拼接在请求图片的 url 后面,发送至指定的服务器。

这样就完成了前端的工作,接下来逻辑,功能来到后端。作为后端,别人发起请求需要做什么?需要接收请求和解析参数(重中之重),响应图片(log.gif1*1)以及响应 cookie(涉及用户行为追踪问题,cookie 是在浏览器端用来标识用户访问信息的,也就是说当用户第一次来时,响应生成一个 cookie,后续再访问同样的网站,就会自动携带cookie,除非 cookie 被强制删除,这样就可以根据 cookie 值判断这个日志,行为是属于哪个用户)

image.png


二、小结

上述图片就是企业要想实现上线进行用户行为埋点收集的原理图

当中重点考虑了两个性能点,第一个是为了便于后期数据收集 js 的维护,我们把它和页面做了解耦合,未写死在页面上。

第二个是为了降低一台服务器的压力,单独部署一台服务器专门用于数据的接收,所以以发送图片的形式解决跨域问题。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
18天前
|
SQL 存储 监控
|
18天前
|
监控 关系型数据库 MySQL
|
10天前
|
SQL 监控 中间件
【应急响应】拒绝服务&钓鱼指南&DDOS压力测试&邮件反制分析&应用日志
【应急响应】拒绝服务&钓鱼指南&DDOS压力测试&邮件反制分析&应用日志
|
12天前
|
存储 监控 安全
《SelectDB 新一代日志存储分析平台解决方案》白皮书重磅发布|立即下载
作为基于 Apache Doris 打造的现代化数据仓库,SelectDB 不拘泥于传统数仓的限制,针对日志数据的特点引入了多项创新性技术,使用户可基于 SelectDB 构建开放、高性能、低成本、统一的日志存储分析平台, 截至目前已在近百家行业内知名企业中落地。
《SelectDB 新一代日志存储分析平台解决方案》白皮书重磅发布|立即下载
|
18天前
|
SQL 监控 安全
|
1月前
|
存储 监控 NoSQL
【MongoDB 专栏】MongoDB 的日志管理与分析
【5月更文挑战第11天】MongoDB日志管理与分析至关重要,包括系统日志和操作日志,用于监控、故障排查和性能优化。合理配置日志详细程度、存储位置和保留策略,使用日志分析工具提升效率,发现性能瓶颈和安全性问题。日志分析有助于优化查询、调整配置,确保数据安全,并可与其他监控系统集成。面对日志量增长的挑战,需采用新技术如分布式存储和数据压缩来保障存储和传输。随着技术发展,不断进化日志管理与分析能力,以支持MongoDB的稳定高效运行。
【MongoDB 专栏】MongoDB 的日志管理与分析
|
10天前
|
存储 Java 关系型数据库
基于JSP的九宫格日志网站
基于JSP的九宫格日志网站
|
18天前
|
分布式计算 Hadoop Java
使用Hadoop MapReduce分析邮件日志提取 id、状态 和 目标邮箱
使用Hadoop MapReduce分析邮件日志提取 id、状态 和 目标邮箱
|
1月前
|
存储 监控 关系型数据库
PHP编写的电脑监控软件:用户登录日志记录与分析
使用PHP编写简单但功能强大的电脑监控软件,记录用户登录日志并进行分析。代码示例展示了如何获取并存储用户IP地址和登录时间到数据库,然后进行登录数据的分析,如计算登录频率和常见登录时间。此外,还介绍了如何通过定时任务自动将监控数据提交到网站,以便实时监控用户活动,提升系统安全性和稳定性。
115 0
|
3天前
|
存储 关系型数据库 MySQL