Goaccess 日誌分析

2025-06-05 工作雜記 linux 日誌分析工具

分析 access log

安裝

wget -O - https://deb.goaccess.io/gnugpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/goaccess.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/goaccess.gpg arch=$(dpkg --print-architecture)] https://deb.goaccess.io/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/goaccess.list
sudo apt update
sudo apt install goaccess

使用方式

  • 分析多個檔案產出 html
cat w*/localhost_access_log.*.txt | goaccess - --log-format=COMMON -o combined_report.html
  • Terminal中 分析
cat w*/localhost_access_log.*.txt | goaccess - --log-format=COMMON

報告解讀


如何解讀 GoAccess 報告

您好!生成 GoAccess 報告後,下一步就是解讀它所呈現的豐富數據。GoAccess 報告以模組化的方式組織資訊,讓您可以快速掌握網站的流量概況和使用者行為。

一份 GoAccess 報告通常包含以下主要模組:

1. 總覽 (Dashboard/Global Statistics)

這是報告的頂部部分,提供了一組核心指標的總覽,讓您快速了解網站的整體狀況。

  • Total Requests (總請求數):您的網站或應用程式在日誌期間收到的所有請求總數。這是一個衡量網站流量規模的基本指標。
  • Valid Requests (有效請求數):成功處理並返回有效狀態碼(如 2xx, 3xx)的請求數。
  • Invalid Requests (無效請求數):由於格式錯誤或其他原因無法解析的請求數。
  • Generated bandwidth (產生頻寬):所有請求產生的總數據傳輸量。這個數值可以幫助您評估頻寬使用情況。
  • Not Found (404s) (未找到頁面):返回 404 狀態碼的請求數,表示請求的資源不存在。這個數字如果很高,可能表示有損壞的連結、資源被移除或使用者輸入錯誤的網址。
  • Static Files (靜態檔案):圖片、CSS、JavaScript 等靜態檔案的請求數。
  • Log Size (日誌大小):所分析日誌檔案的總大小。

2. 獨特訪客 (Unique Visitors)

這個模組顯示了訪問您網站的獨立訪客數量。GoAccess 根據 IP 地址、瀏覽器 User-Agent 等因素來判斷「獨特訪客」。

  • Hits (點擊):總請求數。
  • Visitors (訪客):獨立訪客的數量。
  • Percentage (百分比):該項佔總訪客數的百分比。
  • Bandwidth (頻寬):該項訪客產生的頻寬。
  • Average time on site (平均停留時間):如果日誌中包含足夠的資訊(通常需要較新的日誌格式或額外配置),GoAccess 也能估算平均停留時間。

解讀時,您可以觀察訪客的變化趨勢,例如特定時間點的訪客高峰或低谷。

3. 請求的檔案 (Requested Files/URLs)

這部分列出了被請求最多的頁面或資源,通常按熱門程度排序。

  • Hits (點擊):該檔案被請求的次數。
  • Visitors (訪客):請求該檔案的獨立訪客數。
  • Percentage (百分比):該檔案的請求佔總請求的百分比。
  • Bandwidth (頻寬):該檔案傳輸的總頻寬。
  • Avg. time on site (平均停留時間):使用者在此頁面上的平均停留時間 (如果數據可用)。

解讀時,您可以:

  • 識別熱門內容:了解哪些頁面或資源最受歡迎。
  • 發現未預期的請求:檢查是否有不應該被頻繁請求的資源,這可能是惡意掃描或配置錯誤的跡象。

4. 靜態檔案 (Static Files)

專門列出圖片、CSS、JS、PDF 等靜態資源的請求情況,與上述「請求的檔案」類似,但更聚焦於靜態內容。

5. 請求的靜態檔案 (Not Found URLs (404s))

這個模組專門列出導致 404 錯誤(頁面未找到)的 URL。

  • Hits (點擊):該 URL 導致 404 的次數。
  • Visitors (訪客):請求該 URL 並收到 404 的獨立訪客數。
  • Last Visit (最後訪問):最後一次請求這個不存在 URL 的時間。

解讀時,這是非常重要的模組

  • 修復失效連結:如果您的網站內部連結或外部引用指向了不存在的頁面,應盡快修正。
  • 識別惡意掃描:過多的 404 請求可能來自惡意爬蟲或掃描器,嘗試尋找網站漏洞。
  • 清理廢棄內容:如果某些頁面已移除但仍被大量請求,考慮設定 301 重定向。

6. 主機 (Hosts/IP Addresses)

列出訪問您網站的 IP 地址,並顯示它們的請求數、頻寬等。

  • Hits (點擊):該 IP 地址的請求數。
  • Visitors (訪客):從該 IP 地址過來的獨立訪客數 (通常是 1)。
  • Bandwidth (頻寬):該 IP 地址消耗的頻寬。
  • Last Request (最後請求):該 IP 地址的最後一次請求時間。
  • City/Country (城市/國家):如果啟用 GeoIP 支援,會顯示訪客的地理位置。

解讀時,您可以:

  • 識別惡意 IP:如果某個 IP 地址的請求量異常大、產生大量 404 或其他可疑行為,可能是攻擊或過度抓取,您可能需要考慮封鎖它。
  • 分析訪客來源:了解主要訪客來自哪些地區。

7. 作業系統 (Operating Systems)

顯示訪客使用的作業系統分佈情況。

  • Hits (點擊):使用該作業系統的請求數。
  • Visitors (訪客):使用該作業系統的獨立訪客數。
  • Percentage (百分比):該作業系統的訪客佔總訪客的百分比。

解讀時,可以了解您的目標使用者群體主要使用哪些作業系統,這對網站設計和兼容性測試很有幫助。

8. 瀏覽器 (Browsers)

顯示訪客使用的瀏覽器分佈情況。

  • Hits (點擊):使用該瀏覽器的請求數。
  • Visitors (訪客):使用該瀏覽器的獨立訪客數。
  • Percentage (百分比):該瀏覽器的訪客佔總訪客的百分比。

解讀時,可以了解您的主要瀏覽器使用者,有助於進行瀏覽器兼容性測試。

9. 來源網站 (Referrers)

顯示引導使用者來到您網站的來源網站 (例如 Google 搜尋、其他網站連結等)。

  • Hits (點擊):來自該來源網站的請求數。
  • Visitors (訪客):來自該來源網站的獨立訪客數。

解讀時,可以了解您的流量來源,評估行銷活動的效果或發現新的合作機會。

10. 關鍵字 (Keyphrases)

如果訪客是透過搜尋引擎來到您的網站,這個模組會嘗試從 Referer 資訊中提取搜尋關鍵字。

11. HTTP 狀態碼 (HTTP Status Codes)

顯示不同 HTTP 狀態碼的請求分佈,例如 200 (成功)、302 (重定向)、403 (禁止訪問)、404 (未找到)、500 (伺服器內部錯誤) 等。

  • 2xx (Success):請求成功,頁面正常顯示。
  • 3xx (Redirection):頁面重定向。
  • 4xx (Client Error):客戶端錯誤,最常見的是 404。
  • 5xx (Server Error):伺服器錯誤,例如 500 Internal Server Error。

解讀時,這是非常重要的模組:

  • 監控錯誤:特別關注 4xx 和 5xx 錯誤的數量。高比例的錯誤可能表示網站問題,需要立即處理。
  • 了解行為:分析 3xx 了解重定向的使用情況。

12. HTTP 請求方法 (HTTP Request Methods)

顯示 GET、POST、HEAD 等不同 HTTP 方法的使用分佈。

13. 流量高峰時段 (Hourly/Daily/Monthly Distribution)

這些模組以圖表形式顯示流量在一天中、一週中或一個月中的分佈趨勢,幫助您識別網站流量的高峰時段。

  • Hits (點擊):該時間段的請求數。
  • Visitors (訪客):該時間段的獨立訪客數。
  • Bandwidth (頻寬):該時間段產生的頻寬。

解讀時,可以幫助您:

  • 安排維護:在流量低谷時段進行系統維護。
  • 最佳化資源:根據流量高峰調整伺服器資源。
  • 規劃行銷活動:在目標使用者最活躍的時段發布內容。

如何有效解讀報告?

  1. 從上到下掃描:先看總覽,再依序瀏覽每個模組,了解網站的整體健康狀況和流量構成。
  2. 關注異常值:特別注意那些佔比高、出現錯誤或突然激增的數字。例如,404 錯誤數量異常增多,或者某個 IP 地址的請求量暴增。
  3. 趨勢分析:如果能持續生成日誌報告,將不同時間段的報告進行對比,可以發現流量的變化趨勢,例如使用者成長、熱門內容變化等。
  4. 結合業務理解:將日誌數據與您的業務目標結合起來。例如,如果某個產品頁面流量很高但銷售額不高,可能需要優化頁面內容。
  5. 深入挖掘:GoAccess 報告可以透過點擊或互動(在終端機模式下)鑽取更詳細的數據。例如,點擊一個錯誤頁面,可以查看是哪些 IP 請求了它。

透過定期查看和解讀 GoAccess 報告,您將能更好地了解您的 Tomcat 應用程式的使用情況,及早發現潛在問題,並做出數據驅動的決策。

如果您在解讀特定模組時有任何疑問,或想進一步探討某些數據點,歡迎隨時提出!

參考資料