网站日志分析(一)

利用阿里云数加平台进行网站日志分析(一)

基于茶叶网站的日志分析
注:实验所用数据并非真实数加,只是模拟用户操作数据。
概述:
网站访问日志是用户在访问网站服务器时产生的日志,它包含了各种原始信息,一般以.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
•	);
•	 
•	--使用正则表达式提取并向临时表插入数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值