离线日志分析系统(一)

该系统主要对前一天ngnix日志进行离线批处理统计和分析,从大量数据中晒出有价值的数据,为上层决策提供数据支持,主要思想是MapReduce。使用分布式HDFS文件系统作为离线数据存储,使用hive简化MapReduce开发。

ngnix 日志的格式很简单,我们要做的就是从中发掘出有价值的数据,ngnix的access.log的格式,摘抄部分日志

1
2
127.0.0.1 - - [05/Sep/2018:23:18:22 +0800] "GET /favicon.ico HTTP/1.1" 502 575 "http://localhost:8080/4DAnalog/clashreport/delete" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36"
127.0.0.1 - - [05/Sep/2018:23:18:40 +0800] "GET /4DAnalog/clashreport/find HTTP/1.1" 502 575 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36"

下面表格对上面每个字段进行了详细描述

位置字段说明
1ip127.0.0.1
2实际上绝大多数时候这一项都是如此。这个位置用于记录浏览者的标识-
3记录浏览者进行身份验证时提供的名字-
4请求的时间[05/Sep/2018:23:18:22 +0800]
5访问请求方式GET
6浏览者请求资源路径/4DAnalog/clashreport/delete
7访问协议HTTP/1.1"
8状态代码502
9发送给客户端的总字节数,它告诉我们传输是否被打断,把日志记录中的这些值加起来就可以得知服务器在某一段时间发送了多少数据。575
10请求来访地址referer,可以利用它分析出访问者从哪来的http://localhost:8080/4DAnalog/clashreport/delete
11浏览器信息Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36

统计指标汇总

下面对统计的指标左简单概述

1.某时间段的PVS

从中可以繁衍出各种维度的PVS,比如1天中每个小时的PVS,1天中每分钟的PVS,一个月中每天的PVS

2.浏览器

其中可以统计从Firfox跳转过来的PVS、从Chrome跳转过来的PVS、从IE跳转过来的PVS

3.某时间段内的人均浏览页数

从中可以繁衍出各种维度的指标,比如一个月内每日人均浏览页,一天中每小时的浏览页等

4.搜索引擎

从百度跳转过来的人数、从bing跳转过来的人数、从google跳转过来的人数

5.TopN指标

一天内访问页面热度排行,某小时内访问页面热度排行,一个月页面热度排行

6.独立访客

一年内每个月的独立访客、一个月内每天的独立访客

7.回头客/单次访客

一个月内回头客/单次访客

8.转换率

生成一个月内评估业务指标的数据(各个业务的转换率)