Webalizer 是經典的 Apache/Nginx 存取日誌分析工具,產出的 HTML 報表包含 Hits、Files、Pages、Visits、Sites、KBytes** 等指標。初次接觸容易混淆其定義差異。本文逐一解釋各指標含義、計算邏輯、常見誤讀與實務應用場景,並補充 Webalizer.conf 關鍵配置建議。
| 指標 | 中文名稱 | 定義與計算邏輯 | 實務意義 |
|---|---|---|---|
| Hits | 點擊數 / 請求總數 | 日誌檔每一行即為一個 Hit。包含 HTML、圖片、CSS、JS、API、圖示、字型、AJAX、機器人爬蟲等**所有 HTTP 請求**。 | 伺服器總負載量指標。不等於人流量。 |
| Files | 檔案傳輸數 / 回應數 | 伺服器實際回傳內容 (HTTP 2xx/3xx) 的請求數。Hits - Files = 被拒絕/重導向/錯誤的請求 (4xx/5xx/304 Not Modified)。 | 成功服務的請求量。Files/Hits ≈ 成功率。 |
| Pages | 頁面瀏覽數 / Page Views (PV) | 依副檔名判斷為「頁面」的請求。預設 .htm .html .cgi .php .asp .aspx .jsp .pl 等。不包含圖片、CSS、JS、字型、API 回應。 | 最接近真實人工瀏覽量 的指標。可自訂 PageType 擴充。 |
| Visits | 造訪次數 / Session | 同一 IP 在 逾時閾值 (預設 30 分鐘) 內的連續請求視為一次 Visit。超過 30 分鐘無活動後再次請求算新 Visit。 | 用戶會話數估算。非唯一訪客數 (同一用戶日間多次造訪會重複計算)。 |
| Sites | 來源站點數 / 唯一 IP 數 | 日誌中出現的**不重複來源 IP 位址總數**。包含真人、爬蟲、代理、NAT 後多用戶共用 IP。 | IP 級別的覆蓋面。**不等於真實用戶數** (NAT/代理導致低估,爬蟲導致高估)。 |
| KBytes | 傳輸流量 (KB) | 伺服器發送的總位元組數 / 1024。包含標頭、內容、壓縮後大小。 | 頻寬成本估算依據。 |
一個用戶瀏覽一篇部落格文章 (含 1 HTML + 3 圖片 + 2 CSS + 1 JS):
┌────────────────────────────────────────────────────┐
│ HTTP Requests (日誌行) │
├────────────────────────────────────────────────────┤
│ GET /article/123 → HTML (Page) │
│ GET /static/style.css → CSS (非 Page) │
│ GET /static/app.js → JS (非 Page) │
│ GET /img/photo1.jpg → IMG (非 Page) │
│ GET /img/photo2.jpg → IMG (非 Page) │
│ GET /img/photo3.jpg → IMG (非 Page) │
│ GET /favicon.ico → ICO (非 Page) │
└────────────────────────────────────────────────────┘
統計結果:
Hits = 7 (所有請求)
Files = 7 (假設全 200 OK)
Pages = 1 (僅 HTML)
Visits = 1 (同一 IP 30 分鐘內)
Sites = 1 (唯一 IP)
| 誤讀 | 正確觀念 |
|---|---|
| Hits = 人數 | Hits 含靜態資源、機器人、API、健康檢查,通常是 Pages 的 10~50 倍 |
| Visits = 唯一訪客 (UV) | Visits 是會話數,同一用戶日間多次造訪會重複計算;UV 需配合 Cookie/登入 ID 統計 |
| Sites = 真實用戶數 | 企業/學校/咖啡廳 NAT 共用一 IP 會低估;爬蟲/掃描器會高估 |
| Pages 包含 AJAX/API | 預設不包含;需在 Webalizer.conf 加入 PageType application/json 等 |
| 304 Not Modified 算 Files | 304 無內容傳輸,**不計入 Files**,但計入 Hits |
# 擴充頁面類型 (支援現代 SPA/API)
PageType text/html
PageType application/xhtml+xml
PageType application/json
PageType text/xml
PageType application/xml
PageType */php
PageType */jsp
PageType */asp
PageType */aspx
# 排除機器人/健康檢查 (減少 Hits 噪音)
IgnoreUserAgent "*bot*"
IgnoreUserAgent "*spider*"
IgnoreUserAgent "*crawler*"
IgnoreUserAgent "*monitoring*"
IgnoreUserAgent "kube-probe*"
IgnoreSite "10.0.0.0/8" # 內網健康檢查
IgnoreSite "192.168.0.0/16"
# 造訪逾時調整 (單位:秒)
VisitTimeout 1800 # 30 分鐘 (預設)
# 輸出目錄與語系
OutputDir /var/www/webalizer
Lang traditional_chinese
# 隱藏低統計值項目
HideReferrer *google-analytics.com*
HideReferrer *facebook.com*
理解 Webalizer 各指標的精確定義與計算邏輯,能避免向經營層匯報時出現「流量暴增」實為「靜態資源快取失效導致 Hits 飆升」等誤導性結論,並能針對性調整 PageType/Ignore* 規則提升報表參考價值。