[軟體使用] AWStats 分析您的Log檔

AWStats525

一直以來都沒有因為主機流量需求而造成困擾,到最近,AZhu Blog System的主機開始有了流量限制的問題,於是陸陸續續做了一些調整的動作,也才開始注意到流量控制的重要性,於是開始尋找一些流量統計、流量分析的軟體,最後找到了AWStatshttp://awstats.sourceforge.net/)。

AWStats(Advanced Web Statistics)是一套擁有相當多紀錄檔分析功能的Open Source軟體,其也有相當久的一段歷史了,目前主要可以支援Web Server Apache(NCSA combined/XLF/ELF log format or common/CLF log format)、WebStar、IIS(W3C log format)和一些FTP Server及mail Server的分析。

由於AWStats主要使用Perl所編寫的程式,所以只要是可以運行Perl的環境,也都可以運作,在網路上其實已經有相當多的安裝流程說明,像是「Freeware 免費軟體 – [教學] 超級網站記錄分析 Awstats 安裝指南(windows)」及「blog教學III–誰在看你的Blog?」都寫的非常的完整,我在安裝時大致上就是參考上述的兩份文件來完成安裝的,因此在這篇文章中,我也就不再由細節中去分享我的使用安裝心得,就大致上去說明我所遇到的一些問題,以及需要注意的細節。

首先,大致上列出目前的主機系統的環境:

OS:Windows 2003 Service Pack 2
WebServer:Apache 2.2
PerlActivePerl 5.8
AWStats:Version 6.7

我在安裝時,大致上遇到了以下的幾個問題:

1. Perl在安裝後卻無法使用
2. Apache無法運行AWStats
3. Apache無法執行pl程式
4. AWStats無法顯示Log檔
5. AWStats在顯示時,頁面無法針對utf8的字體正常顯示

1. Perl在安裝後卻無法使用
首先是第一個Perl安裝的問題,其實從ActivePerl網站上面下載Active Perl 5.8下來之後,安裝時,只需要連續選擇下一步(Next)其實就可以完成安裝了,在安裝完畢之後,之所以還無法在Command Mode上面使用Perl,主要是,您需要先「從新開機一次」,就可以解決這個問題了。

要確認Perl是否安裝完成,您只需要在Command Mode下輸入「perl -version」如果有如下方圖示一樣正常顯示目前的Perl版本的話,那就是已經完成安裝,且可以正常的使用了。

Perl -version

2. Apache無法運行AWStats
由於在我的主機上,所有的網站主要採用Virtual Host(VHost)的方式來設立,因此並無法像前面所述的教學文件一樣,單純的只是在httpd.conf設定Alias、ScriptAlias及Directory權限即可,以我自己的環境,其實與一般只有一個實體Host的環境設定也沒有甚太大的差異,只需要在要運行AWStats的VHost設定下新增如上述教學文件所提到的Alias、ScriptAlias及Directory權限即可。

3. Apache無法執行pl程式
其實這個問題在教學文件中也有提到,只是自己少做了這個步驟,其無法執行Perl程式您首先會在Web頁面上看到如下的錯誤訊息。

500 Internal Server Error

會在Apache Log檔上看到類似下方所說得錯誤訊息。

couldn’t create child process: 720002: awstats.pl
couldn’t spawn child process: C:/ProgramFiles/AWStats/wwwroot/cgi-bin/awstats.pl

所以如果您在執行時,無法看到AWStats正常的頁面,那就表示,您的AWStats目前無法使用Perl,在我本機之所以無法於Apache上使用Perl所編寫的程式原因是並沒有去修正awstats.pl的第一行程式,修改目前執行環境perl.exe的位置。

要知道您目前環境的perl.exe位置,您只需要如教學網頁上所說的,於瀏覽器上瀏覽「http://your-host/cgi-bin//printenv.pl 」在頁面上會看到如下方的訊息

*** Please define header of file *.pl or *.cgi with
    #!c:\perl\bin\perl.exe

您只需要將訊息的第二行粗體的部份複製起來,然後使用文書編輯器打開awstats.pl,並將第一行程式「#!/usr/bin/perl」置換掉就可以完成無法執行pl程式的問題處理。

4. AWStats無法顯示Log檔
會發生已經可以執行AWStats但卻又一直看不到Log的訊息,主要是因為自己犯的小錯,在所有環境都設定完之後,必需要執行第一次的update,但請注意其update的執行程序應為「awstats.pl -config=YOUR_SITE –update」而非「awredir.pl -config=YOUR_SITE –update」,當您正常的執行update之後,您可以看到畫面中出現如下方的畫面。

Create/Update database for config "C:\ProgramFiles\AWStats\wwwroot\cgi-bin/awsta
ts.www.optik.idv.tw.conf" by AWStats version 6.7 (build 1.892)
From data in log file "C:/ProgramFiles/AWStats/tools/logresolvemerge.pl D:/Apach
eLogs/*Gary_WordPress*.log |"…
Phase 1 : First bypass old records, searching new record…
Searching new records from beginning of log file…
Phase 2 : Now process new records (Flush history on disk after 20000 hosts)…
Jumped lines in file: 0
Parsed lines in file: 103296
Found 0 dropped records,
Found 17669 corrupted records,
Found 85451 old records,
Found 176 new qualified records.

當您可以看到如上方的畫面時,也就是已經正常的完成Update的動作了,在瀏覽器上面輸入網址「http://your-site/awstats/awstats.pl?config=YOUR_SITE 」就可以看到正常的AWStats報表了!

5. AWStats在顯示時,頁面無法針對utf8的字體正常顯示
當可以正常的顯示畫面之後,卻發現在網站關鍵字的地方,會出現亂碼,而在頁面上點選右鍵->編碼選擇utf-8之後,又會發現關鍵字的地方已經正常顯示了,但是其他地方的文字卻又變成亂碼,我想這方面的問題應該許多人都有遇到,因此在Google搜尋了「awstats utf 8」果然找到了許多的解決方案,我是先用Jamyy’s Weblog上所提到的「讓 AWStats 顯示 UTF-8 繁體中文」來解決問題的,但是後來才知道,「在 Awstats ChangeLog 就有寫到 6.0 開始加入 decodeUTFkeys 這個 plugin 來處理搜尋引擎的 UTF8 關鍵字」,因此只需要在awstats.xxx.conf找到「#LoadPlugin="decodeutfkeys"」(大概在126x行)並且將#字註解去掉即可。

以上的方法主要是參考Neo’s blog上面所提到的「Awstats 正常顯示搜尋引擎 UTF-8 關鍵字的方法」。

上述的相關解決方案大致上都是透過搜尋來找到答案的,因此也參考了相當多的教學文件,如果您有興趣的話,也可以看看以下的這些連結。

1. 笔记 by 车东AWStats简介:Apache/IIS的日志分析工具
2. 記載著 Will 在網路世界的學習心得與技術分享在 Windows 主機設定 AWStats 流量分析軟體
3. Neo’s Blogawstats 加入/重新計算分析某時段的方法
4. 無聊人的無聊小站AWStats 安裝設定教學
5. 使用AWSTATS分析www, mail, ftp 記錄檔

This entry was posted in 軟體使用. Bookmark the permalink.

0 Responses to [軟體使用] AWStats 分析您的Log檔

  1. Pingback: 亂談亂記

發表迴響

您的電子郵件位址並不會被公開。 必要欄位標記為 *

*

您可以使用這些 HTML 標籤與屬性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>