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

1、前言

Visitors - fast web log analyzer 設計理念為可快速分析 Linux、Windows、Unix-Like 等架設 Web Server Log,Visitors 使用方式很簡單只要使用命令列並指定 Web Log 名稱及輸出流量分析報告格式 (Txt / Html) 即可,因此很適合線上即時查看流量。


Visitors 特色如下:

  • 不需安裝,每秒可處理 150,000 行 (實際情況需視機器效能而定,但正常情況下至少比其它分析軟體快多了)
  • 設計上採用指令模式並可輸出 (Txt / Html) 因此使用 SSH 登入主機時能夠非常方便且即時查看流量
  • 從 Visitors v0.3 以後支援即時統計、訪客流量統計
  • 可指定流量分析報表項目,相對應參數請參考 Visitors on line documentation
  • Visitors 為使用 C 語言所撰寫的軟體,因此能清鬆使用在不同的作業系統當中
  • 產生的 HTML 報表並不包含圖片或外部的 CSS 因此能方便將報表透過電子郵件進行傳遞
  • Visitors 為使用 GPL 授權的自由軟體,所以使用它並不用付費如果您有興趣想訂製符合您需要的報表歡迎與原作者聯絡 antirez (at) invece (dot) org





文章目錄

1、前言
2、實作環境
3、安裝及設定
          步驟1.安裝 visitors 套件
          步驟2.產生分析圖表
          步驟3.設定排程
4、參考





2、實作環境

  • FreeBSD 6.2-RELEASE
  • visitors-0.7.0_1





3、安裝及設定

步驟1.安裝 visitors 套件

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




步驟2.產生分析圖表

安裝完成後,就可開始產生分析報表了以下簡述常用參數,詳細參數內容請參考 Visitors - on line documentation for 0.7
  • -A: 分析所有報表項目
  • -m 10: 項目最多顯示 10 行 (Requested pages、Requested images and CSS...)
  • Log Name: 200801.log
  • -o html: 輸出的報表格式
  • /home/web/200801.html: 報表輸出的路徑及檔案名稱
  • -P URL: 若在分析的 Web Log 中有您不想分析的網站時 (例如自已的網站) 即可使用此參數
/usr/local/bin/visitors -A -m 10 200801.log -o html > /home/web/200801.html
 --
 7055 lines processed in 1 seconds
 0 invalid lines, 0 blacklisted referers

此次測試的主機處理 Web Log 效能大約為每秒 6.3 萬行左右,以下為分析不同行數的 Web Log 其分析速度
 CPU: Intel(R) Core(TM)2 CPU 6300  @ 1.86GHz (1867.21-MHz 686-class CPU)
 real memory  = 2146299904 (2046 MB)


分析 5.6 萬行 Web Log 分析時間花費 1
wc -l 200708.log | awk '{print$1}'
 56133                                       //5.6 萬行
/usr/local/bin/visitors -A -m 50 200708.log -o html > /home/web/200708.html
 --
 56133 lines processed in 1 seconds          //分析時間花費 1 秒
 0 invalid lines, 0 blacklisted referers


分析 31 萬行 Web Log 分析時間花費 5
wc -l 2007.log | awk '{print$1}'
 318290                                      //31 萬行
/usr/local/bin/visitors -A -m 100 2007.log -o html > /home/web/2007.html
 --
 318290 lines processed in 5 seconds         //分析時間花費 5 秒
 0 invalid lines, 0 blacklisted referers




步驟3.設定排程

因為此次實作主機其 Web Log 為每天產生的,所以就寫個簡單的 Shell Script 來自動分析每天的 Web Log 吧。
vi /usr/local/sbin/visitors.sh   //建立 Shell 檔內容如下
 #!/bin/sh
 TODAY=`date +%Y%m%d`
 LOG="/home/log/apache"
 DES="/home/web"
 VISITORS=/usr/local/bin/visitors
 SHOW="50"
 ${VISITORS} -A -m ${SHOW} ${LOG}/${TODAY}.log -o html > ${DES}/${TODAY}.html
chmod +x /usr/local/sbin/visitors.sh


完成後設定排程來定時執行剛才撰寫的 Shell Script。
crontab -e
 55 23 * * * /usr/local/sbin/visitors.sh     //每天 23:55 執行






4、參考