Webalizer - 分析 Squid Log 產生流量圖表

1、前言

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


webalizer 可分析的 Log 類型如下:

  • 標準日誌格式 (CLF,Common Logfile Format)
  • FTP Log: Wu-ftpd / Proftpd Xferlog Format Logs
  • Proxy Log: Squid Proxy Server Native Format Logs
  • W3C Extended Log Formats
  • 支援 gzip (.gz) 及 bzip2 (.bz2) 壓縮格式 Logs 檔案,不需要解壓縮即可分析





文章目錄

1、前言
2、實作環境
3、安裝及設定
          步驟1.安裝 libiconv 套件
          步驟2.中文化亂碼修正
          步驟3.修改 webalizer 設定檔 (webalizer.conf)
          步驟4.建立 webalizer 分析結果存放資料夾
          步驟5.執行 webalizer 流量統計
          步驟6.設定排程





2、實作環境

  • FreeBSD 7.x-RELEASE
  • webalizer-2.21.2
  • libiconv-1.11_1





3、安裝及設定

步驟 1. 安裝 libiconv 套件

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




步驟 2. 中文化亂碼修正

在安裝 webalizer 套件以前請先將 顏國雄老師中文亂碼修正檔-webalizer_patch.pl 下載至 /usr/ports/www/webalizer 目錄下,先安裝完預設的中文語系檔,但因為 GD 圖表無法正確顯示中文所以這時便可執行顏國雄老師中文亂碼修正檔將 GD 圖表內中文字改回英文便不會造成之後 GD 圖表內中文字為亂碼的現象,至於安裝前為何要將語系檔轉換為 UTF-8 格式? 因為若是不轉換的話當執行完流量統計後你會發現 Search String 內容會為亂碼,瞭解後請切換至 Ports Tree 路徑安裝 webalizer 套件。
cd /usr/ports/www/webalizer  //切換至安裝路徑
make clean fetch extract patch configure WEBALIZER_LANG=chinese  //安裝中文語系
perl webalizer_patch.pl work/webalizer-2.21-2  //執行中文修正檔消除亂碼
cd work/webalizer-2.21-2/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  //安裝套件並清除安裝中不必要的檔案




步驟 3. 修改 webalizer 設定檔 (webalizer.conf)

安裝相關套件完成後開始進行 webalizer 設定檔 (webalizer.conf) 修改其內容如下:
cd /usr/local/etc                         //切換路徑
cp webalizer.conf-dist webalizer.conf  //複製範例檔來修改
vi webalizer.conf                         //修改內容如下
 LogFile        /var/lib/httpd/logs/access_log    //預設值,讀取 Log 路徑
 LogFile        /home/log/squid/logs/access.log.0 //修改後
 OutputDir      /var/lib/httpd/htdocs/usage       //預設值,指定資料輸出資料夾
 OutputDir      /home/web/webalizer               //修改後
 Incremental    no                                //預設值,只更新增加的部份
 Incremental    yes                               //修改後
 ReportTitle    Usage Statistics for              //預設值,網頁標題說明文字
 ReportTitle    Proxy 流量分析統計:                 //修改後
 HostName       localhost                         //預設值,設定主機名稱
 HostName       www.weithenn.org                  //修改後




步驟 4. 建立 webalizer 分析結果存放資料夾

建立屆時存放 webalizer 分析結果圖表的資料夾。
cd /home/web/        //切換預放置分析流量的路徑
mkdir webalizer     //建立資料夾




步驟 5. 執行 webalizer 流量統計

此次實作中 Squid Log 有每天定期執行 Rotate Squid Logs 的動作,因此為分析前一天的 Squid Log。
/usr/local/bin/webalizer /home/log/squid/logs/access.log.0   //分析 Squid Log
 Webalizer V2.21-02 (FreeBSD 7.2-RELEASE-p2 i386) Chinese
 使用記錄檔 access.log (squid)
 產生輸出於 /home/web/webalizer
 主機名稱是 'www.weithenn.org'
 讀取歷史記錄 webalizer.hist
 Reading previous run data.. webalizer.current
 Warning: Truncating oversized request field
 Skipping bad record (7675)
 Warning: Truncating oversized request field
 Skipping bad record (7677)
 產生彙總報表
 21530 記錄 (21528 忽略, 2 bad) in 1 秒, 21530/sec




步驟 6. 設定排程

修改排程使系統每天早上六點半自動執行分析 Squid Log 的工作。
crontab -e
 30 6 * * * /usr/local/sbin/webalizer /home/log/squid/logs/access.log.0