AWStats如何分析多台web server log

當初會想要調整log的欄位,主要是考慮到要分析的log主機不只一台,如果我能在IIS 的log中帶入web server ip,是否AWStats在報表上也可以依照不同web server,顯示各台的狀態呢?

很不幸的,沒辦法…且,現實是…處理完第一台web server的log,再繼續處理第二台web server log(同一日期)時,AWStats會顯示資料重複,因此都不處理!

所幸有同事點明一件事情,AWStats是利用所處理的最後一筆log紀錄的時間來做劃分,才會造成處理同一天、不同機器的log時,第一台log一處理完,就不能處理第二台了!,既然如此,只好將檔案合併後再做處理…

最後研究出來的解決方案為…
  1. 先將各台web server log檔案傳送到某一台機器
  2. 將所有log檔案結合成一個檔案
  3. 將合併後的log內容,依照時間重新排序…
  4. 最後才交給awstats做處理!

為了處理方便,做了一個bat檔。內容如下…
rem 為了處理方便,先將路徑指到web log存放的路徑
cd X:\my_temp_dir\
X:

rem 合併各台web server的log檔案
copy 192.168.1.1.log+192.168.1.2.log p_log_org.log

rem 將合併後的log檔案作排序
sort /L "C" p_log_org.log /O p_log.log

rem awstats處理,產生報表
perl X:\AWStats\wwwroot\cgi-bin\awstats.pl -config=your_config -update



附註:
  • awstats 做出來的『報表』,其實是文字檔。存放在所安裝的 cgi-bin目錄下。
    如X:\AWStats\wwwroot\cgi-bin your_config_xxxxxx.txt

留言