【前言】[webalizer] - A web server log file analysis tool.即可利用 Apache 的 Log 來達成流量統計圖表化的套件。
【作業環境】
FreeBSD 5.2、6.2-RELEASE
webalizer-2.01-10、2.1.10_12
libiconv-1.9.2_2
【安裝及設定】
Step1.安裝 webalizer 及 libiconv 套件
將顏國雄老師中文亂碼修正檔-webalizer patch.pl 放到 /usr/ports/www/webalizer 目錄下,等一下先安裝完預設的中文語系檔,但因為 GD 圖表無法正確顯示中文所以這時便執行顏國雄老師中文亂碼修正檔將 GD 圖表內中文字改回英文便不會發現 GD 圖表內文字為亂碼的現象,至於安裝前為何要將語系檔轉換為 UTF-8 格式?因為若是不轉換的話當執行完流量統計後你會發現 Search String 內容會為亂碼。
#cd /usr/ports/converters/libiconv ; make instlal clean //安裝 iconv #cd /usr/ports/www/webalizer //切換至安裝路徑 #make clean fetch extract patch configure WEBALIZER_LANG=chinese //安裝中文語系,但 GD 圖表內文字會為亂碼 #perl webalizer_patch.pl work/webalizer-2.01-10 //執行顏國雄老師中文修正檔可消除中文亂碼 #cd work/webalizer-2.01-10/lang //切換至語系檔目錄 #cp webalizer_lang.chinese webalizer_lang.chinese.big5 //將原 Big5 語系檔複製一份 #iconv -f BIG5 -t UTF-8 webalizer_lang.chinese.big5 > webalizer_lang.chinese //轉換語系檔為 UTF-8 格式 #make install clean //安裝套件並清除安裝中不必要的檔案
Step2.修改 webalizer 設定檔
#cd /usr/local/etc //切換路徑
#cp webalizer.conf-dist webalizer.conf //複製範例檔來修改
#vi webalizer.conf
//修改內容如下
(1)讀取 Log 路徑
LogFile /var/lib/httpd/logs/access_log
//預設值 LogFile /home/log/httpd-access.log
//更改後 (此行到時為自動化時就必須 mark 掉)
(2)指定資料輸出資料夾
OutputDir /var/lib/httpd/htdocs/usage //預設值
OutputDir /usr/local/www/data/analysis/webalizer //更改後
(3)只更新增加的部份分析過的資料就不再分析以免覆蓋了舊有的資料
Incremental no //預設值 Incremental yes //更改後
(4)網頁標題說明文字
ReportTitle Usage Statistics for //預設值 ReportTitle Webs Site 流量統計: //更改後
(5)設定主機名稱
HostName localhost //預設值 HostName www.weithenn.idv.tw //更改後
Step3.建立 webalizer 資料夾以存放產生的圖表
#cd /usr/local/www/data/analysis //切換預放置分析流量的路徑 #mkdir webalizer //建立資料夾
Step4.執行 webalizer 流量統計
因為我是把 apache access log每天產生一個,所以我就把舊有的 log 先串成一個,日後在一個一個跑,例如我的 apache log 命名是 2007_05_01-access.log
#cat 2007_05*-access.log > 200705.log //把五月份 access log 串成一個檔
執行 webalizer 流量統計
#/usr/local/bin/webalizer /home/log/200705.log //分析五月份 log Webalizer V2.01-10 (FreeBSD 6.2-RELEASE-p5) English Using logfile 200705.log (clf) Creating output in /usr/local/www/data/analysis/webalizer Hostname for reports is 'www.weithenn.idv.tw' Reading history file... webalizer.hist Reading previous run data.. webalizer.current Warning: Truncating oversized referrer field [8679] Warning: Truncating oversized referrer field [9750] Warning: Truncating oversized referrer field [9751] ...略 Warning: Truncating oversized referrer field [685737] Warning: Truncating oversized referrer field [714670] Warning: Truncating oversized referrer field [715059] Saving current run data... [06/20/2007 23:59:59] Generating report for June 2007 Generating summary report Saving history information... 735502 records in 9.73 seconds, 75617/sec
Step5.自動化流量分析排程
至於分析我的 apache log 路徑是因為我都每天凌晨將網站主機的 log 同步到分析主機,因此我分析的是前一天的 log。
#vi /usr/local/sbin/webalizer.sh //編輯 shell script 內容如下 #!/bin/sh /usr/local/bin/webalizer /home/backup/log/`date -v-1d +%Y_%m_%d`-access.log > /dev/null 2>&1
編輯排程檔
#crontab -e 30 6 * * * /usr/local/sbin/webalizer.sh //每天早上六點半執行 webalizer.sh
【參考】
【Log】
初稿-2004/03/02
新版本更新作法-2007/06/22