如何将Web日志导入到MySQL数据库

2009年06月14日  |  11:04 下午分类:网络资源与工具  |  标签:  |  389 views

访问分析是SEO的一项重要工作,但统计、分析工具毕竟功能是针对大众的,很多时候SEO需要一些特定的数据,是统计分析软件、程序所不能提供的。这样,直接的Web日志分析就是最合适的了,日志中会记录每一个访问情况,只要按自己的意愿提取、组合,就能得到想要的数据。

就这个问题与星箭聊了挺长时间,最后一致认为将日志导入到SQL数据库(MySQL & SQL Server)中,使用SQL语句分析是最方便的,需要什么样的数据,只要使用相应的SQL命令就能实现。

我的服务器是Linux的,没有 SQL Server,之前就没再继续这件事。今天聊到这个话题时认真的搜索了一下,找到了使用MySQL分析日志的第一步,记录在此。

下一步的分析方法我有心得后会发布在博客中,有兴趣的朋友可以留意;同时,征集精通于SQL语句的朋友,一起讨论分析的各种方法,并分享给其他朋友。

导入Web日志到MySQL数据库的实现

1、修改Apache日志格式

修改Web日志格式为:

Logformat combined %>a,%ui,%un,[%tl],”%rm %ru HTTP/%rv”,%Hs,%h”,”%{User-Agent}>h”,%Ss:%Sh

明白的朋友应该一看就知道了,SQL需要导入的内容有特定的分隔符,Apache的日志默认是以空格分隔的,而有些内容(如状态码中的 200 610)也包含空格,这就无法准确的导入。

将日志格式修改为以逗号分隔,就能准确的导入了。还可以根据自己的需要,取消日志格式中不需要的内容,减少日志文件大小。

2、建立MySQL数据表

drop table if exists weblog;
create table weblog (
id int unsigned auto_increment PRIMARY KEY not null,
l_date date,
l_time time,
c_ip varchar(15),
s_ip varchar(15),
s_port varchar(5),
method varchar(10),
path varchar(255),
query varchar(255),
status varchar(3),
domain varchar(50),
system varchar(200)
);

注:上面只是一个MySQL数据表结构范例,没有与上一步日志格式对应,请勿直接复制使用!

新建一个数据库,数据表结构与日志格式对应起来。

3、导入日志到MySQL中

LOAD DATA INFILE  ’/日志位置/日志文件’  INTO TABLE weblog FIELDS TERMINATED BY ‘,’;

weblog 对应上面的数据表名。

第二步就是分析了,如上所说,有心得后再分享。

另外,从网上找到一个将IIS日志导入到MySQL数据库的.pl程序,原理相通的,需要的点这里下载(Readme.txt为使用说明)。

◎ 如果喜欢本文,你可以 订阅本站全文,以便获取更多相关的信息。

◎ 转载本站文章请在文中注明「转载自 长沙SEO博客 字样,并附上本站链接,敬请合作!

◎ 本文永久链接:http://www.changshaseo.com/seo-tools/52.html
喜欢本文,那就收藏到: Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 POCO网摘 添加到饭否 QQ书签 Digbuzz我挖网

发表您的评论

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word