在 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)):

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

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

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

  1. 每天唯一訪客(來自同樣IP、同一日期和同一瀏覽器的請求被認為是是唯一訪問)

  2. 請求的檔案(網頁URL)

  3. 請求的靜態檔案(例如,.png檔案,.js檔案等等)

  4. 來源的URLs(每一個URL請求的出處)

  5. HTTP 404 未找到的響應程式碼

  6. 作業系統

  7. 瀏覽器

  8. 主機地址(客戶端IP地址)

  9. HTTP 狀態程式碼

  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)

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

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

儲存用於離線分析的報告

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

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

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

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

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


via: http://xmodulo.com/interactive-apache-web-server-log-analyzer-linux.html

作者:Gabriel Cánepa 譯者:disylee 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出

相關文章