1、前言
Advanced Web Statistics (AWStats) 是一個免費且功能強大的 Log 分析器,它能夠幫助你分析包括使用者,使用者資訊、訪問頁面數,點擊數,更新時間,作業系統,瀏覽器版本,搜索引擎,關鍵字,錯誤鏈接等等,支援所有的 Web 伺服器。文章目錄
1、前言2、實作環境
3、安裝及設定
步驟1.安裝 awstats 套件
步驟2.修改 awstats 設定檔
步驟3.複製 awstats 資料夾或修改 web server 設定檔
步驟4.產生分析圖表
步驟5.解決顯示搜尋的關鍵字句亂碼問題
步驟6.觀看成果
步驟7.設定排程
4、參考
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。
AWStats 官網展示畫面:
2、實作環境
- CentOS 5.1 (Linux 2.6.18-53.el5)
- awstats-6.7-1.el5.rf
3、安裝及設定
步驟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://www.weithenn.org/awstats/awstats.pl?config=www
步驟7.設定排程
最後設定,每天早上六點執行排程作業 (自動執行 Apache Log 分析)。# crontab -e
0 6 * * * /home/web/awstats/awstats.pl -config=www -update > /dev/null 2>&1