一般大型網站的 Web Servre log 太大,通常會以 logrotate 將 log 分割成為數個檔案。
以 Apache 為例就是像:
access_log.1、access_log.2、access_log.3...以此類推
另外如果使用 Load balance ,也是會產生個 log 檔,但 awstats 預設的 LogFile 是只有一個,在多個 log file 的狀態下,變成無法更新至最新的狀態,這時就要使用 awstats 內建的工具logresolvemerge.pl 來合併 log ,其實用法也很簡單,只要更改網站的設定檔就好了,以本站為例就是編輯 /etc/awstats/awstats.neo.conf
找到 LogFile 的地方,原來預設單個 log 的設定如下:
LogFile="/var/log/httpd/access_log"
再來就是輸入您 logresolvemerge.pl 的路徑跟 log 的路徑及萬用字元即可。
logresolvemerge.pl 是放在 awstats 安裝路徑的 tools 裡面,因為我的 awstats 是裝在/usr/local/awstats 裡面,所以完整路徑就是 /usr/local/awstats/tools/logresolvemerge.pl 。
另外我是要合併 access_log.1、access_log.2、access_log.3 的 LogFile 更改範例如下:
LogFile="/usr/local/awstats/tools/logresolvemerge.pl /var/log/httpd/access_log* |"
編輯存檔後,再來執行更新記錄程式即可,如:
#/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -config=xxx -update
再來進去您的網址就可以看到合併後輸出的結果了,如:
http://www.yoursite.com/awstats/awstats.pl?config=xxx