大数据实时阶段_Day05_日志分析

课程名称:

日志监控告警系统
课程目标:
1、 掌握Storm编程的应用场景及编程模型
2、 掌握Storm开发生态圈各知识点
3、 掌握短信和邮件告警功能
课程大纲:
1、 背景知识
2、 需求分析
3、 功能分析
4、 架构设计
5、 代码开发

点击流日志信息行为轨迹

1.2、如何进行点击流日志分析

1) 用户访问http://yun.itheima.com/open/c-139.html 是否可以理解为是从‘云计算大数据’标签过来的?
答案:不一定,因为用户可以从其他地方访问这个url。
解决:最好的办法,当用户点击了‘云计算大数据’的标签,通过js代码向后台发送一个数据,这个数据就记录了用户点击过这个标签。
User info、标签唯一标识、点击事件、浏览器尺寸等等。
2) 如何给网页中一个标签设置一个唯一的标志?
京东:在京东上,通过给每个标签设置一个clstag用来标志标签的唯一性。
大数据实时阶段_Day05_日志分析
苏宁:苏宁是通过在每个标签上设置一个cms-name属性来标志标签的唯一性
大数据实时阶段_Day05_日志分析
国美:国美是通过在每个标签上这是一个data-code属性来标志标签的唯一性
大数据实时阶段_Day05_日志分析
淘宝:疑似通过data-groupid进行唯一标志
大数据实时阶段_Day05_日志分析
3) 如何通过js代码发送日志
京东:当用户点击或者浏览某个页面的时候,后台有js会发送类似于以下的信息给服务器。
大数据实时阶段_Day05_日志分析
4) 解析出点击流日志中的字段信息
1、来源URL ref
2、当前URL req http://www.itcast.cn/121212.html
3、请求时间 reqTime (用户打开网站的时间)
4、操作类型 type (0:浏览操作,1:点击操作)
9、页面停留时间
10、用户IP地址
11、sessionID
12、用户的账号信息
13、点击什么东西 clstag

5、操作系统
6、浏览器的信息 br
7、屏幕尺寸
8、鼠标点击的位置

1.3、一些简单的数据分析需求

大数据实时阶段_Day05_日志分析

新的挑战
虽然通过sql语句可以很好的计算各种数据分析的需求
但是,一个网站需要风险的页面会很多需要分析,很多表情需要计算指标
大数据实时阶段_Day05_日志分析

storm编程思路分析

大数据实时阶段_Day05_日志分析

大数据实时阶段_Day05_日志分析

1.4、业务逻辑梳理

1)Storm部分 主要计算pv,uv
KafkaSpout:读取点击流收集系统收集的日志信息。不同公司的日志信息不一样,需要通过nginx+lua对日志进行标准化。 \t分割。
EtlBolt :将数据解析成一个Java对象。Java对象中有很多字段,这些字段名称会显示在网页,给产品经理去选择。
ProcessBolt:读取数据库的所有Job信息,判断Job是否被触发(所有条件是否被满足)。如果触发了Job,就开始为Job计算pv,uv。 将结果保存到Redis中

2)app部分 主要计算增量数据
计算每个Job的pv的增量数据、uv的增量数据。以便展示在网页上称为一个趋势图。
1) 读取数据库中所有的Job信息。得到JobId,通过一定的规则生成redis的key,去获取最新的值。
2) 用最新的值,减去上一个时间点(分钟、十五分钟、半小时、1小时)的值。得到差值之后,将数据保存到数据库。

作用:解放了程序员的双手。要分析指标的时候,只需要产品经理在网页配置一下即可。

  • 代码结构
    大数据实时阶段_Day05_日志分析