Hadoop-模拟搭建用户行为日志采集系统分析

本文涉及的产品
应用型负载均衡 ALB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
日志服务 SLS,月写入数据量 50GB 1个月
简介: Hadoop-模拟搭建用户行为日志采集系统分析

一. kafka应用流程示意



网络异常,图片无法展示
|


image


1. 前端js埋点,就是调用后端提供的对应接口.接口请求示例如下:

http://pingserver.com?itemid=111&userid=110&action=show&...


为了保证轻量级,并发度高,前端js埋点向后端异步发送的请求不需要关注返回状态,只负责调用即可;


2. flume监听log日志,将实时增加的log日志通过flume管道注入kafka中,接下来可以由storm或spark streaming进行实时流处理;


3. 方向(1)中应用:storm,spark streaming更偏重于业务处理及数据挖掘;


4. 方向(2)中应用:是将非结构化的用户行为日志数据转换成结构化的数据存入hbase中,使用hive进行行为日志的分析,比如统计pv,uv,vv,ctr,dau等.


二. 搭建日志采集系统log server流程图



网络异常,图片无法展示
|


日志采集系统


上图,就是一个Log Server实现的最简单流程图.


  1. Nginx分发器:上面提到了前端js埋点请求,要求速度要快,并发度要高,所以这里使用了Nginx分发器作为web server,实现反向代理与LB(负载均衡);


  1. Spawn-cgi:上图只是示例提供一个server服务的场景,同样也可以在不同节点上,提供相同的服务,用nginx实现负载均衡,以能提供更快更高可用的服务;


Spawn-cgi的功能: 就是提供了一个网关接口,它可以快速的实现对外暴露server服务的功能,并能使底层的服务变成一个常驻的守护进程;


它的请求走的fcgi协议,这种协议更加适合外部请求,因为http请求很容易受到攻击;


  1. Thrift RPC:在定义接口规范之后,能够帮助我们快速的生成client和server代码,并能帮助我们实现服务之间的解耦:


  • client只负责字段的解析等轻量级的工作;


  • server才是真正的引擎核心,我们可以在这里实现自己的业务处理逻辑.

使用Thrift RPC生成的client和server之间的通信,走的是RPC协议,这种协议有如下好处:


  • 跨语言,支持多种语言去生成client和server代码,c++,Python,java等;


  • 保证数据的安全,相比http协议更不容易受到外部攻击;


  • 速度快,性能好,比如用c++生成代码,实现效果性能更好,速度更快,更能应对高并发的处理请求;


RPC协议更加适合底层内部的请求,所以设计上后端一般都是使用RPC协议.

另外,RPC的两端client和server只要遵循RPC协议和定义的scheme接口通信规范,两端可以使用不同的开发语言.


4. 上面的client server中server,并不只是一种简单的服务,它可以由多个server通过RPC协议构成,比如下面搭建推荐系统:


网络异常,图片无法展示
|


推荐系统


三. 模拟日志收集系统的相关技术功能梳理



  1. Thrift RPC:在定义接口通信规范后,可以用Thrift命令快速生成server和client代码,完成最基本的C/S架构;这种生成代码的方式,可以帮助我们实现服务之间的解耦,client只负责字段的解析等轻量级的工作,而server才是真正的处理引擎;


在server里面,我们可以实现自己的业务处理逻辑.通过glogs可以将收集到用户行为日志快速高效的写入log文件中.


  1. Spawn-CGI: 通过cgi提供的网关接口,可以将自己用thrift rpc生成的server服务提供给外部.

简单的可以理解为提供了一种代理,可以在非应用程序所在的机器上操作应用程序.


  1. Nginx分发器: 就是web server,用于分发用户的请求,实现反向代理与负载均衡;通过它可以将用户的js埋点请求分发给我们的server应用程序去处理;


  1. ab压测: 如果Thrift RPC使用c++生成client和server,可以大大的提供性能,这种场景下,可以使用ab压测工具,进行压力测试;

上面的技术部分,基本就实现了模拟日志收集系统的搭建,下面再扩展做一下介绍.


  1. Flume + Hbase/Hive : 用于用户行为日志分析;


  1. Flume+Kafka+Storm/Spark Streaming :用于实时流处理的数据挖掘;
相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
2月前
|
数据采集 存储 大数据
大数据之路:阿里巴巴大数据实践——日志采集与数据同步
本资料全面介绍大数据处理技术架构,涵盖数据采集、同步、计算与服务全流程。内容包括Web/App端日志采集方案、数据同步工具DataX与TimeTunnel、离线与实时数仓架构、OneData方法论及元数据管理等核心内容,适用于构建企业级数据平台体系。
|
存储 运维 开发工具
警惕日志采集失败的 6 大经典雷区:从本地管理反模式到 LoongCollector 标准实践
本文探讨了日志管理中的常见反模式及其潜在问题,强调科学的日志管理策略对系统可观测性的重要性。文中分析了6种反模式:copy truncate轮转导致的日志丢失或重复、NAS/OSS存储引发的采集不一致、多进程写入造成的日志混乱、创建文件空洞释放空间的风险、频繁覆盖写带来的数据完整性问题,以及使用vim编辑日志文件导致的重复采集。针对这些问题,文章提供了最佳实践建议,如使用create模式轮转日志、本地磁盘存储、单线程追加写入等方法,以降低日志采集风险,提升系统可靠性。最后总结指出,遵循这些实践可显著提高故障排查效率和系统性能。
628 20
|
3月前
|
存储 运维 开发工具
警惕日志采集失败的 6 大经典雷区:从本地管理反模式到 LoongCollector 标准实践
本文总结了日志管理中的六大反模式及优化建议,涵盖日志轮转、存储选择、并发写入等常见问题,帮助提升日志采集的完整性与系统可观测性,适用于运维及开发人员优化日志管理策略。
106 5
|
7天前
|
监控 安全 搜索推荐
使用EventLog Analyzer进行日志取证分析
EventLog Analyzer助力企业通过集中采集、归档与分析系统日志及syslog,快速构建“数字犯罪现场”,精准追溯安全事件根源。其强大搜索功能可秒级定位入侵时间、人员与路径,生成合规与取证报表,确保日志安全防篡改,大幅提升调查效率,为执法提供有力证据支持。
|
2月前
|
JSON 安全 网络安全
LoongCollector 安全日志接入实践:企业级防火墙场景的日志标准化采集
LoonCollector 是一款轻量级日志采集工具,支持多源安全日志的标准化接入,兼容 Syslog、JSON、CSV 等格式,适用于长亭 WAF、FortiGate、Palo Alto 等主流安全设备。通过灵活配置解析规则,LoonCollector 可将原始日志转换为结构化数据,写入阿里云 SLS 日志库,便于后续查询分析、威胁检测与合规审计,有效降低数据孤岛问题,提升企业安全运营效率。
|
2月前
|
监控 安全 NoSQL
【DevOps】Logstash详解:高效日志管理与分析工具
Logstash是ELK Stack核心组件之一,具备强大的日志收集、处理与转发能力。它支持多种数据来源,提供灵活的过滤、转换机制,并可通过插件扩展功能,广泛应用于系统日志分析、性能优化及安全合规等领域,是现代日志管理的关键工具。
401 0
|
2月前
|
存储
WGLOG日志管理系统可以采集网络设备的日志吗
WGLOG日志审计系统提供开放接口,支持外部获取日志内容后发送至该接口,实现日志的存储与分析。详情请访问:https://www.wgstart.com/wglog/docs9.html
|
3月前
|
人工智能 运维 监控
Aipy实战:分析apache2日志中的网站攻击痕迹
Apache2日志系统灵活且信息全面,但安全分析、实时分析和合规性审计存在较高技术门槛。为降低难度,可借助AI工具如aipy高效分析日志,快速发现攻击痕迹并提供反制措施。通过结合AI与学习技术知识,新手运维人员能更轻松掌握复杂日志分析任务,提升工作效率与技能水平。
|
10月前
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
2923 31
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
|
9月前
|
监控 安全 Apache
什么是Apache日志?为什么Apache日志分析很重要?
Apache是全球广泛使用的Web服务器软件,支持超过30%的活跃网站。它通过接收和处理HTTP请求,与后端服务器通信,返回响应并记录日志,确保网页请求的快速准确处理。Apache日志分为访问日志和错误日志,对提升用户体验、保障安全及优化性能至关重要。EventLog Analyzer等工具可有效管理和分析这些日志,增强Web服务的安全性和可靠性。
252 9