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、實作環境
- Windows Server 2000
- Windows 平台上的 Perl
- AWStats - Free log file analyzer for advanced statistics (GNU GPL).
- FTPVoyager 可用來將遠端伺服器目錄與本機目錄定期同步更新
- Cygwin
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