茫茫網海中的冷日 - 對這文章發表回應
茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1729936 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
IMG_DPP_0014.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

對這文章發表回應

發表限制: 非會員 可以發表

發表者: 冷日 發表時間: 2005/9/19 5:11:17
AWStats: Apache/IIS的日誌分析工具 ——在GNU/Linux和Windows平台上的使用簡介

作者: 車東 Email: chedongATbigfoot.com/chedongATchedong.com

寫於:2003/04 最後更新: Wed, 16 Mar 2005 08:25:36 GMT
Feed Back >> ( Read this before you ask question )

版權聲明:可以任意轉載,轉載時請務必以超鏈接形式標明文章原始出處和作者信息及本聲明
http://www.chedong.com/tech/awstats.html

關鍵詞:awstats web log analysis apache iis 日誌 分析 open source

你完全不必耐心看完所有內容:簡要安裝說明如下
安裝
====
http://sourceforge.net/projects/awstats/ 下載安裝包後:
GNU/Linux:tar zxf awstats-version.tgz
awstats的腳本和靜態文件缺省都在wwwroot目錄下:將cgi-bin目錄下的文件都部署awstats.pl程序到/home/apache/cgi-bin/awstats/ 下

mv awstats-version/wwwroot/cgi-bin /path/to/apache/cgi-bin/awstats
#把圖標等文件目錄複製到WEB的HTML文件發布目錄下:/home/apache/htdocs/ 下發布
更多的批量更新腳本等在tools 目錄下,可以一併放到cgi-bin/awstats/ 目錄下
升級國內主要搜索引擎定義:http://www.chedong.com/tech/search_engines.pm

配置
====
將缺省awstats.model.conf 命名成common.conf
修改其中的
LoadPlugin="decodeutfkeys"

創建awstats下創建:data 目錄用於統計數據輸出

按照一下樣例設置配置文件:
Include "common.conf"
LogFile="/home/apache/logs/access_log.%YYYY-24%MM-24%DD-24"
SiteDomain="www.chedong.com"
HostAliases="chedong.com"
DefaultFile="index.html"
DirData="/home/cgi-bin/awstats/data/"

內容摘要:AWStats的使用簡介和配置一些改進說明。很高興看到在AWStats 6.3版本開始:中文用戶基本上已經只需要將配置文件中將 LoadPlugin="decodeutfkeys" 啟用基本上就沒有什麼中文搜索引擎的統計問題了,目前增加了# Minor chinese search engines
'baidu.com','search.sina.com','search.sohu.com',這3個搜索引擎。 包含了針對國內主要搜索引擎和門戶網站定義的補丁(解包後覆蓋lib目錄下的原程序目錄即可)

<p style="font-style: italic;"> 日誌統計系統在站點的用戶行為分析中扮演了重要的角色,尤其是對於來自搜索引擎的關鍵詞 訪問統計:是很有效的用戶行為分析數據來源。隨著互聯網多年的發展,WEB日誌統計工具已經越來越成熟,功能也越來越豐富。其中有很多是開放源代碼的, AWStats就是其中非常優秀的一款。

AWStats: Advanced Web Statistics

AWStats 是在 Sourceforge 上發展很快的一個基於Perl的WEB日誌分析工具。相對於另外一個非常優秀的開放源代碼的日誌分析工具 Webalizer ,AWStats的優勢在於:

  1. 界面友好:可以根據瀏覽器直接調用相應語言界面(有簡體中文版)
    參考輸出樣例:
    <a href="http://www.chedong.com/cgi-bin/awstats/awstats.pl?config=chedong">http://www.chedong.com/cgi-bin/awstats/awstats.pl?config=chedong
  2. 基於Perl:並且很好的解決了跨平台問題,系統本身可以運行在GNU/Linux上或Windows上(安裝了 ActivePerl 後);分析的日誌直接支持Apache格式 (combined)和IIS格式(需要修改)。Webalizer雖然也有 Windows平台版 ,但目前已經缺乏 維護;
    AWStats完全可以實現用一套系統完成對自身站點不同WEB服務器:GNU/Linux/Apache和Windows/IIS服務器的統一統計。
  3. 效率比較高:AWStats輸出統計項目比Webalizer豐富了很多,速度仍可以達到Webalizer的1/3左右,對於一個日訪問量百萬級的站點,這個速度都是足夠的;
  4. 配置/定製方便:系統提供了足夠靈活但缺省也很合理的配置規則,需要修改的缺省配置不超過3,4項就可以開始運行,而且修改和擴展的插件還是比較多的;
  5. AWStats的設計者是面向精確的"Human
    visits"設計的,因此很多搜索引擎的機器人訪問都被過濾掉了,因此有可能比其他日誌統計工具統計的數字要低,來自公司內部的訪問也可以通過IP過濾設置過濾掉。
  6. 提供了很多擴展的參數統計功能:使用ExtraXXXX系列配置生成針對具體應用的參數分析會對產品分析非常有用。

更多與其他工具:Webalizer, analog的比較請參考:
http://awstats.sourceforge.net/#COMPARISON

AWStats安裝備忘

AWStats的運行模式是這樣的:

  1. 分析日誌:運行後將這樣的日誌統計結果歸檔到一個AWStats的數據庫(純文本)裡;
  2. 然後是輸出:分兩種形式
      • 一種是通過cgi程序讀取統計結果數據庫輸出;
      • 一種是運行後台腳本將輸出導出成靜態文件;

      以下是2個針對單個站點日誌統計例子:
      一個是在GNU/Linux上通過CGI方式的輸出,
      一個是在Windows 2000上的基於靜態頁面的導出

      下載/安裝 http://sourceforge.net/projects/awstats/ 下載安裝包後:


      GNU/Linux:tar zxf awstats-version.tgz
      awstats的腳本和靜態文件缺省都在wwwroot目錄下:將cgi-bin目錄下的文件都部署awstats.pl程序到/home/apache/cgi-bin/awstats/ 下
      mv awstats-version/wwwroot/cgi-bin /path/to/apache/cgi-bin/awstats
      #把圖標等文件目錄複製到WEB的HTML文件發布目錄下:/home/apache/htdocs/ 下發布
      更多的批量更新腳本等在tools 目錄下,可以一併放到cgi-bin/awstats/ 目錄下,

      Windows 2000:按照後台腳本模式運行,直接解包,然後移動到D:AWStats目錄下
      把圖標icon目錄複製到IIS的發布目錄下:inetpub/icon

      數據源日誌格式和按天的截斷規則
      1. 對於Apache:日誌格式好設置:設置成combined格式即可,日誌截斷麻煩一點:需要安裝 cronolog 工具,將日誌設置成按天截斷:
        CustomLog "|/usr/local/sbin/cronolog/path/to/apache/logs/access_log.%Y%m%d" combined
        比如:logs/access_log.20030326
        日誌是壓縮格式,可以使用gzip -d< /home/apache/logs/access_log.%YYYY-24%MM-24%DD-24.gz | 動態解壓縮統計。

      2. 對於IIS:缺省有比較好的日誌按天截斷規則,但是IIS的日誌格式比較不適合AWStats統計,
        因此最好直接去掉所有日誌字段,然後嚴格按照以下列表設置
        • 日期 date
        • 時間 time
        • 客戶IP地址 c-ip
        • 用戶名 cs-username
        • 方法 cs-method
        • URI資源 cs-uri-stem
        • 協議狀態 sc-status
        • 發送字節數 sc-bytes
        • 協議版本 cs-version
        • 用戶代理 cs(User-Agent)
        • 參照 cs(Referer)
        相比IIS缺省設置:
        減少的有:
        • 服務器IP地址
        • 服務器端口
        • URI查詢
        增加的有:
        • 發送字節數
        • 協議版本
        • 參照
      配置文件的命名規則:awstats.sitename.conf

      AWStats的主程序awstats.pl會自動根據站點名調用相應站點的配置文件:awstats.sitename.conf
      比如:運行./awstats.pl -config=chedong 調用的就是同目錄下的 awstats.chedong.conf 配置文件;
      如果沒有指定-config,還會找當前目錄下的awstats.conf或者/etc/awstats.conf作為缺省配置文件。

      所以最好把缺省的awstats.model.conf 重命名成awstats.yoursite.conf;比如:awstats.chedong.conf,

      對於多個站點的統計,AWStats的配置文件包含功能還是非常有用的,我們可以把通用的配置放在一個文檔中,然後用(5.4版本以後開始支持) Include配置將通用配置包含在各個具體配置文件的頭部,然後用其他配置覆蓋通用配置中的相應屬性,比如:
      Include="common.conf"
      LogFile="/path/to/bbs/access_log"
      SiteName="bbs.chedong.com"

      最少的配置文件修改:LogFile SiteDomain LogFormat

      對於在GNU/Linux上統計Apache日誌只需修改:LogFile SiteDomain這2個選項

      1. GNU/LinuxLogFile="/path/to/apache/logs/access_log.%YYYY-24%MM-24%DD-24"
        Windows 2000 LogFile="d:iis_logsW3SV3ex%YY-24%MM-24%DD-24.log"
        這個配置的意思是用24小時前的年份,月份,日期拼出的日誌文件名;
      2. SiteDomain="www.chedong.com"
        站點的名稱,缺省是空的,如果為空,AWStats將拒絕運行;
      3. 對於統計IIS日誌需要多修改一個:
        LogFormat=2
        缺省值是1:Apache日誌,2是IIS日誌

      其他需要注意的事項:

      AWStats缺省不過濾swf文件,會把.swf算成PageView,所以如果站點上swf文件主要是廣告的話最好還是要過濾掉:

      日誌分析

      ./awstats.pl -update -config=sitename -lang=cn
      比如:./awstats.pl -update -config= chedong
      會自動調用awstats. chedong.conf這個配置文件

      統計輸出

      GNU/Linux http://localhost/cgi-bin/awstats/awstats.pl?config=chedong
      Windows 2000 http://localhost/awstats/awstats.chedong.html

      日誌統計自動運行

      GNU/Linux上:crontab -e: 每天8點10分運行
      #update awstats
      10 8 * * * (cd /path/to/apache/cgi-bin/awstats/; ./awstats.pl -update-config=chedong)

      Windows 2000上:設置每天8點10分運行
      D:Perlinperl.exe d:AWStats oolsawstats_buildstaticpages.pl -update -config=chedong -lang=cn -dir=c:inetpubawstats-awstatsprog=d:awstatswwwrootcgi-binawstats.pl

      多站點日誌統計

      AWStats自帶了一個批處理工具:tools/awstats_updateall.pl,可以批量地遍歷一個目錄下所有地配置文件並運行統 計。因此剩下的工作就主要是日誌的同步問題了。


      針對多個站點,很多配置選項是重複的,如果每個配置文件都修改維護起來會很麻煩,AWStats從5.4版本開始提供了配置文件包含的功能,所以我們可 以配置一個通用配置,比如:common.conf

      然後其他站點的配置設置為:可以通過後面的選項覆蓋和缺省不一致的配置。
      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"

      統計指標說明
      • 參觀者:按來訪者不重複的IP統計,一個IP代表一個參觀者;
      • 參觀次數:一個參觀者可能1天之內參觀多次(比如:上午一次,下午一次),所以按一定時間內(比如:1個小時),不重複的IP數統計,參觀者的訪問次數;
      • 網頁數:不包括圖片,CSS, JavaScript文件等的純頁面訪問總數,但如果一個頁面使用了多個幀,每個幀都算一個頁面請求;

      • 文件數:來自瀏覽器客戶端的文件請求總數,包括圖片,CSS,JavaScript等,用戶請求一個頁面是,如果頁面中包含圖片等,所以對服務器會發出多次文件請求,文件數一般遠遠大於文件數;
      • 字節:傳給客戶端的數據總流量;
      • 來自REFERER中的數據:日誌中的參考(REFERER)字段,記錄了訪問相應網頁之前地址,因此如果用戶是通過搜索引擎的搜索結果點擊進入網站的,日誌中就會有用戶在相應搜索引擎的查詢地址,這個地址中就可以通過解析將用戶查詢使用的關鍵詞提取出來:
        比如:
        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在搜索引擎的關鍵短語和關鍵詞統計方面的功能還是比較完整的:可以對全世界3百多種機器爬蟲進行識別,並且可以識別大部分主流國際化搜索引擎和很多地區的本地語言搜索引擎。
      Hacking AWStats <s> IIS按GMT時間的補丁:awstats.pl

      IIS的日誌時間是格林威治之間,中國本地時間和GMT有+8個小時差距,如果直接用TIMEZONE插件從格林威治時間轉換會有40%的性能下降,這裡有一個將時間按本地時間修改時間坐標的補丁:</s>
      <s>7696d7695
      < my $TIME_ZONE = 8;
      7698,7702c7697
      < my $ix_local = $ix + $TIME_ZONE;
      < if ($ix_local >= 24) {
      < $ix_local = $ix_local - 24;
      < }
      < print "$ix_local
      "; # width=19 instead of 18 to avoid a MacOS browser bug.
      ---
      > print "$ix
      "; # 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; }
      </s>
      <s>

      </s>

      <s> 在Awstats 5.5以後中已經加入了針對中文主要搜索引擎的定義:這裡是補充後的完整列表(包括了主要門戶搜索和搜索門戶)
      62c60
      < "baidu.com","search.sina.com","search.sohu.com",
      ---

      >"baidu.com","sina.com","3721.com","163.com","tom.com","sohu.com",
      </s>

      <s> 153c144
      < "baidu.com","word=", "search.sina.com", "word=", "search.sohu.com","word=",
      ---
      > "baidu.com","word=", "sina.com", "word=", "3721.com","name=","163.com","q=","tom.com","word=","sohu.com","word=",
      </s>

      <s> 250c234
      < "baidu.com","Baidu", "search.sina.com","Sina", "search.sohu.com","Sohu",
      ---
      > "baidu.com","Baidu", "sina.com","Sina","3721.com","3721","163.com","NetEase","tom.com","Tom","sohu.com","Sohu",
      </s>

      <s> 對Google的Unicode查詢還是需要一些查詢補丁:
      因為Google對於Windows 2000以上的IE瀏覽器缺省發送的查詢都是UTF-8格式的,而其他搜索引擎大部分使用的是系統本地編碼:GB2312,因此需要將查詢URI解碼後, 還要根據是否使用UTF-8進行到GB2312的轉碼,否則同樣的單詞會在統計中留有UTF-8和GB2312兩條記錄。
      </s>

      <s> 我增加了以下函數用於Google UTF-8字符的解碼和類似於「xc4xbexd7xd3xc3xc0」這樣查詢的解碼
      sub Utf8_To_Ascii {

      my $string = shift;
      my $encoding = shift;

      # change xc4xbexd7xd3xc3xc0 into%c4%be%d7%d3%c3%c0
      $string =~ s/\x(w{2})/%1/gi;

      # uri unescape
      $string = uri_unescape($string);

      if ( $string =~m/^([x00-x7f]|[xc2-xdf][x80-xbf]|xe0[xa0-xbf][x80-xbf]|[xe1-xef][x80-xbf][
      x80-xbf]|xf0[x90-xbf][x80-xbf][x80-xbf]|[xf1-xf7][x80-xbf][x80-xbf][x80-xbf])*$/)
      {
      $string =decode("utf-8", $string);
      $string =encode($encoding, $string);
      }

      # trim space
      $string =~ s/^s+//;
      $string =~ s/s+$//;

      # reverse "+", ";" to space
      $string =~ s/;+//g;
      $string =~ s/s+/+/g;

      #print $string."
      ";
      return $string;
      }
      </s>

      <s> 這裡有 更多關於GOOGLE UTF-8查詢的補丁
      </s>

      基於地理信息的插件安裝:

      GeoIP 和 Geo::IPfree(awstats 5.5+)

      GeoIP和Geo::IPfree都免費的是國家/IP的影射表,比通過DNS反相解析域名得到的統計準確,而且速度快。GeoIP的API都是免費 的,缺省庫是免費的,收費的是它的數據更新服務。Geo::IPfree不僅代碼是公開的,而且庫數據也是公開的,因此可以自己定製,我曾經設想做一個中國城市到IP的映射。

      GeoIP安裝:
      先下載C庫: GeoIP C 解包後
      %./configure; make
      #make install

      然後下載Perl庫: GeoIP Perl 解包後
      %perl MakeFile.PL; make
      #make install

      Geo::IPfree安裝:
      下載 Geo::IPfree 解 包後
      %perl Makefile
      %make
      #make install

      配置:通過在配置文件中啟用插件GeoIP或者Geo::IPfree

      參考資料:

      AWStats
      http://awstats.sourceforge.net/

      Webalizer
      http://www.webalizer.org/

      日志分析工具
      http://directory.google.com/Top/Computers/Software/Internet/Site_Management/Log_Analysis/

      商業日誌統計/分析工具
      http://directory.google.com/Top/Computers/Software/Internet/Site_Management/Log_Analysis/Commercial/

      多站點的日誌合併統計:
      http://www.chedong.com/tech/rotate_merge_log.html

      日誌統計對於分析搜索引擎對站點的影響具有非常重要的意義
      http://www.chedong.com/tech/google.html


      AWStats本身也包含了很多插件,包括將多個站點的統計再次彙總輸出,IIS日誌時間轉換,URL的標題映射等
      http://awstats.sourceforge.net/awstats_contrib.html

      原文出處: http://www.chedong.com/tech/awstats.html

      內容圖示
      url email imgsrc image code quote
      樣本
      bold italic underline linethrough   


      吃太飽Good JobHiJolinOMGOrz哭XD三八萌水汪汪大眼水草舞失魂打小人
      打瞌睡石化交出來印堂黑黑吐吐血(不明液體版)吐血(鮮血版)好心情好夢入睡守門員之魂冷汗直流冷吱吱
      完美計畫我不依沒什麼嘛狂暴狂驚幸福御守昏死泡澡空南無南無怒火中燒挖鼻孔
      指苦惱煙狂倒地哭哭不害羞扭扭射門烏鴉飛過笑裡藏刀茶高處不勝寒鬼點子崩潰
      推眼鏡淒涼淚奔爽被咬了喔呵呵無力感無言無辜畫圈掰掰催眠微笑
      感冒想入非非愛之轟炸搞自閉萬年奸臣裝死跪拜禮嘆息槌飛你漫不經心疑惑遠目
      鼻青臉腫嘲笑噴暴走撞人樂奔熱蔥不聽蔥妹恭喜樣蔥寶恭喜衝刺運球頭昏目眩濕
      臉紅紅舉紅牌舉黃牌翻桌瓊瑤跪哭讚美主勾拳一記偽可愛賊親一個洗澡畢業了
      藍藍路壞大叔啦啦隊鞭K書捲心被一臉肅殺怕怕阿飄無盡漩渦窮帥
      orz-v2驚-v2不行了驕傲內傷眼睛一亮跌坐-V2熱-V2囧
       [詳情...]
      validation picture

      注意事項:
      預覽不需輸入認證碼,僅真正發送文章時才會檢查驗證碼。
      認證碼有效期10分鐘,若輸入資料超過10分鐘,請您備份內容後,重新整理本頁並貼回您的內容,再輸入驗證碼送出。

      選項

      Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|