Awstats - 分析 Apache Log 產生流量圖表

1、前言

AWStats - Advanced Web Statistics 為一套遵循 GPL 協議的開放源始碼 Log 分析器,它能夠幫助您分析包括使用者、使用者資訊、訪問頁面數、點擊數、更新時間、作業系統、瀏覽器版本、搜索引擎、關鍵字、錯誤鏈接...等等,支援所有的 Web 伺服器所產生的 Log。


AWStats 可分析的 Log 類型如下:

  • Web Log: Apache (NCSA combined/XLF/ELF or common/CLF log format)、Microsoft's IIS (W3C log format)
  • Streaming Log: Darwin Streaming Server、Windows Media Server
  • Mail Log: Qmail、Sendmail、Postfix
  • FTP Log: FTP Server





文章目錄

1、前言
2、實作環境
3、安裝及設定
          步驟1.安裝 awstats 套件
          步驟2.修改 awstats 設定檔 (awstats.conf)
          步驟3.修改 Web Server 設定檔
          步驟4.產生分析圖表
          步驟5.解決顯示搜尋的關鍵字句亂碼問題
          步驟6.觀看成果
          步驟7.排程
4、參考





2、實作環境

  • FreeBSD 6.x-RELEASE
  • FreeBSD 5.x-RELEASE
  • awstats-6.6_1,x





3、安裝及設定

步驟1.安裝 awstats 套件

切換至 Ports Tree 路徑安裝 awstats 套件。
cd /usr/ports/www/awstats/    //切換至安裝路徑
make install clean             //安裝並清除暫存檔案




步驟2.修改 awstats 設定檔 (awstats.conf)

安裝完成後請複製 awstats 範例檔來進行修改,而為何下列 awstats 設定檔會命名為 awstats.www.conf? 因為 AWStats 可以分析不同種類的 Log 所以我將分析 Web 設定檔命名為 awstats.www.conf,至於分析的 Apache Log 路徑是因為此次實作主機每天凌晨才將營運網站主機的 Web Log 同步到此台分析主機,因此分析的 Web Log 為前一天的。
cd /usr/local/www/awstat/cgi-bin/          //切換路徑
cp awstats.model.conf awstats.www.conf    //複製預設檔來進行後續修改
vi awstats.www.conf                          //修改 awstats 設定檔(內容如下)
 LogFile="/var/log/apache/access.log"                       //預設值,讀取 Log 檔路徑
 LogFile="/home/backup/log/%YYYY-0_%MM-0_%DD-24-access.log" //修改後
 SiteDomain=""                   //預設值,設定主機名稱
 SiteDomain="www.weithenn.org"   //修改後,填入您主機的 FQDN
 DirCgi="/cgi-bin"               //預設值,設定 CGI 路徑
 DirCgi="/awstats"               //修改後,設定為適合您環境設定
 Lang="auto"                    //預設值,自動尋找適當的語言
 Lang="tw"                       //修改後,設定為正體中文




步驟3.修改 Web Server 設定檔

步驟3-1.修改 Apache 設定檔 (httpd.conf)

若您採用的 Web Server 為 Apache 的話請修改設定檔 httpd.conf 並重新啟動 Apache 服務,請將下列內容加入至 httpd.conf 內。
vi /usr/local/etc/apache/httpd.conf
 ### Directives to allow use of AWStats as a CGI              //註解文字
 Alias /awstatsclasses "/usr/local/www/awstats/classes/"      //版型路徑別名
 Alias /awstatscss "/usr/local/www/awstats/css/"              //CSS 路徑別名
 Alias /awstatsicons "/usr/local/www/awstats/icons/"          //Icons 路徑別名
 ScriptAlias /awstats/ "/usr/local/www/awstats/cgi-bin/"      //CGI 路徑別名
 ### Permit URL access to scripts/files in AWStats directory. //註解文字
 <Directory "/usr/local/www/awstats/">                        //設定 awstats 資料夾權限
    Options None
    AllowOverride None
    Order allow,deny
    Allow from all
 </Directory>

修改 Apache 設定檔之後請重新啟動 Apache 服務,使設定生效。
/usr/local/etc/rc.d/apache.sh restart

步驟3-2. 修改 Lighttpd 設定檔 (lighttpd.conf)

若您採用的 Web Server 為 Lighttpd 的話請修改設定檔 lighttpd.conf 並重新啟動 Lighttpd 服務,請將下列內容加入至 lighttpd.conf 內。
vi /usr/local/etc/lighttpd.conf
 #                                "mod_alias",   //預設值,註解此功能
                                  "mod_alias",   //修改後,請移除註解符號
 #### CGI module
 cgi.assign   = ( ".pl"  => "/usr/bin/perl",
                  ".cgi" => "/usr/bin/perl" )
 #### Alias                                      //請在 CGI 下加入如下行數
 alias.url    = ( "/awstatsclasses" => "/usr/local/www/awstats/classes/",
                  "/awstatscss" => "/usr/local/www/awstats/css/",
                  "/awstatsicons" => "/usr/local/www/awstats/icons/",
                  "/awstats/" => "/usr/local/www/awstats/cgi-bin/" )

修改 Lighttpd 設定檔之後請重新載入 Lighttpd 服務,使設定生效。
/usr/local/etc/rc.d/lighttpd reload
 Reloading lighttpd config files.
 Stoping lighttpd and start gracefully.
 Starting lighttpd.




步驟4.產生分析圖表

請鍵入如下指令來開始產生分析圖表(Phase 2),而為何產生分析圖表時指定的設定檔名稱為 -config=www ? 因為在前面設定步驟中設定檔命名為 awstats.www.conf,因此當您執行指令時可發現 awstats 是否有正確尋找到您的設定檔。
/usr/local/www/awstats/cgi-bin/awstats.pl -config=www -update
 Create/Update database for config  "/usr/local/www/awstats/cgi-bin/awstats.www.conf" by AWStats version 6.6 (build 1.887)
 From data in log file "/home/backup/log/2007_06_20-access.log"...
 Phase 1 : First bypass old records, searching new record...
 Direct access to last remembered record is out of file.
 So searching it from beginning of log file...
 Phase 2 : Now process new records (Flush history on disk after 20000 hosts)...
 Jumped lines in file: 0
 Parsed lines in file: 735502
 Found 0 dropped records,
 Found 56 corrupted records,
 Found 0 old records,
 Found 735446 new qualified records.




步驟5.解決顯示搜尋的關鍵字句亂碼問題

若未執行此步驟的話當您觀看分析圖表時可能會發現所有中文都正常,但分析圖表下方訪客使用哪些搜尋字句連到您的網站的 搜尋的關鍵字句 項目其內容會變成 亂碼,會有此一問題為顯示的文字其編碼為 UTF-8 格式,但 Awstats 預設的網頁顯示格式為 Big5 編碼格式所以就產生此一亂碼的問題,因此我們可透過將 Awstats 翻譯檔修改及儲存為 UTF-8 格式即可解決此一問題。
cp /usr/local/www/awstats/cgi-bin/lang/awstats-tw.txt awstats-tw.txt.big5   //複製翻譯檔
vi /usr/local/www/awstats/cgi-bin/lang/awstats-tw.txt.big5    //修改 Big5 編碼翻譯檔
 PageCode=big5     //預設值,編碼為 Big5
 PageCode=utf-8    //修改後,編碼為 UTF-8


修改完成後因為檔案格式仍為 Big5,因此我們使用 libiconv 套件來將檔案格式轉換為 UTF-8。
cd /usr/ports/converters/libiconv ; make instlal clean          //安裝 iconv 套件
iconv -f BIG5 -t UTF-8 awstats-tw.txt.big5 > awstats-tw.txt    //轉換為 UTF-8 格式




步驟6.觀看成果

完成後您可透過如下網址來連結至 Awstats 分析圖表頁面。
ex. http://www.weithenn.org/awstats/awstats.pl?config=www



步驟7.排程

修改排程使系統每天早上六點自動執行分析 Web Log 的工作。
crontab -e
 0 6 * * * /usr/local/www/awstats/cgi-bin/awstats.pl -config=www -update > /dev/null 2>&1






4、參考