首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

AWStats 部署指南:Apache 存取日誌分析與網站流量統計

     編輯:MySQL 資料庫相關知識

什麼是 AWStats?

AWStats (Advanced Web Statistics) 是功能強大的 Perl 撰寫開源日誌分析工具,支援 Apache (NCSA combined/XLF/ELF 格式)、IIS、Nginx 等主流 Web 伺服器日誌,可產出詳細的 HTML 統計報表:造訪者、頁面瀏覽、頻寬、國家、瀏覽器、作業系統、搜尋關鍵字、機器人、錯誤代碼等。

系統需求

  • Perl 5.005_03 或更新版本 (perl -v 確認)
  • Web 伺服器 (Apache/Nginx/IIS) 已啟用存取日誌
  • 建議日誌格式為 NCSA Combined (含 Referrer 與 User-Agent)

安裝與設定三步驟

步驟 0:安裝與初始設定 (awstats_configure.pl)

# 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

腳本會引導:

  1. 偵測 Apache 設定檔 (httpd.conf) 路徑。
  2. 檢查日誌格式,建議將 CustomLog ... common 改為 combined。
  3. 建立站點設定檔 /etc/awstats/awstats.您的網域.conf。
  4. 設定 LogFile、SiteDomain、HostAliases、DirData (資料儲存目錄)、DirIcons (圖示路徑)。

步驟 1:建立/更新統計資料

# 手動執行 (首次需完整掃描)
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

步驟 2:瀏覽報表

兩種方式:

  1. CGI 動態模式:Apache 設定 ScriptAlias /awstats/ /usr/local/awstats/wwwroot/cgi-bin/,瀏覽 https://您的網域/awstats/awstats.pl?config=您的網域。
  2. 靜態 HTML 模式 (效能較佳):
    perl awstats.pl -config=您的網域 -output -staticlinks > /var/www/html/awstats/您的網域.html
    瀏覽 https://您的網域/awstats/您的網域.html。

關鍵設定檔參數說明 (/etc/awstats/awstats.網域.conf)

參數說明建議值
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

Apache 日誌格式調整 (關鍵)

編輯 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,並清除舊日誌檔以避免格式混雜。

進階功能

  • GeoIP 地理定位:安裝 Geo::IP Perl 模組與 GeoIP.dat 資料庫,設定 LoadPlugin="geoip GEOIP_STANDARD /path/GeoIP.dat"。
  • IPv6 支援:LoadPlugin="ipv6"。
  • 多虛擬主機:每個 VirtualHost 建立獨立 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 報表發布,即可獲得穩定、低維運成本的統計平台。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved