Related Posts Plugin for WordPress, Blogger...

1、前言

Webalizer 是一套免費的 Web Log 分析器,分析後可以呈現出每一年、每月、每天、每小時的使用情形並輸出表格與圖表。此外也可以顯示使用者來源、使用者的瀏覽器種類(*)、使用者喜歡的 URL ..等。

此次的實作為 Windows 2003 Server 擔任 NetMonitor 角色,利用 Cygwin 安裝 Rsync 定期去抓遠端機器 Apache 的 Log 後,利用軟體 webalizer-2.01-10 來分析 Apache Log 並將結果匯出成圖表,達成分擔 Apache 的 Loading 當然也可利用 Webalizer 分析 Windows 的 IIS Log。

Cygwin 是一套能在 Windows 系統上提供 UNIX 環境,由 Red Hat 公司 (本來是 Cygnus 公司但被 Red Hat 公司購併) 所開發,它的功能為提供程式所需 UNIX 系統呼叫及環境函式庫,方便程式設計師來撰寫 Win32 控制台或是 GUI 的應用程式,所以我們可很輕易的將許多有用的 UNIX 程式,不需改變就能直接在視窗平台上使用。

文章目錄

1、前言
2、實作環境
3、安裝及設定
          步驟1.修改sample.conf
          步驟2.webalizer.bat
          步驟3.同步遠端Apache Log
          步驟4.加入排程以便日後自動化執行
4、參考

2、實作環境


3、安裝及設定

步驟1.修改sample.conf

下載 webalizer-2.01-10-win32-bin.zip 後解壓縮,可以看到 sample.conf 此為 webalizer 設定檔範例,需要更改的地方如下:(請尊重 Weithenn 的辛勞!!)

讀取 Log 路徑
LogFile     /var/lib/httpd/logs/access_log //預設值
LogFile     D:\Log\2005_06_01-access.log   //更改後(此行到時為自動化時就必須mark掉)

指定資料輸出資料夾
OutputDir   /var/lib/httpd/htdocs/usage    //預設值
OutputDir   C:\Webroot\Webalizer           //更改後

只更新增加的部份,分析過的資料就不再分析以免覆蓋了舊有的資料。
Incremental  no           //預設值
Incremental  yes          //更改後

網頁標題說明文字
ReportTitle   Usage Statistics for   //預設值
ReportTitle   Webs Site 流量統計:     //更改後

設定主機名稱
HostName      localhost             //預設值
HostName      www.weithenn.org      //更改後


步驟2.webalizer.bat

寫一個批次檔以定期執行 webalizer 分析內容如下(建立後試著執行是否能成功分析)
C:\webalizer\webalizer.exe -c sample.conf 
但如此並無法達到每天定期分析的目的,原因在於 webalizer 設定檔內指定的 LogFile 格式,並無法像 awstats 能指定 %Y%M%D 因此無法配合我們的 Log 命名 (2005_06_01-access.log ),找了 google 後可以利用 win 本身去抓取系統日期,太好了因為我們把抓取系統日期的執行也寫入批次檔內,新的批次檔內容如下(記得去把設定檔 LogFile 那行 Mark 掉)
C:\webalizer\webalizer.exe -c C:\webalizer\sample.conf D:\Log\%date:~0,4%_%date:~5,2%_%date:~8,2%-access.log
如此便能達成每天自動抓去最新的 Log 來分析的目的,抓取系統日期解說以當日為 2005/06/09 為例,所以 %date:~0,4%_%date:~5,2%_%date:~8,2%-access.log 就會等於 2005_06_09-access.log。
2005 / 06 / 09         //系統日期
--------------
0123 4 56 7 89         //代表數字由0開始
%date:~0,4% =2005      //0,4即從數字0開始抓4個數字
%date:~5,2% =06        //5,2即從數字5開始抓2個數字
%date:~8,2% =09        //8,2即從數字8開始抓2個數字


步驟3.同步遠端Apache Log

改遠端 Web 機器內的 /usr/local/etc/rsyncd.conf 調整可 rsync 的路徑內容如下:
apache_log
path = /home/apache_log            //您放apache log的路徑
comment = Weithenn.org Apache Log  //說明  

在本地端測試 cygwin 是否能 rsync 遠端 web 的apache log。
$rsync web::         //測試cygwin,能否show出web可rsync的資料夾
 weithenn@netwatcher ~
$ rsync web01.kbt::
 apache_log           Weithenn.org Apache Log  

確定能跟 web 同步 apache log 後為了能自動化我們建立一個 synclog.bat 內容如下
cd /d D:\Logs\
c:\cygwin\bin\rsync -avP web::apache_log/ .


步驟4.加入排程以便日後自動化執行

【開始】 > 【程式集】 > 【附屬應用程式】 > 【系統工具】 > 【排定的工作】 > 【新增排程】
設定排程時間去讀,我們剛才所建立的 webalizer.bat 批次檔跟 synclog.bat,建好後試著執行看看排程設定是否ok?如何測試?執行排程後再連到 webalizer 頁面去看更新時間是否是剛才執行排程的時間,有的話就成功了。

最後愛國的我一定會問有沒有中文化,答案是有的因為 webalizer-2.01-10-win32-bin.zip 語系只 Support English 所以若要中文化則需下載中文化 webalizer 執行檔,但中文化後有缺點就是圖表內文字會變成亂碼(因為 GD 不 Support),在 BSD 上有人有寫 patch 去改但 win 方面沒有(我沒找到,若您找到的話告知我一聲吧。

4、參考

文章標籤: