Windows Server 2000 - 架設 Awstats 分析網站日誌檔

1、前言

AWStats - Free log file analyzer for advanced statistics (GNU GPL) 是一個免費且功能強大的 Web Log 分析器,它能夠幫助你分析包括使用者,獨特使用者,訪問頁面數,點擊數,更新時間,作業系統,瀏覽器版本,搜索引擎,關鍵字,錯誤鏈接等等,支援所有的 Web 伺服器。



此次的實作為 Windows 2000 Server 擔任 Netwatcher 角色,利用 Cygwin 定期去抓遠端機器 Apache 的 Log 後,利用軟體 Awstats 6.0 來分析 Apache Log 並將結果匯出成圖表,達成分擔 Apache 的 Loading。

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

文章目錄

1、前言
2、實作環境
3、安裝及設定
          步驟1.將 cig-bin 及 icon 資料夾複製到 IIS web 資料夾下
          步驟2.修改 awstats.conf
          步驟3.執行 awstats 產生檔案
          步驟4.觀看成果
          步驟5.同步遠端 Apache Log
          步驟6.加入排程以便日後自動化執行
4、補充:串連 Log 檔內容



2、實作環境




3、安裝及設定

步驟1.將 cig-bin 及 icon 資料夾複製到 IIS web 資料夾下

將 Awstats 6.0 抓下後解開後有三個資料夾及一個讀我檔案,在 wwwroot 內有 cgi-bin 及 icon 資料夾;Webroot 為 IIS - web 的目錄在其下建一個 Awstats 資料夾,分別放網站 (Weithenn) 的資料夾 「C:\Webroot\Awstats\Weithenn\cgi-bin\icon」。



步驟2.修改 awstats.conf

將 C:\Webroot\Awstats\Weithenn\cgi-bin\awstats.model.conf 複製為 awstats.weithenn.conf 以供辦識,要修改的地方有四處,以下為舉例 awstats.weithenn.conf 修改設定:

指要定讀取 Log 的路徑
#LogFile="/var/log/httpd/mylog.log"                              //預設值
LogFile="D:\Logs\Web01\Weithenn\%YYYY-0_%MM-0_%DD-0-access.log   //讀取最新日期 log

指定 Site 名稱
SiteDomain=""                  //預設值
SiteDomain="www.weithenn.org"  //網站名稱

指定 cgi-bin 路徑 (設定正確才能正確執行 awstats.pl)
# Default: "/cgi-bin" (means awstats.pl is in "/yourwwwroot/cgi-bin")//預設值
DirCgi="http://www.weithenn.org/Awstats/Weithenn/cgi-bin"            //讀 cgi-bin 的位置

指定 icon 路徑 (設定正確才能正確顯示出 icon 來)
# Default: "/icon" (means you must copy icon directories in "/mywwwroot/icon")  //預設值
DirIcons="http://www.weithenn.org/Awstats/Weithenn/icon"                        //讀icon的位置 




步驟3.執行 awstats 產生檔案

在 cgi-bin 裡面寫一個 awstats.bat 的執行檔,這樣就不用每次執行就要到命令提示字元,且可利用這個批次檔來做排程,內容如下:
C:\Webroot\Awstats\Weithenn\cgi-bin\awstats.pl -config=weithenn -update



步驟4.觀看成果

http://Your_FQDN/Awstats/Weithenn/cgi-bin/awstats.pl?config=weithenn



步驟5.同步遠端 Apache Log

利用 Cygwin 定期去同步遠端機器 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 的資料夾
 apache_log           Weithenn.org Apache Log  

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




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

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





4、補充:串連 Log 檔內容

若您的 Apache Access Log 為每天產生一個,而當您剛開始使用 AWStats  時如何串連所有的 Log 成為一個大 Log 是很重要地 (你不會想要一個一個執行吧!!),以下是利用 cat 指令將每天的 Apache Log 檔案串連成一個大 Log 檔,例如我的 Apache Log 命名是年月日(2004_01_01-access.log ~ 2004_01_31-access.log),下列指令便把 2004 年 1 月份的檔案串連成為一個 Log 檔叫 200401.log。
cat 2004_01*-access.log > 200401.log