AWStats (Advanced Web Statistics) 是功能強大的 Perl 撰寫開源日誌分析工具,支援 Apache (NCSA combined/XLF/ELF 格式)、IIS、Nginx 等主流 Web 伺服器日誌,可產出詳細的 HTML 統計報表:造訪者、頁面瀏覽、頻寬、國家、瀏覽器、作業系統、搜尋關鍵字、機器人、錯誤代碼等。
perl -v 確認)# 1. 下載解壓
wget https://prdownloads.sourceforge.net/awstats/awstats-7.9.tar.gz
tar xzf awstats-7.9.tar.gz
cd awstats-7.9
# 2. 執行互動式設定腳本
perl tools/awstats_configure.pl
腳本會引導:
httpd.conf) 路徑。CustomLog ... common 改為 combined。/etc/awstats/awstats.您的網域.conf。LogFile、SiteDomain、HostAliases、DirData (資料儲存目錄)、DirIcons (圖示路徑)。# 手動執行 (首次需完整掃描)
perl /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -config=您的網域 -update
# 或指定日誌檔路徑
perl awstats.pl -config=您的網域 -LogFile="/var/log/httpd/access_log" -update
建立排程自動更新 (crontab):
# 每 10 分鐘更新一次
*/10 * * * * /usr/bin/perl /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -config=您的網域 -update >/dev/null 2>&1
兩種方式:
ScriptAlias /awstats/ /usr/local/awstats/wwwroot/cgi-bin/,瀏覽 https://您的網域/awstats/awstats.pl?config=您的網域。perl awstats.pl -config=您的網域 -output -staticlinks > /var/www/html/awstats/您的網域.html
瀏覽 https://您的網域/awstats/您的網域.html。| 參數 | 說明 | 建議值 |
|---|---|---|
| LogFile | 存取日誌路徑,支援管道指令 | "/var/log/httpd/access_log" 或 "gunzip -c /var/log/httpd/access_log.*.gz |" |
| LogFormat | 日誌格式代碼 | 1 (NCSA Combined) |
| SiteDomain | 主要網域名 | example.com |
| HostAliases | 別名網域 (含 www、子網域) | www.example.com localhost 127.0.0.1 |
| DirData | 統計資料儲存目錄 (需可寫) | /var/lib/awstats |
| DirIcons | 圖示 URL 路徑 | /awstats/icons |
| AllowFullYearView | 允許全年報表 | 1 |
| ShowFlagLinks | 顯示國旗連結 | 1 |
| LoadPlugin | 載入外掛 (如 geoip, ipv6) | geoip GEOIP_STANDARD /usr/share/GeoIP/GeoIP.dat |
編輯 httpd.conf,確保 LogFormat 為 Combined:
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
CustomLog /var/log/httpd/access_log combined
修改後 重啟 Apache,並清除舊日誌檔以避免格式混雜。
Geo::IP Perl 模組與 GeoIP.dat 資料庫,設定 LoadPlugin="geoip GEOIP_STANDARD /path/GeoIP.dat"。LoadPlugin="ipv6"。awstats.網域.conf,共用同一 DirData 目錄但檔案名不同。%h 為代理 IP,需用 %{X-Forwarded-For}i 取得真實客戶 IP,並設定 LogFormat 對應。| 問題 | 原因 | 解決 |
|---|---|---|
| 報表顯示「No data found」 | 日誌路徑錯誤、格式不符、權限不足 | 檢查 LogFile、LogFormat、DirData 權限 |
| 更新極慢 | 日誌檔過大、未啟用增量更新 | 啟用 logrotate 切割日誌、確認 awstats 僅處理新增行 |
| 中文亂碼 | 日誌編碼非 UTF-8、報表 charset 未設 | 確認 Apache 日誌 UTF-8,設定 Charset="utf-8" |
| 圖示顯示破圖 | DirIcons 路徑錯誤、Apache 未映射圖示目錄 | Alias /awstats/icons/ /usr/local/awstats/wwwroot/icon/ |
AWStats 部署簡單、功能豐富、零授權成本,是中小型網站流量分析的首選。配合 logrotate 切割日誌、crontab 定時更新、靜態 HTML 報表發布,即可獲得穩定、低維運成本的統計平台。