站長新書 站長開講 首頁 最新文章 站長著作及審校 FreeBSD 筆記 Linux 筆記 Windows 筆記 虛擬化筆記 網管人雜誌 遊山玩水 關於本站
站長新書 VMware vSphere ICM 團購開跑了!!

awstats-利用ApacheLog達成流量統計圖表化

前言

[Advanced Web Statistics (AWStats)] 是一個免費且功能強大的 Log 分析器,它能夠幫助你分析包括使用者,使用者資訊、訪問頁面數,點擊數,更新時間,作業系統,瀏覽器版本,搜索引擎,關鍵字,錯誤鏈接等等,支援所有的 Web 伺服器。

可分析的 Log 類型如下:

  1. web log:Apache (NCSA combined/XLF/ELF or common/CLF log format)、Microsoft's IIS (W3C log format)
  2. streaming log:Darwin streaming server、Windows Media Serverr
  3. mail log:Qmail、Sendmail、Postfix
  4. ftp log:ftp server

[AWStats 官網 Web Log 分析 Screenshots]

[AWStats 官網 FTP Log 分析 Screenshots]

[AWStats 官網 Mail Log 分析 Screenshots]

實作環境

安裝及設定

步驟1.安裝 awstats 套件

利用 yum 安裝 awstats 套件

 #yum -y install awstats

步驟2.修改 awstats 設定檔

複製範例檔來修改,為何會命名為 awstats.www.conf?因為 AWStats 可以分析很多不同的 log 所以我把分析 web 設定檔就叫 awstats.www.conf,至於分析我的 apache log 路徑是因為我都每天凌晨將網站主機的 log 同步到分析主機,因此我分析的是前一天的 log。

 #cd /etc/awstats                           //切換路徑 
 #cp awstats.model.conf awstats.www.conf    //複製預設檔來修改 
 #vi awstats.www.conf                       //修改 awstats.conf 設定(內容如下)

設定讀取的 Apache Log 路徑

 LogFile="/var/log/apache/access_log"       //預設 Log 檔路徑
 LogFile="/home/backup/log/%YYYY-0_%MM-0_%DD-24-access.log"    //修改為您的 apache log 檔的路徑

設定主機名稱

 SiteDomain="localhost.localdomain"         //預設主機名稱   
 SiteDomain="www.weithenn.org"              //填入您主機的 Domain name 

設定 Data 資料夾

 DirData="/var/www/awstats"                 //預設資料夾路徑
 DirData="/home/web/awstats"                //修改為屆時存放分析結果的資料夾

設定 CGI 路徑 (awstats.pl 執行檔所在目錄)

 DirCgi="/awstats"                          //修改為適合你環境設定

設定網頁語系

 Lang="auto"                              //預設值(自動尋找適當的語言)
 Lang="tw"                                  //若 auto 有問題的話,就改為 tw 吧 

步驟3.複製 awstats 資料夾或修改 web server 設定檔

步驟3-1.複製 awstats 資料夾

因為我習慣將會呈現網頁的部份都放到 /home/web 下,因此我將 awstats 預設安裝的資料夾複製到 /home/web 下,這樣就不需修改 web server 設定檔。

 #cp -rp /var/www/awstats /home/web/

步驟3-2.使用 Apache 的話修改 Apache 設定檔

若不想複製 awstats 預設安裝的資料夾的話就修改 httpd.conf 並重新啟動 apache,將下列內容加入至 httpd.conf 內

 Alias /awstats/icon/ /var/www/awstats/icon/
 ScriptAlias /awstats/ /var/www/awstats/
 <Directory /var/www/awstats/>
        DirectoryIndex awstats.pl
        Options ExecCGI
        order deny,allow
        deny from all
        allow from 127.0.0.1
 </Directory>

修改完成後重新啟動 apache 讓修改生效

  #/etc/rc.d/init.d/httpd restart

步驟3-3.使用 Lighttpd 的話修改 Lighttpd 設定檔

若不想複製 awstats 預設安裝的資料夾的話就修改 lighttpd.conf 並重新載入 lighttpd 設定,將下列內容加入至 lighttpd.conf 內

 #                                "mod_alias",     //預設值
                                  "mod_alias",     //修改後
 #### CGI module
 cgi.assign                 = ( ".pl"  => "/usr/bin/perl",
                                ".cgi" => "/usr/bin/perl" )
 #### Alias                                        //在 CGI 下加入如下這幾行
 alias.url                  = ( "/awstats/" => "/var/www/awstats/",
                                "/awstats/icon/" => "/var/www/awstats/icon/" )

修改完成後重新啟動 lighttpd 讓修改生效

 #/etc/rc.d/init.d/lighttpd restart
 Stopping lighttpd:                                         [  OK  ]
 Starting lighttpd:                                         [  OK  ]

步驟4.產生分析圖表

為何產生分析圖表時指定的設定檔是 -config=www ? 因為我們在前面已經命名設定檔為 awstats.www.conf 了,當你執行指令時可看到有正確找到你的設定檔。

 #/home/web/awstats/awstats.pl -config=www -update
 Create/Update database for config "/etc/awstats/awstats.www.conf" by AWStats version 6.7 (build 1.892)
 From data in log file "/home/log/awstats/2008_04_20-access.log"...
 Phase 1 : First bypass old records, searching new record...
 Searching new records 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: 318290
 Found 26 dropped records,
 Found 696 corrupted records,
 Found 0 old records,
 Found 317568 new qualified records.

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

若未做此步驟的話當你觀看分析圖表時可能會發現所有中文都正常,但 搜尋的關鍵字句 的內容會變成亂碼,會有這個問題是因為顯示的文字是 UTF-8 格式,但網頁顯示格式是 Big5 所以就產生亂碼的問題了,因為我們去把翻譯檔修改及儲存為 UTF-8 格式。

 #cd /home/web/awstats/lang                 //切換到語系檔路徑
 #cp awstats-tw.txt awstats-tw.txt.big5     //將原本的 big5 格式複製
 #vi awstats-tw.txt.big5
 PageCode=big5                              //預設值網頁編碼為 Big5
 PageCode=utf-8                             //修改網頁編碼為 UTF-8

修改完成後因為檔案還是 Big5 格式,因此我們使用 libiconv 來將檔案轉換為 UTF-8 格式。

 #iconv -f BIG5 -t UTF-8 awstats-tw.txt.big5 > awstats-tw.txt   //轉換為 UTF-8 格式

步驟6.觀看成果

[http://Your_FQDN/awstats/awstats.pl?config=www]

步驟7.設定排程

 #crontab -e
 0 6 * * * /home/web/awstats/awstats.pl -config=www -update > /dev/null 2>&1       //每天早上六點執行

參考

[AWStats - Free log file analyzer for advanced web statistics (GNU GPL).]

Go To Oddmuse OrgGo To FreeBSD OrgCreative Commons 2.5 Taiwansitestates.com