當前位置:學問君>實用寫作>日記格式>

WEB日誌格式及分析

學問君 人氣:7.55K

網站日誌挖掘分析-WEB日誌格式及分析工具

WEB日誌格式及分析

WEB日誌是網站分析和網站數據數據整理最基礎的數據,瞭解其格式和組成將有利於更好地進行數據的收集、處理和分析。

一、日誌格式類型

目前常見的WEB日誌格式主要由兩類,一類是Apache的NCSA日誌格式,另一類是IIS的W3C日誌格式。NCSA格式又分爲NCSA普通日誌格式(CLF)和NCSA擴展日誌格式(ECLF)兩類,目前最常用的是NCSA擴展日誌格式(ECLF)及基於自訂類型的Apache日誌格式;而W3C擴展日誌格式(ExLF)具備了更爲豐富的輸出資訊,但目前的應用並不廣泛,所以這裏主要介紹的是NCSA擴展日誌格式(ECLF)。

二、常見日誌格式的組成

這是一個最常見的基於NCSA擴展日誌格式(ECLF)的Apache日誌樣例:

  – – [22/Feb/2010:09:51:46 +0800] “GET / HTTP/1.1″ 206 6326 ”” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)”

可以看到這個日誌主要由以下幾個部分組成:

訪問主機(remotehost)顯示主機的IP位址或者已解析的域名。

標識符(Ident)由identd或直接由瀏覽器返回瀏覽者的EMAIL或其他唯一標示,因爲涉及用戶郵箱等隱私資訊,目前幾乎所有的瀏覽器就取消了這項功能。

授權用戶(authuser)用於記錄瀏覽者進行身份驗證時提供的名字,如果需要身份驗證或者訪問密碼保護的資訊則這項不爲空,但目前大多數網站的日誌這項也都是爲空的。

日期時間(date)一般的格式形如[22/Feb/2010:09:51:46 +0800],即[日期/月份/年份:小時:分鐘:秒鐘時區],佔用的的字元位數也基本固定。

請求(request)即在網站上透過何種方式獲取了哪些資訊,也是日誌中較爲重要的一項,主要包括以下三個部分:

請求類型(METHOD)常見的請求類型主要包括GET/POST/HEAD這三種;

請求資源(RESOURCE)顯示的是相應資源的URL,可以是某個網頁的地址,也可以是網頁上調用的圖片、動畫、CSS等資源;

協議版本號(PROTOCOL)顯示協議及版本資訊,通常是HTTP/1.1或HTTP/1.0。

狀態碼(status)用於表示服務器的響應狀態,通常1xx的狀態碼錶示繼續消息;2xx表示請求成功;3xx表示請求的重定向;4xx表示客戶端錯誤;5xx表示服務器錯誤。

傳輸字節數(bytes)即該次請求中一共傳輸的.字節數。

來源頁面(referrer)用於表示瀏覽者在訪問該頁面之前所瀏覽的頁面,只有從上一頁面連結過來的請求才會有該項輸出,如果是新開的頁面則該項爲空。上例中來源頁面是google,即用戶從google搜尋的結果中點擊進入。

用戶代理(agent)用於顯示用戶的詳細資訊,包括IP、OS、Bowser等。

三、日誌格式擴展

apache日誌格式可以自訂來配置其輸出格式,常見的基於NCSA擴展日誌格式(ECLF)自訂添加的包括域名(domain)和cookie。其中域名在一個網站擁有二級域名或者子域名時,可以更好地區分日誌;而cookie可以作爲用戶的身份標識。其他具體的自訂資訊詳見:Custom Log Formats

四、匯入日誌數據到MySQL中

訪問分析是SEO的一項重要工作,但統計、分析工具畢竟功能是針對大衆的,很多時候SEO需要一些特定的數據,是統計分析軟件、程序所不能提供的。這樣,直接的Web日誌分析就是最合適的了,日誌中會記錄每一個訪問情況,只要按自己的意願提取、組合,就能得到想要的數據。使用SQL語句分析是最方便的,需要什麼樣的數據,只要使用相應的SQL命令就能實現。

匯入Web日誌到MySQL數據庫的實現

1、修改Apache日誌格式

修改Web日誌格式爲:

?

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

SQL需要匯入的內容有特定的分隔符,Apache的日誌默認是以空格分隔的,而有些內容(如狀態碼中的 200 610)也包含空格,這就無法準確的匯入。將日誌格式修改爲以逗號分隔,就能準確的匯入了。還可以根據自己的需要,取消日誌格式中不需要的內容,減少日誌檔案大小。

2、建立MySQL數據表

123456789101112131415drop 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中

1LOAD DATA INFILE ’/日誌位置/日誌檔案’ INTO TABLE weblog FIELDS TERMINATED BY ‘,’;

weblog 對應上面的數據表名。

另外,樂思蜀從網上找到一個將IIS日誌匯入到MySQL數據庫的程序,需要的點這裏下載(爲使用說明)。

五、常用日誌分析工具

ats

og

lizer

yVisites

TAGS:日誌 格式 Web