网站流量日志埋点收集--系统部署架构图和采集流程梳理|学习笔记

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 快速学习网站流量日志埋点收集--系统部署架构图和采集流程梳理

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

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


网站流量日志埋点收集--系统部署架构图和采集流程梳理


本节内容我们学习埋点采集用户行为数据怎么系统搭建和部署。

系统环境部署

在正式安装之前,我们先画部署图从理论层面梳理系统到底怎样埋点收集用户行为数据。

部署图:

一台服务器 www.itcast.cn/indox.html 模仿首页即正常浏览网站的页面,用户通过浏览器肯定要访问这个页面,所以接下来学习用户打开页面会经过哪些流程。

第一步用户要想访问页面首先要通过浏览器输入地址,发送 request 请求,请求打开页面时页面预先埋入了一段埋点代码,所以打开页面后埋点代码开始执行。

所以第二步是用户打开页面,埋点代码匿名函数自调用执行,自己调用自己并且只调用一次,匿名函数自调用需要将真正收集数据的 js 引入页面。

第三步是把真正收集数据的 js 引入页面。(collect.js)

第四步是收集数据的 js 通过我们内置的对象采集我们页面的相关属性信息数据。

第五步是把收集的数据拼接成图片形式发送 ( <img arc=“collect.itcast.cn/log.gif?item=1111&name=allen”> )

另一台服务器 collect.itcast.cn,专门用于接受请求,它是一台特殊的服务器,特殊在它是 nginx(基于lua)。当中会有两个 location 模块,一个是 location/log.gif,另一个是 location/i-log。

所以第六步为以请求图片的形式把采集的数据发送到指定的收集数据服务器上,通过 location 匹配进行处理。第一个 location 功能是生成cookie和生成图片 log.gif。

第七步需要进行 subrequest,第二个 location 是内部模块,它做的事是解析参数和保存数据到日志文件中。

第八步是 response(图片,cookie)。

image.png

以上就完成了整个页面的交互,也是架构。

从用户的角度他们能感受到的只要打开页面,显示页面,实质上在打开页面的同时埋点代码开始执行,在后台进行一系列的操作。拉取我们的js,进行数据收集,发送参数数据,保存等,这是后端所做的事情。

自带服务器

这样就贴近于实战,也比较符合类似于京东,天猫等进行数据采集的系统。这就是埋点数据收集的架构图,结合之前剖析的原理认真理解某些模块,哪些知识点在执行什么职责。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
打赏
0
0
0
0
55
分享
相关文章
Grafana Loki,轻量级日志系统
本文介绍了基于Grafana、Loki和Alloy构建的轻量级日志系统。Loki是一个由Grafana Labs开发的日志聚合系统,具备高可用性和多租户支持,专注于日志而非指标,通过标签索引而非内容索引实现高效存储。Alloy则是用于收集和转发日志至Loki的强大工具。文章详细描述了系统的架构、组件及其工作流程,并提供了快速搭建指南,包括准备步骤、部署命令及验证方法。此外,还展示了如何使用Grafana查看日志,以及一些基本的LogQL查询示例。最后,作者探讨了Loki架构的独特之处,提出了“巨型单体模块化”的概念,即一个应用既可单体部署也可分布式部署,整体协同实现全部功能。
384 69
Grafana Loki,轻量级日志系统
Vue3源码架构简析及Monorepo流程构建
【10月更文挑战第12天】Vue3源码架构简析及Monorepo流程构建
Vue3源码架构简析及Monorepo流程构建
一招高效解析 Access Log,轻松应对泼天流量
一招高效解析 Access Log,轻松应对泼天流量
MySQL原理简介—2.InnoDB架构原理和执行流程
本文介绍了MySQL中更新语句的执行流程及其背后的机制,主要包括: 1. **更新语句的执行流程**:从SQL解析到执行器调用InnoDB存储引擎接口。 2. **Buffer Pool缓冲池**:缓存磁盘数据,减少磁盘I/O。 3. **Undo日志**:记录更新前的数据,支持事务回滚。 4. **Redo日志**:确保事务持久性,防止宕机导致的数据丢失。 5. **Binlog日志**:记录逻辑操作,用于数据恢复和主从复制。 6. **事务提交机制**:包括redo日志和binlog日志的刷盘策略,确保数据一致性。 7. **后台IO线程**:将内存中的脏数据异步刷入磁盘。
Spring Boot 3 集成Spring AOP实现系统日志记录
本文介绍了如何在Spring Boot 3中集成Spring AOP实现系统日志记录功能。通过定义`SysLog`注解和配置相应的AOP切面,可以在方法执行前后自动记录日志信息,包括操作的开始时间、结束时间、请求参数、返回结果、异常信息等,并将这些信息保存到数据库中。此外,还使用了`ThreadLocal`变量来存储每个线程独立的日志数据,确保线程安全。文中还展示了项目实战中的部分代码片段,以及基于Spring Boot 3 + Vue 3构建的快速开发框架的简介与内置功能列表。此框架结合了当前主流技术栈,提供了用户管理、权限控制、接口文档自动生成等多项实用特性。
94 8
什么是事件日志管理系统?事件日志管理系统有哪些用处?
事件日志管理系统是IT安全的重要工具,用于集中收集、分析和解释来自组织IT基础设施各组件的事件日志,如防火墙、路由器、交换机等,帮助提升网络安全、实现主动威胁检测和促进合规性。系统支持多种日志类型,包括Windows事件日志、Syslog日志和应用程序日志,通过实时监测、告警及可视化分析,为企业提供强大的安全保障。然而,实施过程中也面临数据量大、日志管理和分析复杂等挑战。EventLog Analyzer作为一款高效工具,不仅提供实时监测与告警、可视化分析和报告功能,还支持多种合规性报告,帮助企业克服挑战,提升网络安全水平。
126 2
centos系统清理docker日志文件
通过以上方法,可以有效清理和管理CentOS系统中的Docker日志文件,防止日志文件占用过多磁盘空间。选择合适的方法取决于具体的应用场景和需求,可以结合手动清理、logrotate和调整日志驱动等多种方式,确保系统的高效运行。
388 2
|
5月前
|
告别简陋:Java日志系统的最佳实践
【10月更文挑战第19天】 在Java开发中,`System.out.println()` 是最基本的输出方法,但它在实际项目中往往被认为是不专业和不足够的。本文将探讨为什么在现代Java应用中应该避免使用 `System.out.println()`,并介绍几种更先进的日志解决方案。
112 1
Linux系统日志管理
Linux系统日志管理
99 3
#637481#基于django和neo4j的日志分析系统
#637481#基于django和neo4j的日志分析系统
67 4

热门文章

最新文章