AWStats簡介:Apache/IIS的日誌分析工俱

日期:2008-07-09  作者:喜騰小二  來源:PHPChina



妳完全不必耐心看完所有內容:簡要安裝幫助如下
安裝
http://sourceforge.net/projects/awstats/ 下載安裝套件後:
GNU/Linux:tar zxf awstats-version.tgz
awstats的指令檔和靜態檔案預設都在wwwroot目錄下:將cgi-bin目錄下的檔案都部署到 cgi-bin/目錄下:/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/ 目錄下
升級國內主要搜尋引擎和蜘蛛定義,安裝GeoIP的應用庫:C
http://www.maxmind.com/download/geoip/api/c/ 解包,編譯安裝
perl -MCPAN -e 'install "Geo::IP"' 或者使用純Perl包  perl -MCPAN -e 'install "Geo::IP::PurePerl"'
下載GeoIP/GeoIPCityLite包:解包並部署到awstats目錄下
http://www.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
http://www.maxmind.com/download/geoip/database/GeoIP.dat.gz

配置
將預設awstats.model.conf 命名成common.conf
修改其中的一些配置選項:
LoadPlugin="decodeutfkeys"
LoadPlugin="geoip GEOIP_STANDARD /home/apache/chedong.com/cgi-bin/awstats/GeoIP.dat"
LoadPlugin="geoip_city_maxmind GEOIP_STANDARD /home/apache/chedong.com/cgi-bin/awstats/GeoLiteCity.dat"

建立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/apache/cgi-bin/awstats/data/"

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

日誌統計係統在站點的使用者行為分析中扮演了重要的角色,尤其是對於來自搜尋引擎的關鍵詞訪問統計:是很有效的使用者行為分析資料來源。隨着網際網路多年的發展,WEB日誌統計工俱已經越來越成熟,功能也越來越豐富。其中有很多是開放源程式碼的, AWStats就是其中非常優秀的一款。

AWStats: Advanced Web Statistics

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

  1. 介麵友好:可以根據浏覽器直接調用相應語言介麵(有簡體中文版)
    參考輸出樣例: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/Linux LogFile="/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:AWStatsoolsawstats_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

      基於地理資訊的外掛程式安裝:

      GeoIP 和 Geo::IPfree(awstats 5.5+)
      GeoIP和Geo::IPfree都免費的是國家/IP的影射表,比透過DNS反相解析網域名稱得到的統計準確,而且速度快。GeoIP的API都是免費 的,預設庫是免 費的,收費的是它的資料更新服務。Geo::IPfree不僅程式碼是公開的,而且庫資料也是公開的。

      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相關外掛程式:

      LoadPlugin="geoip GEOIP_STANDARD /home/apache/chedong.com/cgi-bin/awstats/GeoIP.dat"
      LoadPlugin="geoip_city_maxmind GEOIP_STANDARD /home/apache/chedong.com/cgi-bin/awstats/GeoLiteCity.dat"
       

      MaxMind目前免費提供了GeoIP和GeoIPCityLite資料包:可以定期每個月從以下地址下載

      http://www.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
      http://www.maxmind.com/download/geoip/database/GeoIP.dat.gz

      參考資料:

       AWStats簡介:Apache/IIS的日誌分析工俱:

      <<<返回技術中心

      技術文章

      站內新聞