在 Linux 中以互動方式實時檢視Apache Web訪問統計

Gabriel Cánepa發表於2015-04-29

無論你是在網站託管業務,還是在自己的VPS上執行幾個網站,你總會有需要顯示訪客統計資訊,例如前幾的訪客、訪問請求的檔案(無論動態或者靜態)、所用的頻寬、客戶端的瀏覽器,和訪問的來源網站,等等。

GoAccess 是一款用於Apache或者Nginx的命令列日誌分析器和互動式檢視器。使用這款工具,你不僅可以瀏覽到之前提及的相關資料,還可以通過分析網站伺服器日誌來進一步挖掘資料 – 而且這一切都是在一個終端視窗實時輸出的。由於今天的大多數web伺服器都使用Debian的衍生版或者基於RedHat的發行版來作為底層作業系統,所以本文中我告訴你如何在Debian和CentOS中安裝和使用GoAccess。

在Linux系統安裝GoAccess

在Debian,Ubuntu及其衍生版本,執行以下命令來安裝GoAccess:

# aptitude install goaccess

在CentOS中,你將需要使你的EPEL 倉庫可用然後執行以下命令:

# yum install goaccess

在Fedora,同樣使用yum命令:

# yum install goaccess

如果你想從原始碼安裝GoAccess來使用更多功能(例如 GeoIP 定位功能),需要在你的作業系統安裝必需的依賴包,然後按以下步驟進行:

# wget http://tar.goaccess.io/goaccess-0.8.5.tar.gz   
# tar -xzvf goaccess-0.8.5.tar.gz
# cd goaccess-0.8.5/
# ./configure --enable-geoip
# make
# make install

以上安裝的版本是 0.8.5,但是你也可以在該軟體的網站下載頁確認是否是最新版本。

由於GoAccess不需要後續的配置,一旦安裝你就可以馬上使用。

執行 GoAccess

開始使用GoAccess,只需要對它指定你的Apache訪問日誌。

對於Debian及其衍生版本:

# goaccess -f /var/log/apache2/access.log

基於紅帽的發行版:

# goaccess -f /var/log/httpd/access_log

當你第一次啟動GoAccess,你將會看到如下的螢幕中選擇日期和日誌格式。正如前面所述,你可以按空格鍵進行選擇,並按F10確認。至於日期和日誌格式,你可能需要參考Apache 文件來重新整理你的記憶。

在這個例子中,選擇常見日誌格式(Common Log Format(CLF)):

在 Linux 中以互動方式實時檢視Apache web訪問統計

然後按F10 確認。你將會從螢幕上看到統計資料。為了簡潔起見,這裡只顯示了首部,也就是日誌檔案的摘要,如下圖所示:

在 Linux 中以互動方式實時檢視Apache web訪問統計

通過 GoAccess來瀏覽網站伺服器統計資料

你可以按向下的箭頭滾動頁面,你會發現以下區域,它們是按請求排序的。這裡提及的目錄順序可能會根據你的發行版或者你所選的安裝方式(從源和庫)不同而不同:

  1. 每天唯一訪客(來自同樣IP、同一日期和同一瀏覽器的請求被認為是是唯一訪問)在 Linux 中以互動方式實時檢視Apache web訪問統計
  2. 請求的檔案(網頁URL)在 Linux 中以互動方式實時檢視Apache web訪問統計
  3. 請求的靜態檔案(例如,.png檔案,.js檔案等等)
  4. 來源的URLs(每一個URL請求的出處)
  5. HTTP 404 未找到的響應程式碼在 Linux 中以互動方式實時檢視Apache web訪問統計
  6. 作業系統
  7. 瀏覽器
  8. 主機地址(客戶端IP地址)在 Linux 中以互動方式實時檢視Apache web訪問統計
  9. HTTP 狀態程式碼在 Linux 中以互動方式實時檢視Apache web訪問統計
  10. 前幾位的來源站點
  11. 來自谷歌搜尋引擎的前幾位的關鍵字

如果你想要檢查已經存檔的日誌,你可以通過管道將它們傳送給GoAccess,如下:

在Debian及其衍生版本:

# zcat -f /var/log/apache2/access.log* | goaccess

在基於紅帽的發行版:

# cat /var/log/httpd/access* | goaccess

如果你需要上述部分的詳細報告(1至11項),直接按下其序號再按O(大寫o),就可以顯示出你需要的詳細檢視。下面的影像顯示5-O的輸出(先按5,再按O)

在 Linux 中以互動方式實時檢視Apache web訪問統計

如果要顯示GeoIP位置資訊,開啟主機部分的詳細檢視,如前面所述,你將會看到正在請求你的伺服器的客戶端IP地址所在的位置。

在 Linux 中以互動方式實時檢視Apache web訪問統計

如果你的系統還不是很忙碌,以上提及的章節將不會顯示大量的資訊,但是這種情形可以通過在你網站伺服器越來越多的請求發生改變。

儲存用於離線分析的報告

有時候你不想每次都實時去檢查你的系統狀態,可以儲存一份線上的分析檔案或列印出來。要生成一個HTML報告,只需要通過之前提到GoAccess命令,將輸出來重定向到一個HTML檔案即可。然後,用web瀏覽器來將這份報告開啟即可。

# zcat -f /var/log/apache2/access.log* | goaccess > /var/www/webserverstats.html

一旦報告生成,你將需要點選展開的連結來顯示每個類別詳細的檢視資訊:

在 Linux 中以互動方式實時檢視Apache web訪問統計

可以檢視youtube視訊:https://youtu.be/UVbLuaOpYdg

正如我們通過這篇文章討論,GoAccess是一個非常有價值的工具,它能給系統管理員實時提供可視的HTTP 統計分析。雖然GoAccess的預設輸出是標準輸出,但是你也可以將他們儲存到JSON,HTML或者CSV檔案。這種轉換可以讓 GoAccess在監控和顯示網站伺服器的統計資料時更有用。

相關文章