在windows平台下使用awstats分析IIS log

awstats是個免費的log分析,IIS的log他也支援,所以就拿他來做IIS的log分析。

不過,之前有空要試 awast 時,總是在設定IIS log時就不了了之。雖然官方文件有範例,但我不經在想,是否所選的資料欄位越多,作分析時,就可已呈現更多的資訊?所以一直想多設定想要分析的資料欄位!在google上找了找,雖然有找到相關文章,卻都沒幫助…

幾經測試注意到,設定的欄位名稱,其實和IIS log檔案內的名稱完全一樣!以下則是IIS log內顯示所選擇的欄位
#Fields: date time s-sitename s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-win32-status

所以,可以直接將IIS log檔中上述的字串,直接在設定檔中做設定,如下…
LogFormat="date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs-version cs(User-Agent) cs(Referer) sc-status sc-substatus sc-win32-status sc-bytes")

log設定完後,可以執行下述語法做出分析結果
perl X:\AWStats\yyy\cgi-bin\awstats.pl -config=myhost -update

基本上,如此就已經大功告成……

但是,做出來的html總是有點不對勁!因為時區,每個小時的流量不對。顯示搜尋的字串會因為unicode變成亂碼。K了一下文件(設定檔本身就寫得很完整),做了下列修改
LoadPlugin="decodeutfkeys"
LoadPlugin="timezone +8"
附註:+8 為台北的時區

如此,就差不多了!但是在官方的範例還可以顯示流量來自哪些國家、城市。繼續在K文件,發現再設定中需要啟動plug-in -- Geo-IP(還需另外安裝)。
LoadPlugin="geoip GEOIP_STANDARD X:\yourpath\GeoIP.dat"
雖然我已經試出可以顯示國家,但是還是有其他的問題…除此,還是無法顯示城市。所以,就不說明我的作法…再研究看看!!

附註:
  • 官方的論壇中有篇文章,有提到在windows平台下,我所遭遇問題的處理方式,我照做卻無法成功… :(
  • 其實log欄位選擇多也不一定有用,還需要看awstats有無支援!
  • 可以仔細看一下設定檔,當中有蠻多參數可以做調整!如,還可以顯示Worms attacks的資訊喔~
  • 官方的安裝說明已經很詳細了,不想看原文,想看具有親和力的中文,可以看這篇

留言