站長新書 站長開講 首頁 最新文章 站長著作及審校 FreeBSD 筆記 Linux 筆記 Windows 筆記 虛擬化筆記 網管人雜誌 遊山玩水 關於本站
站長新書 VMware vSphere ICM 團購開跑了!!

Windows 2003 Server-Webalizer 架設

前言

[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.修改sample.conf

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

 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 為例

 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個數字

所以 %date:~0,4%_%date:~5,2%_%date:~8,2%-access.log 就會等於 2005_06_09-access.log

步驟3.同步遠端Apache Log

 [apache_log]
 path = /home/apache_log                //您放apache log的路徑
 comment = Weithenn.org Apache Log      //說明  
 $rsync web::         //測試cygwin,能否show出web可rsync的資料夾
 weithenn@netwatcher ~
 $ rsync web01.kbt::
 apache_log           Weithenn.org Apache Log  
 cd /d D:\Logs\
 c:\cygwin\bin\rsync -avP web::apache_log/ .

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

  1. 開始
  2. 程式集
  3. 附屬應用程式
  4. 系統工具
  5. 排定的工作
  6. 新增排程

設定排程時間去讀,我們剛才所建立的 webalizer.bat 批次檔跟 synclog.bat,建好後試著執行看看排程設定是否ok?如何測試?執行排程後再連到 webalizer 頁面去看更新時間是否是剛才執行排程的時間,有的話就成功了 *:)*

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

參考

[Webalizer 官網]

[Webalizer Man Pages]

[Twbsd.org-第十一章 網頁伺服器]

[Webalizer configuration troubles]

[環境變數的擴充功能]

Go To Oddmuse OrgGo To FreeBSD OrgCreative Commons 2.5 Taiwansitestates.com