在 Windows 主機設定 AWStats 流量分析軟體

1. 安裝 ActivePerl 5.8

    1.1 安裝 Perl
   
        到這裡下載:http://www.activestate.com/Products/activeperl/
   
        請下載 ActivePerl 5.8 AS 的版本進行安裝。( AS 的下載檔案是 *.zip 格式 )
       
            解壓縮後執行 Install.bat 即可

        P.S. 因為 ActiveState 網站上的 MSI 封裝有問題,在我的 Win2k3 與 WinXP 都沒辦法安裝!

    1.2 安裝三個重要的 Perl 模組

        在 DOS 模式下直接執行以下三個指令即可:
   
        ppm install Geo::IP::PurePerl
        ppm install Geography::Countries
        ppm install IP::Country

        # 到 http://www.maxmind.com/app/geoip_country 下載 GeoIP.dat
       
        # 下載點(壓縮檔)
        http://www.maxmind.com/download/geoip/database/GeoIP.dat.gz
   
        下載後解壓縮至 C:\Perl 目錄下
    
        # P.S. ActivePerl 5.8 已經內建 Encode 模組 ( 用於 decodeutfkeys 外掛用的 )

2. 安裝 AWStats 6.7

    閱讀安裝設定文件: C:\Program Files\AWStats\docs\awstats_setup.html

    修正程式 Bug
   
        C:\Program Files\AWStats\wwwroot\cgi-bin\awstats.pl
       
            Line 5808:     foreach my $code (split(/,/,$langlist)) {    # Search for a valid lang in priority
           
            這行的底下新增一行,才能正確自動解析不同語系!
       
            $code=lc($code);
   
3. 設定 Internet Information Server (IIS) 6.0

    3.1 修正 Log 格式

        date
        time
        c-ip
        cs-username
        cs-method
        cs-uri-stem
        cs-uri-query
        sc-status
        sc-bytes
        cs-version
        cs(User-Agent)
        cs(Referer)

    3.2 暫時將網站關閉
   
    3.3 將現有的 Log 移至其他目錄備份或直接刪除

    3.3 重新啟動網站
   
    3.4 新增虛擬目錄
   
        別名:cgi-bin
        路徑:C:\Program Files\AWStats\wwwroot\cgi-bin
        權限:讀取、執行
       
        別名:icon
        路徑:C:\Program Files\AWStats\wwwroot\icon
        權限:讀取
   
    3.5 設定「網頁設定延伸」
   
        將 Perl CGI Extension 設為「允許」
       
4. 設定 AWStats

    4.1 進入 C:\Program Files\AWStats\wwwroot\cgi-bin 目錄
   
        將 awstats.model.conf 複製一份並取名為 awstats.blog.miniasp.com.conf
   
    4.2 修改 awstats.blog.miniasp.com.conf
   
        # 設定 Log 檔的位址
        LogFile="C:\WINDOWS\system32\LogFiles\W3SVC1137020421\ex071115.log"
   
        # 設定 Log 的格式為 IIS 的 Format
        LogFormat="date time cs-method cs-uri-stem cs-uri-query cs-username c-ip cs-version cs(User-Agent) cs(Referer) sc-status sc-bytes"
       
        ※注意※ 如有格式不同,請開啟 LogFile 後,將「第四行」的 Fields 欄位設定在 LogFormat 參數即可!!
        #Fields: date time cs-method cs-uri-stem cs-uri-query cs-username c-ip cs-version cs(User-Agent) cs(Referer) sc-status sc-bytes
       
        # 設定網站的網址
        SiteDomain="blog.miniasp.com"
       
        # 設定其他跟網站網址的別名
        HostAliases="localhost 127.0.0.1 REGEX[blog\.miniasp\.com$]"
       
        # 設定是否解析完 Log 後直接刪除原始 Log 紀錄
        PurgeLogFile=0
       
        # 設定可以從網站更新 Log 分析紀錄
        AllowToUpdateStatsFromBrowser=0
       
        # 設定 Host IP 反查 ( 關閉此選項,因為我們要用更有效率的 IP2Country 做反查 )
        DNSLookup=0
       
        # 顯示三國的語系可供使用者切換 ( tw: 繁體中文, en: 英文, cn: 簡體中文 )
        ShowFlagLinks="tw en cn"

        # 預設顯示「繁體中文」
        Lang="tw"
       
        # 讓統計的 URL 包含 QueryString 參數
        URLWithQuery=1
       
        # 讓統計來源的 URL 包含 QueryString 參數
        URLReferrerWithQuery=1
   
        # 開啟 GeoIP 反查模組
        LoadPlugin="geoip GEOIP_STANDARD C:/Perl/GeoIP.dat"
        # 開啟 IP 反查的外掛
        #LoadPlugin="geoipfree"
   
        # 開啟 decodeutfkeys 外掛
        LoadPlugin="decodeutfkeys"
   
        # 關閉 KeyWordsNotSensitive 才能讓中文顯示正常!
        KeyWordsNotSensitive=0
       
        # 設定這個才能讓 IIS 的 Log 時間正確顯示
        LoadPlugin="timezone +8"
       
5. 更新 AWStats 統計資訊

    第一次先手動更新
    "C:\Program Files\AWStats\tools\awstats_updateall.pl" now -configdir="C:/Program Files/AWStats/wwwroot/cgi-bin" -awstatsprog="C:/Program Files/AWStats/wwwroot/cgi-bin/awstats.pl"

    # C:\Program Files\AWStats\wwwroot\cgi-bin>
    awstats.pl -config=blog.miniasp.com -update -showsteps -showcorrupted -showdropped

    更新成功後就可以先進入 AWStats 看連線狀態了
   
6. 使用 AWStats

    6.1 連線至 http://blog.miniasp.com/cgi-bin/awstats.pl
   
        預設的設定下,會要求輸入 Windows 的帳號、密碼認證!
   
        若要匿名登入看分析報表,需要修改目錄權限
       
            修改 C:\Program Files\AWStats\wwwroot 目錄的權限
           
                新增「網際網路 Guest 帳戶」( IUSR_machinename ) 並賦予「完全控制」權限

7. 設定排程定時更新網站流量統計

    7.1 修正 awstats.blog.miniasp.com.conf 設定檔,調整 LogFile 的路徑
   
        LogFile="C:/WINDOWS/system32/LogFiles/W3SVC1137020421/ex%YY-24%MM-24%DD-24.log"
   
        %YY-24    代表從現在算起24小時前的「年份」
        %MM-24    代表從現在算起24小時前的「月份」
        %DD-24    代表從現在算起24小時前的「日期」
       
        備註:也就是我們要解析「前一天」的 Log 檔!
   
    7.1 新增「排定的工作」
   
        執行:"C:\Program Files\AWStats\tools\awstats_updateall.pl" now -configdir="C:/Program Files/AWStats/wwwroot/cgi-bin" -awstatsprog="C:/Program Files/AWStats/wwwroot/cgi-bin/awstats.pl"
       
        開始的位置:"C:\Program Files\AWStats\tools"
       
        執行身份:MachineName\Administrator
       
        排程:每天上午 1:00 執行一次

    7.2 修改 AWStats 的 LogFile 路徑
   
        # 設定為每天分析的時候,抓取「前一天」的 Log 檔
        LogFile="C:/WINDOWS/system32/LogFiles/W3SVC1137020421/ex%YY-24%MM-24%DD-24.log"

  

此文章由 will 發表於 2007/11/30 下午 07:57:00

永久連結 | 評論 (10) | 此文章的RSSRSS comment feed |

分類: 系統管理

標籤: ,

收藏:

相關文章

評論

一月 13. 2008 15:01

Dennys

您好, 我依照您的作法在 windows 上安裝 Perl 5.8.8 及 awstats, 目前是用命令列去更新 awstats 資料時沒有問題, 但是用 web 顯示時, 如果把 geoip plugin 關掉也正常, 但如果打開, 會顯示下面的訊息. 但我也用 ppm 安裝了 Geo::IP:TongurePerl, 不知道這有可能是什麼原因造成的呢?
Error: Plugin init for plugin 'geoip' failed with return code: Undefined subroutine &Geo::IP:TongurePerl::GEOIP_STANDARD called at D:/www/cgi-bin/awstats/plugins/geoip.pm line 66. (A module required by plugin might be missing).

Dennys tw

一月 13. 2008 15:19

Dennys

嗯, 重開機後就可以了. 難道透過 ppm 安裝的 library 得等重開後才能使用嗎?

Dennys tw

一月 14. 2008 14:59

Will 保哥

應該不用重開機吧!可能是環境變數的問題吧,但我不太確定。

你下次可以試試先退出「命令提示字元」視窗,重新在開一個新的,才會套用新的環境變數。

Will 保哥 tw

一月 14. 2008 20:37

Dennys

我命令列是可以用的, 但是反而是 web 要重開後才能顯示. 或許我只需要重開 apache 就可以了 ... 不過也沒法測試了, 謝謝你的文章.

Dennys tw

十月 6. 2008 09:19

terry

「問題」
請問AWStats可以安裝在windows,但是它僅提供單一台pc的流量分析,或是可以分析整個網段的呢?
謝謝

terry tw

十月 6. 2008 09:22

will

AWStats 是提供「網站」流量分析,跟「網段」沒什麼關係喔,也並非用來分析 PC 整體流量的工具。

will tw

四月 2. 2009 17:34

新手!!

您好^^

不好意思,方便請教您一下,關於iis時間上的問題嗎@@?

目前由於iis的時候是跟著格林威治時區。所以時間上會慢了八個小時,對吧!!
但這基本上這個會影響到分析的時嗎!!?
就是說如果我沒有設定「LoadPlugin="timezone +8"」這個部份的話。
以我現在下午6點來看,log的記錄應該只到早上9點左右。所以awstats也會只分析到早上9點嘍!?

感謝您^^

新手!! tw

四月 11. 2009 11:45

will

如果以現在下午 6 點來看,Log 的記錄就是到下午 6 點,只是 Log 中的時間點只到早上 10 點 (相差8小時),當然從 AWStats 所看到的時間就是早上 10 點,如果你有加上「LoadPlugin="timezone +8"」的話,看到的時間就會變成下午 6 點。

所謂「分析的時間」與「顯示的時間」的「說法」是不一樣的,這是「時差」問題,並不是 Log 只記錄到早上 10 點。

will tw

六月 17. 2009 15:19

kerry

請問如果是要分析別台IIS的LOG檔時
使用UNC路徑 LogFile="\\主機名稱\LogFiles\W3SVC1\ex%YY-0%MM-0%DD-0.log"
在cmd下面執行 perl awstats.pl -config=test -update 可以成功

但開啟AllowToUpdateStatsFromBrowser=1 在網站執行更新時會出現以下錯誤:
Error: Couldn't open server log file "\\主機名稱\LogFiles\W3SVC1\ex090617.log" : Invalid argument

Setup ('C:\Program Files\AWStats\wwwroot\cgi-bin/awstats.web-external.conf' file, web server or permissions) may be wrong.
Check config file, permissions and AWStats documentation (in 'docs' directory).

請問有什麼地方是設定錯誤的嗎? 謝謝

kerry tw

六月 17. 2009 20:29

will

那是因為你的 Perl 執行權限不夠,沒辦法寫入資料到遠端電腦,你必須從這個方向著手解決。

will tw

新增評論


(將顯示您的Gravatar圖示)  

  Country flag

[b][/b] - [i][/i] - [u][/u]- [quote][/quote]



線上預覽

三月 11. 2010 11:42