Awstats 多個 log 的顯示方法

一般大型網站的 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 的設定如下:

1
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 更改範例如下:

1
LogFile="/usr/local/awstats/tools/logresolvemerge.pl /var/log/httpd/access_log* |"

編輯存檔後,再來執行更新記錄程式即可,如:

1
#/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -config=xxx -update

再來進去您的網址就可以看到合併後輸出的結果了,如:

http://www.yoursite.com/awstats/awstats.pl?config=xxx