利用阿里云数加平台进行网站日志分析(一)
基于茶叶网站的日志分析
注:实验所用数据并非真实数加,只是模拟用户操作数据。
概述:
网站访问日志是用户在访问网站服务器时产生的日志,它包含了各种原始信息,一般以.log结尾。通过它就可以清楚的知道用户的IP,访问时间,请求链接,请求状态,请求字节数,来源链接,用户操作系统,浏览器内核,浏览器名称,浏览器版本等等信息。对网站日志的分析统计可以使我们了解网站当前的一些状况,为网站的各种优化升级甚至公司营销策略提供依据。
实验步骤:
• 首先要处理网站日志文件,日志格式:
• 120.26.64.126 - - [21/Aug/2017:23:59:03 +0800] “HEAD / HTTP/1.1” 301 0 “-” “Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)”
我们要在每条数据前面加上一个编号。以空格格开。
使用java语言处理
• import java.io.*;
•
• public class LogParser {
• /**
• * 日志文件预处理
• *
• * @param inPath 日志文件输入地址
• * @param outPath 输出地址
• * @throws IOException
• */
• public void accessLogId(String inPath, String outPath) throws IOException {
• String line = "";
• long index = 0;
• BufferedReader bufferReader = null;
• FileWriter fileWriter = null;
• try {
• bufferReader = new BufferedReader(new FileReader(inPath));
• File outFile = new File(outPath);
• if (outFile.exists()) {
• outFile.delete();
• }
• outFile.createNewFile();
•
• fileWriter = new FileWriter(outFile);
• while ((line = bufferReader.readLine()) != null) {
• index++;
• String newLine = String.valueOf(index) + " " + line + "\r\n";
• fileWriter.write(newLine);
• }
• } finally {
• if (bufferReader != null) {
• bufferReader.close();
• }
• if (fileWriter != null) {
• fileWriter.close();
• }
• }
•
• }
•
• public static void main(String[] args) {
• try {
• LogParser logParser = new LogParser();
• //日志文件预处理 传入输入和输出地址
• logParser.accessLogId("日志文件地址", "输出地址");
• } catch (IOException e) {
• e.printStackTrace();
• }
• }
• }
• 进入到阿里云MaxCompute 产品页面,下载客户端工具。
• 参考下载地址:https://help.aliyun.com/product/27797.html
• 下载完成之后解压,编辑conf目录下的odps_config.ini文件,配置三个属性
project_name为项目名称
access_id为子用户名称
accsee_key为子用户密码
其他属性:
• 配置完成后双击bin目录下的odpscmd.bat
登录成功如图所示
新建表
• CREATE TABLE access_log(content STRING);//处理过的日志文件
• CREATE TABLE ip (content STRING);//IP地址表
导入数据
• tunnel upload -fd "NoDelimiter" D:\log.txt access_log;
• tunnel upload -fd "NoDelimiter " D:\ip.txt ip;
导入成功后如图所示
接下来使用阿里云的数加工具MaxCompute处理数据。
这里要有阿里云的账号。具体如何注册账号并开通服务,我之前的博客有写过!
看这里
阿里云如何注册以及创建工作空间
• 点击登录,在左侧导航栏中找到大数据(数加)下的Dataworks,然后找到之前上传数据时所填写的工作空间,点击进入数据开发。然后新建一个业务流程。
业务流程如图所示:
• 除开始和结束两个虚节点外,其余均为ODPS_SQL类型的组件。
• 开始节点需设置根节点,双击开始节点,点击调度配置
选择使用工作空间节点,加载完后,点击保存
• 我们可以双击拖好的节点,或右击选择打开节点,进入节点执行的脚本编辑页面。
每个脚本编辑内容为利用正则表达式提取日志内容
需要根据日志逐个编写。
• 首先是日志文件属性提取,脚本如下:
• --初始化临时表
• DROP TABLE IF EXISTS t_web_access_log_tmp1;
• CREATE TABLE t_web_access_log_tmp1 (
• id BIGINT,
• ip STRING,
• ip_num BIGINT,
• ip_1 BIGINT,
• access_time STRING,
• url STRING,
• status STRING,
• traffic STRING,
• referer STRING,
• c_info STRING
• );
•
• --使用正则表达式提取并向临时表插入数据
•