第2章 日志采集

1.日志采集有哪些

  • 页面浏览日志
    页面浏览日志是指当一个页面被浏览器加载呈现时采集的日志。此类日志 也是最基础的互联网日志,也是目前所有互联网产品的两大基本指标:页面浏览量(Page View,PV)和访客数(Unique Visitors,UV)的统计基础
  • 页面交互日志
    页面交互日志是指用户在访问某个页面时具体的互动行为和特征。

移动端的采集根据不同的用户行为分成不同的事件。

  • 页面事件
    页面事件是指用户的浏览行为。每条页面事件日志记录三类信息:

    (1) 设备及用户的基本信息
    (2)被访问页面信息(这里主要是一些业务参数,比如商品详情页的商品ID,所属店铺等)
    (3) 访问的基本路径(如页面的来源、来源的来源等,用于还原用户完整的访问行为)

  • 控件点击及其他事件
    在阿里巴巴的无线客户端日志采集实践中,将交互日志采集从页面时间采集中剥离出来,这就是控件点击事件和其他事件。
    控件点击事件不仅记录了基本的设备信息、用户信息;它还记录了控件所在页面名称、控件名称、控件的业务参数等。
    其他事件,就是用户可以根据业务场景需求,使用自定义时间来采集相关信息。

  • 特殊场景
    页面事件和控件点击以及其他事件,均为一个行为产生一条日志,特殊场景则是针对特殊场景的事件。

2.怎样进行日志采集

  • 页面浏览日志采集
    页面浏览日志怎样进行采集,那就要从发送一个浏览器请求到服务器的响应说起了。

(1)用户在浏览器中输入网址链接
(2)浏览器向目标服务器发起HTTP请求

HTTP请求:请求行、请求报头、请求正文

(3)服务器接收并解析请求

HTTP响应:状态行、响应报头、响应正文

(4)浏览器接收到服务器的响应内容,并按照文档规范展现给用户,从而完成一次请求

  要想完成页面浏览日志的采集,那我们肯定是从请求过程中的某一个步骤下手了。在第一步和第二步,用户的请求尚未到达服务器;而第三步,我们也只能认为服务器处理了请求,而不能保证浏览器是否正确的解析和渲染页面,尚不能保证用户已确实打开了页面,因此在第三步也是无法采集用户的浏览日志的。那么采集日志的动作,需要再第四步浏览器开始解析文档是才能进行。
  因此基本的思路:在HTML文档内的适应位置增加一个日志采集节点,当浏览器解析到这个节点时,将自动触发一个特定的HTTP请求到日志服务器。如此一来,当日志采集服务器接收到这个请求时,就可以确定浏览器已经成功地接收和打开了页面。下图为阿里巴巴页面浏览日志采集方案流程框架。

  • 页面交互日志采集
    在阿里巴巴,通过一套名为“黄金令箭”的采集方案来解决交互日志的采集问题。
    具体而言,“黄金令箭”是一个开放的基于HTTP协议的日志服务,需要采集交互日志的业务,经过一下步骤即可将自助采集的交互日志发送到日志服务器。
    在这里插入图片描述

(1)业务方在“黄金令箭”的元数据管理界面一次注册需要采集交互日志的业务、具体业务场景以及场景下的具体交互采集点,在注册完成之后,系统将生成与之对应的交互日志采集代码模板。(配置元数据)
(2)业务方将交互日志采集代码植入目标页面,并将采集代码与需要监测的交互应为做绑定。
(3)当用户在页面上产生指定行为时,采集代码和正常的业务活动响应代码一起被触发和执行
(4)采集代码 在采集动作完成后将对应的日志通过HTTP协议发送到日志服务器,日志服务器接收到日志后,对于保存在HTTP请求参数部分的自定义数据,即用户上传的数据,原则上不做解析处理,只做简单的转存。

  • 无线客户端的日志采集
    无线客户端的日志采集采用采集SDK来完成,在阿里巴巴内部,多使用名为UserTrack的SDK来进行无线客户端的日志采集。

  • H5&Native日志统一

(1)H5页面浏览和页面交互的数据,在执行时通过加载日志采集的JavaScript脚本,采集当前页面参数,包括浏览行为的上下文信息以及一些运行环境信息。在APP中打开H5页面和在浏览器中的处理完全一样,在前端页面的开发中无须做任何特殊的处理,只需在页面开发时手动植入日志采集的JavaScript脚本即可。
(2)在浏览器日志采集的JavaScript脚本中实现将所采集的数据打包到一个对象中,然后调用WebView框架的JSBridge接口,调用移动客户端对应的接口方法,将埋点数据对象当作参数传入。
(3)移动客户端日志采集SDK,封装提供接口,实现将传入的内容转换成移动客户端日志格式。采集SDK会根据日志类别来识别是页面浏览事件,还是控件点击事件,然后调用内部相应的接口进行处理,将埋点数据转换成移动客户端日志的统一格式。而后就同移动客户端的日志处理一样,先记录到本地日志缓存中,择机上传。通过日志类别的识别来做不同的日志格式转换,这样,未来如果要实现新的事件类别,比如自定义事件,就不需要改动WebView层的接口,只需改动JavaScript的部分内容及移动客户端日志采集SDK中对应的实现即可。

3.怎样保证日志信息的可用性

  • 针对浏览器页面采集的日志

(1)识别流量攻击、网络爬虫和流量作弊
(2)数据缺项补正
(3)无效数据剔除
(4)日志隔离分发

数据技术篇之日志采集相关推荐

  1. 大数据之路——日志采集

    二.数据技术篇-- 日志采集 2.1 浏览器日志采集 2.1.1 页面型的日志采集分类 2.1.2 页面访问过程 2.1.3 页面浏览日志采集流程@ 2.1.4 页面交互日志采集 2.1.5 页面交互 ...

  2. Flume+Kafka双剑合璧玩转大数据平台日志采集

    点击上方蓝色字体,选择"设为星标" 回复"资源"获取更多资源 大数据技术与架构 点击右侧关注,大数据开发领域最强公众号! 大数据真好玩 点击右侧关注,大数据真好 ...

  3. 网站数据统计分析之二:前端日志采集是与非

    在上一篇<网站数据统计分析之一:日志收集原理及其实现>中,咱们详细的介绍了整个日志采集的原理与流程.但是不是这样在真实的业务环境中就万事大吉了呢?事实往往并非如此.比如针对前端采集日志,业 ...

  4. 大数据之路读书笔记-02日志采集

    大数据之路读书笔记-02日志采集 数据采集作为阿里大数据系统体系的第 环尤为重要.因此阿里巴巴建立了一套标准的数据采集体系方案,致力全面.高性能.规范地完成海量数据的采集,并将其传输到大数据平台.本章 ...

  5. 大数据项目之电商数仓、日志采集Flume配置概述、日志采集Flume配置实操

    文章目录 4. 用户行为数据采集模块 4.3 日志采集Flume 4.3.2 日志采集Flume配置概述 4.3.2.1 TailDirSource 4.3.2.2 KafkaChannel 4.3. ...

  6. 大数据之路、阿里巴巴大数据实践读书笔记 --- 第二章、日志采集

    一.日志采集两大体系: Aplus.JS   PC-WEB端 UserTrack   App-端 二.主要统计: 页面浏览(展示)日志采集 PV - Page View  页面浏览量 UV - Uni ...

  7. 采集虚拟机_系列文章:Kubernetes日志采集最佳实践

    前言 上一期主要介绍Kubernetes日志输出的一些注意事项,日志输出最终的目的还是做统一的采集和分析.在Kubernetes中,日志采集和普通虚拟机的方式有很大不同,相对实现难度和部署代价也略大, ...

  8. 日志采集框架Flume以及Flume的安装部署(一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统)...

    Flume支持众多的source和sink类型,详细手册可参考官方文档,更多source和sink组件 http://flume.apache.org/FlumeUserGuide.html Flum ...

  9. 容器日志采集利器Log-Pilot

    容器时代越来越多的传统应用将会逐渐容器化,而日志又是应用的一个关键环节,那么在应用容器化过程中,如何方便快捷高效地来自动发现和采集应用的日志,如何与日志存储系统协同来高效存储和搜索应用日志.本文将主要 ...

最新文章

  1. iOS10 UI教程基改变视图的外观与视图的可见性
  2. ubuntu系统下matplotlib中文乱码问题
  3. 如何捕获window.print点击打印或取消_原来1:1的CAD图纸要这样打印!学了这么久才知道...
  4. UBUNTU安装 Rabbitvsc可视化版本控制客户端软件
  5. python 装饰器简单笔记(附 *args **kw)
  6. 你认为已经过时的C语言,是如何影响500万程序员的?...
  7. pycharm与webstorm 2017 激活破解
  8. c++ 工厂模式_大连中山融雪剂工厂自营工厂批发
  9. centos7安装python3_详解Centos7升级python 2.7至Python 3.7
  10. php操作mysql数据库的扩展有哪些_PHP使用PDO扩展操作mysql数据库
  11. AVAudioRecorder(ios7)
  12. (转)2020年网络安全产业图谱
  13. JAVA课程设计(小游戏贪吃蛇)完整源码附素材(一)
  14. SIFT(Scale Invariant Feature Transform) 算法小结及实验
  15. 税法18个税种全总结附记忆小口诀
  16. 笔记本卡顿不流畅是什么原因_电脑卡顿不流畅是什么原因?
  17. VS2017编写汇编并调用c库函数(msvcrt.lib)
  18. day19 javamail
  19. WEB项目-音乐播放器
  20. 服务器白屏是系统在更新吗,远程服务器白屏怎么处理

热门文章

  1. matlab回归系数 t检验6,MATLAB回归分析如何提取t统计量及其p值
  2. 标准化与归一化的差异
  3. 求一个数的所有因数的和
  4. COM/DCOM开发之远程进程外组件(DCOM)
  5. EZDML生成Erupt代码详解
  6. GDAL使用DEM数据计算坡度坡向
  7. Deadlock found when trying to get lock(死锁)问题解决
  8. 科普|汽车毫米波雷达的规定和标准 雷达设备产品 无线电设备技术
  9. 图腾42u服务器机柜型号,图腾42u机柜一般多少斤
  10. html语言图像,[多选] HTML语言能描述图像的()