日志統計系統在站點(diǎn)的用戶(hù)行為分析中扮演了重要的角色,尤其是對于來(lái)自搜索引擎的關(guān)鍵詞訪(fǎng)問(wèn)統計:是很有效的用戶(hù)行為分析數據來(lái)源。隨著(zhù)互聯(lián)網(wǎng)多年的發(fā)展,WEB日志統計工具已經(jīng)越來(lái)越成熟,功能也越來(lái)越豐富。其中有很多是開(kāi)放源代碼的,AWStats就是其中非常優(yōu)秀的一款。
AWStats: Advanced Web Statistics
AWStats是最近發(fā)展很快的一個(gè)基于Perl的WEB日志分析工具。相對于另外一個(gè)非常優(yōu)秀的開(kāi)放源代碼的日志分析工具Webalizer,AWStats的優(yōu)勢在于:
界面友好:可以根據瀏覽器直接調用相應語(yǔ)言界面(有簡(jiǎn)體中文版)
參考輸出樣例:http://awstats.sourceforge.net/cgi-bin/awstats.pl
基于Perl:并且很好的解決了跨平臺問(wèn)題,系統本身可以運行在GNU/Linux上或Windows上(安裝了ActivePerl后);分析的日志直接支持Apache格式(combined)和IIS格式(需要修改)。Webalizer雖然也有Windows平臺版,但目前已經(jīng)缺乏維護;
AWStats完全可以實(shí)現用一套系統完成對自身站點(diǎn)不同服務(wù)器:GNU/Linux/Apache和Windows/IIS服務(wù)器的統一統計。
效率比較高:AWStats輸出統計項目比Webalizer豐富了很多,速度仍可以達到Webalizer的1/3左右,對于一個(gè)日訪(fǎng)問(wèn)量百萬(wàn)級的站點(diǎn),這個(gè)速度都是足夠的;
配置/定制方便:系統提供了足夠靈活但缺省也很合理的配置規則,需要修改的缺省配置不超過(guò)3,4項就可以開(kāi)始運行,而且修改和擴展的插件還是比較多的;
AWStats的設計者是面向精確的"Human visits"設計的,因此很多搜索引擎的機器人訪(fǎng)問(wèn)都被過(guò)濾掉了,因此有可能比其他日志統計工具統計的數字要低,來(lái)自公司內部的訪(fǎng)問(wèn)也可以通過(guò)IP過(guò)濾設置過(guò)濾掉。
提供了很多擴展的參數統計功能:使用ExtraXXXX系列配置生成針對具體應用的參數分析會(huì )對產(chǎn)品分析非常有用。
更多與其他工具:Webalizer, analog的比較請參考:
http://awstats.sourceforge.net/#COMPARISON
AWStats安裝備忘
AWStats的運行模式是這樣的:
分析日志:運行后將這樣的日志統計結果歸檔到一個(gè)AWStats的數據庫(純文本)里;
然后是輸出:分兩種形式
一種是通過(guò)cgi程序讀取統計結果數據庫輸出;
一種是運行后臺腳本將輸出導出成靜態(tài)文件;
以下是2個(gè)針對單個(gè)站點(diǎn)日志統計例子:
一個(gè)是在GNU/Linux上通過(guò)CGI方式的輸出,
一個(gè)是在Windows 2000上的基于靜態(tài)頁(yè)面的導出
下載/安裝
http://sourceforge.net/projects/awstats/ 下載安裝包后:
GNU/Linux:tar zxf awstats-5.4.tgz
#部署awstats cgi程序到/path/to/apache/cgi-bin/awstats
mv awstats-5.4/wwwroot/cgi-bin /path/to/apache/cgi-bin/awstats
#把圖標icon目錄復制到WEB發(fā)布目錄下:/path/to/apache/htdocs/icon/
Windows 2000: 直接解包,然后移動(dòng)到D:\AWStats目錄下
把圖標icon目錄復制到IIS的發(fā)布目錄下:inetpub/icon
數據源日志格式和按天的截斷規則
對于A(yíng)pache:日志格式好設置:設置成combined格式即可,日志截斷麻煩一點(diǎn):需要安裝cronolog工具,將日志設置成按天截斷:
CustomLog "|/usr/local/sbin/cronolog /path/to/apache/logs/access_%y%m%d.log" combined
比如:logs/access_030327.log logs/access_030326.log
對于IIS:缺省有比較好的日志按天截斷規則,但是IIS的日志格式比較不適合AWStats統計,
因此最好直接去掉所有日志字段,然后嚴格按照以下列表設置
日期 date
時(shí)間 time
客戶(hù)IP地址 c-ip
用戶(hù)名 cs-username
方法 cs-method
URI資源 cs-uri-stem
協(xié)議狀態(tài) sc-status
發(fā)送字節數 sc-bytes
協(xié)議版本 cs-version
用戶(hù)代理 cs(User-Agent)
參照 cs(Referer)
相比IIS缺省設置:
減少的有:
服務(wù)器IP地址
服務(wù)器端口
URI查詢(xún)
增加的有:
發(fā)送字節數
協(xié)議版本
參照
配置文件的命名規則:awstats.sitename.conf
AWStats的主程序awstats.pl會(huì )自動(dòng)根據站點(diǎn)名調用相應站點(diǎn)的配置文件:awstats.sitename.conf
比如:運行./awstats.pl -config=chedong 調用的就是同目錄下的 awstats.chedong.conf 配置文件;
如果沒(méi)有指定-config,還會(huì )找當前目錄下的awstats.conf或者/etc/awstats.conf作為缺省配置文件。
所以最好把缺省的awstats.model.conf 重命名成 awstats.yoursite.conf;比如:awstats.chedong.conf,
對于多個(gè)站點(diǎn)的統計,AWStats的配置文件包含功能還是非常有用的,我們可以把通用的配置放在一個(gè)文檔中,然后用5.4開(kāi)始支持的Include配置將通用配置包含在各個(gè)具體配置文件的頭部,然后用其他配置覆蓋通用配置中的相應屬性,比如:
Include="chedong.common.conf"
LogFile="/path/to/bbs/access_log"
SiteName="bbs.chedong.com"
最少的配置文件修改:LogFile SiteDomain LogFormat
對于在GNU/Linux上統計Apache日志只需修改:LogFile SiteDomain這2個(gè)選項
GNU/Linux LogFile="/path/to/apache/logs/access_%YY-24%MM-24%DD-24.log"
Windows 2000 LogFile="d:\iis_logs\W3SV3\ex%YY-24%MM-24%DD-24.log"
這個(gè)配置的意思是用24小時(shí)前的年份,月份,日期拼出的日志文件名;
SiteDomain="www.chedong.com"
站點(diǎn)的名稱(chēng),缺省是空的,如果為空,AWStats將拒絕運行;
對于統計IIS日志需要多修改一個(gè):
LogFormat=2
缺省值是1:Apache日志,2是IIS日志
其他需要注意的事項:
AWStats缺省不過(guò)濾swf文件,會(huì )把.swf算成PageView,所以如果站點(diǎn)上swf文件主要是廣告的話(huà)最好還是要過(guò)濾掉:
日志分析
./awstats.pl -update -config=sitename
比如:./awstats.pl -update -config=chedong
統計輸出
GNU/Linux http://localhost/cgi-bin/awstats/awstats.pl?config=chedong
Windows 2000 http://localhost/awstats/awstats.chedong.html
日志統計自動(dòng)運行
GNU/Linux上:crontab -e: 每天8點(diǎn)10分運行
#update awstats
10 8 * * * (cd /path/to/apache/cgi-bin/awstats/; ./awstats.pl -update -config=chedong)
Windows 2000上:設置每天8點(diǎn)10分運行
D:\Perl\bin\perl.exe d:\AWStats\tools\awstats_buildstaticpages.pl -update -config=chedong -lang=cn -dir=c:\inetpub\awstats\ -awstatsprog=d:\awstats\wwwroot\cgi-bin\awstats.pl
多站點(diǎn)日志統計
AWStats自帶了一個(gè)批處理工具:tools/awstats_updateall.pl,可以批量地遍歷一個(gè)目錄下所有地配置文件并運行統計。因此剩下的工作就主要是日志的同步問(wèn)題了。
針對多個(gè)站點(diǎn),很多配置選項是重復的,如果每個(gè)配置文件都修改維護起來(lái)會(huì )很麻煩,AWStats從5.4開(kāi)始提供了配置文件包含的功能,所以我們可以配置一個(gè)通用配置,比如:chedong.common.conf
然后其他站點(diǎn)的配置設置為:可以通過(guò)后面的選項覆蓋和缺省不一致的配置。
awstats.bbs.chedong.conf
Include "chedong.common.conf"
LogFile "/path/to/bbs_log"
SiteName "bbs.chedong.com"
awstats.www.chedong.conf
Include "chedong.common.conf"
LogFile "/path/to/www_log"
SiteName "www.chedong.com"
HostAliases="chedong.com"
統計指標說(shuō)明
參觀(guān)者:按來(lái)訪(fǎng)者不重復的IP統計,一個(gè)IP代表一個(gè)參觀(guān)者;
參觀(guān)次數:一個(gè)參觀(guān)者可能1天之內參觀(guān)多次(比如:上午一次,下午一次),所以按一定時(shí)間內(比如:1個(gè)小時(shí)),不重復的IP數統計,參觀(guān)者的訪(fǎng)問(wèn)次數;
網(wǎng)頁(yè)數:不包括圖片,CSS, JavaScript文件等的純頁(yè)面訪(fǎng)問(wèn)總數,但如果一個(gè)頁(yè)面使用了多個(gè)幀,每個(gè)幀都算一個(gè)頁(yè)面請求;
文件數:來(lái)自瀏覽器客戶(hù)端的文件請求總數,包括圖片,CSS,JavaScript等,用戶(hù)請求一個(gè)頁(yè)面是,如果頁(yè)面中包含圖片等,所以對服務(wù)器會(huì )發(fā)出多次文件請求,文件數一般遠遠大于文件數;
字節:傳給客戶(hù)端的數據總流量;
來(lái)自REFERER中的數據:日志中的參考(REFERER)字段,記錄了訪(fǎng)問(wèn)相應網(wǎng)頁(yè)之前地址,因此如果用戶(hù)是通過(guò)搜索引擎的搜索結果點(diǎn)擊進(jìn)入網(wǎng)站的,日志中就會(huì )有用戶(hù)在相應搜索引擎的查詢(xún)地址,這個(gè)地址中就可以通過(guò)解析將用戶(hù)查詢(xún)使用的關(guān)鍵詞提取出來(lái):
比如:
2003-03-26 15:43:58 123.123.123.123 - GET /index.html 200 192 HTTP/1.1 Mozilla/4.0+(compatible;+MSIE+5.01;+Windows+NT+5.0) http://www.google.com/search?q=chedong
AWStats在搜索引擎的關(guān)鍵短語(yǔ)和關(guān)鍵詞統計方面的功能還是比較完整的:可以對全世界3百多種機器爬蟲(chóng)進(jìn)行識別,并且可以識別大部分主流國際化搜索引擎和很多地區的本地語(yǔ)言搜索引擎。
Hacking AWStats
IIS按GMT時(shí)間的補?。篴wstats.pl
IIS的日志時(shí)間是格林威治之間,中國本地時(shí)間和GMT有+8個(gè)小時(shí)差距,如果直接用TIMEZONE插件從格林威治時(shí)間轉換會(huì )有40%的性能下降,這里有一個(gè)將時(shí)間按本地時(shí)間修改時(shí)間坐標的補?。?br>7696d7695
< my $TIME_ZONE = 8;
7698,7702c7697
< my $ix_local = $ix + $TIME_ZONE;
< if ($ix_local >= 24) {
< $ix_local = $ix_local - 24;
< }
< print "<TH width=19>$ix_local</TH>\n"; # width=19 instead of 18 to avoid a MacOS browser bug.
---
> print "<TH width=19>$ix</TH>\n"; # width=19 instead of 18 to avoid a MacOS browser bug.
7708,7712c7703
< my $ix_local = $ix + $TIME_ZONE;
< if ($ix_local >= 24) {
< $ix_local = $ix_local - 24;
< }
< my $hr= $ix_local + 1 ; if ($hr>12) { $hr=$hr-12; }
---
> my $hr=($ix+1); if ($hr>12) { $hr=$hr-12; }
針對中文搜索引擎的補?。?br>AWStats的搜索引擎中缺省沒(méi)有中文搜索引擎的定義,因此會(huì )漏掉很多來(lái)自國內主流搜速引擎的統計:3721,搜狐,新浪,百度,網(wǎng)易等,以下是針對這些的補?。篶gi-bin/lib/search_engine.pm
58a59,60
> # Minor Chinese search engines
> "baidu\.", "163\.com", "sohu\.","sina\.","3721\.com",
140a143,148
> # Minor Chinese search engines
> "baidu\.","word=",
> "sina\.", "word=",
> "sohu\.","word=",
> "163\.com","q=",
> "3721\.com","name=",
228a237,238
> # Minor Chinese search engines
> "baidu\.","Baidu", "163\.com","NetEase","sina\.","Sina","sohu\.","Sohu","3721\.com","3721",
針對Google的Unicode查詢(xún)補?。?br>因為Google對于Windows 2000上的IE瀏覽器缺省發(fā)送的查詢(xún)都是UTF-8格式的,而其他搜索引擎大部分使用的是系統本地編碼:GB2312,因此需要將查詢(xún)URI解碼后,還要根據是否使用UTF-8進(jìn)行到GB2312的轉碼,否則同樣的單詞會(huì )在統計中留有UTF-8和GB2312兩條記錄。
15,16c15,16
< use Encode;
< use URI::Escape;
---
>
>
5692,5694d5691
< #UTF-8 encoding detection
< my $UnicodeDetected = 0;
< my $SearchQuery = "";
5696,5701d5692
< # Google use: ie=utf-8
< # AllTheWeb use: cs=utf-8
< if ($param eq "ie=utf-8" || $param eq "cs=utf-8") {
< $UnicodeDetected = 1;
< }
<
5704d5694
< $param = uri_unescape($param);
5708,5712c5698,5700
< $param =~ s/^ +//;
< $param =~ s/ +$//;
< $param =~ tr/ /\+/s;
< $param =~ s/\+/ /s;
< $SearchQuery = $param;
---
> $param =~ s/^ +//; $param =~ s/ +$//; $param =~ tr/ /\+/s;
> if ((length $param) > 0) { $_keyphrases{$param}++; }
> last;
5714,5719d5701
<
< }
< #decoding unicode to GBK
< if ( $UnicodeDetected ) {
< $SearchQuery = decode("utf-8", $SearchQuery);
< $SearchQuery = encode("euc-cn", $SearchQuery);
5721,5722d5702
< print "$SearchQuery\n";
< if ((length $SearchQuery) > 0) { $_keyphrases{$SearchQuery}++; }
AWStats本身也包含了很多插件,包括將多個(gè)站點(diǎn)的統計再次匯總輸出,IIS日志時(shí)間轉換,URL的標題映射等;
http://awstats.sourceforge.net/awstats_contrib.html
參考資料:
AWStats:
http://awstats.sourceforge.net/
Webalizer:
http://www.webalizer.org/
日志分析工具:
http://directory.google.com/Top/Computers/Software/Internet/Site_Management/Log_Analysis/
商業(yè)日志統計/分析工具
http://directory.google.com/Top/Computers/Software/Internet/Site_Management/Log_Analysis/Commercial/
多站點(diǎn)的日志合并統計:
http://www.chedong.com/tech/rotate_merge_log.html
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。