网站流量日志数据分析

网站流量日志数据分析系统

点击流数据模型

  1. 点击流(Click Stream)是指用户在网站上持续访问的轨迹,我们通过对网站日志的分析可以获得用户的点击流数据。
  2. 点击数据在数据建模时存在两张模型表 Pageviews 和 visits

网站流量分析

  1. 网站流量分析模型举例
  • 网站流量质量分析
    流量并不是越多越好,应该更加看重流量的质量
  • 网站流量多维度细分
    细分是指通过不同维度对指标进行分割

  • 网站内容及导航分析

第一个问题:访问者从导航页(首页)还没有看到内容页面之前就从导航页
离开网站,需要分析导航页造成访问者中途离开的原因。
第二个问题:访问者从导航页进入内容页后,又返回到导航页,说明需要分
析内容页的最初设计,并考虑中内容页提供交叉的信息推荐。

  • 网站转化以及漏斗分析
    ①阻力的流失
    比如:不恰当的商品或活动推荐,对支付环节中专业名词的解释、帮助信息等内容不当。
    ②迷失
    比如在线购买演唱会门票,直到支付也没看到在线选座的提示,这时候就很可能会产生迷失,返回查看。
  1. 流量分析常见分类
    指标是网站分析的基础,用来记录和衡量访问者在网站自的各种行为。
  • 骨灰级指标:IP访问网站的不重复 IP 数、PageView页面被加载的总次数、Unique PageView访问网站的不重复用户数
  • 基础级指标:访问次数、网站停留时间、页面停留时间
  • 复合级指标:人均浏览页数、跳出率(单页访问)、退出率

整体技术流程及架构

数据处理流程

  • 数据采集:定制开发采集程序,或使用开源框架 Flume
  • 数据预处理:定制开发 mapreduce 程序运行于 hadoop 集群
  • 数据仓库技术:基于 hadoop 之上的 Hive
  • 数据导出:基于 hadoop 的 sqoop 数据导入导出工具
  • 数据可视化:定制开发 web 程序(echarts)或使用 kettle 等产品
  • 整个过程的流程调度:hadoop 生态圈中的 azkaban 工具或其他类似 开源产品

项目结构

模块开发---- 数据采集

Flume日志采集系统搭建

  1. nginx日志切割
    nginx文件存储日志不会自动地进行切割,都是写在一个文件 access.log 当中,切割需要使用 date 命令以获得昨天的日期、使用 kill 命令向 Nginx 进程发送重新打开日志文件的信号,以及 crontab 设置执行任务周期。

自动切割 shell 脚本 nginx_log.sh:


#!/bin/bash
#设置日志文件存放目录
logs_path="/usr/local/nginx/logs/"
#设置 pid 文件
pid_path="/usr/local/nginx/nginx-1.7.3/logs/nginx.pid"
#日志文件
filepath=${logs_path}"access.log"
# Source function library.
#重命名日志文件
mv ${logs_path}access.log ${logs_path}access_$(date -d '-1 day' '+%Y-%m-%d').log
#向 nginx 主进程发信号重新打开日志
kill -USR1 `cat ${pid_path}`

crontab设置作业(每天零时零分执行)

#设置日志文件存放目录 crontab -e
0 0 * * * sh /usr/local/nginx/nginx_log.sh

采集实现

  1. 在个 web 服务器上部署 agent 节点,修改配置文件
  2. 启动 agent 节点,将采集到的数据汇聚到指定的 HDFS 目录中

使用aildirSource,可以监控一个目录,并且使用正则表达式匹配该目录中的文件名进行实时收集。

#核心配置
a1.sources = r1
a1.sources.r1.type = TAILDIR
a1.sources.r1.channels = c1
a1.sources.r1.positionFile = /var/log/flume/taildir_position.json
a1.sources.r1.filegroups = f1 f2
a1.sources.r1.filegroups.f1 = /var/log/test1/example.log
a1.sources.r1.filegroups.f2 = /var/log/test2/.*log.*
  • filegroups:指定 filegroups,可以有多个,以空格分隔;(TailSource 可以同时监控tail 多个目录中的文件)
  • positionFile:配置检查点文件的路径,检查点文件会以 json 格式保存已经 tail 文件的位置,解决了断点不能续传的缺陷。
  • filegroups.

模块开发----数据预处理

主要目的

  • 清理不合规无意义的数据
  • 格式转换和规整
  • 根据后续的统计需求,过滤分离出各种不同主题的基础数据。

猜你喜欢

转载自www.cnblogs.com/lifuwei/p/9416080.html