網頁伺服器最怕的就是突然受到大量的存取,會造成伺服器的loading迅速提高,第一時間要抓出問題除了經驗準則之外,還是需要依靠一些工具來輔助!像我之前曾經介紹過Apache Top這樣的工具,可以即時查看apache伺服器最即時的運作;這次和大家分享一款可以即時分析log的工具【GoAccess】,強調可以快速處理即時的log,產出文字介面的報表,若是主機受到異常的存取,我想信對於抓出兇手還是有一定的幫助,而且這款工具不但支援Apache的log,最新版的也支援Nginx囉!

GoAccess:http://goaccess.prosoftcorp.com/
安裝方式非常簡單,下載原始檔解壓縮之後,./configure; make; make install 就可以簡單安裝完成。

使用方式

  • -f <argument> - Path to input log file.
    (主要分析log需要使用的,譬如說 goaccess -f /var/log/httpd/access_log)
  • -b            - Enable total bandwidth consumption.(分析流量)
    For faster parsing, don't enable this flag.
    若是開啟-b的選項,將會留流量一併計算在內,大概可以估算出每日的流量,不過這是網頁壓縮前的數據。
  • -s            - Enable HTTP status codes report.(分析HTTP status code)
    For faster parsing, don't enable this flag.
  • -a            - Enable a List of User-Agents by host.(分析每位使用者的使用環境)
    For faster parsing, don't enable this flag.
    若是開啟-a,在察看IP時就會列出User-Agents消關資訊。
  • -e <argument> - Exclude an IP from being counted under the
    HOST module. Disabled by default.

基本上使用-f則足夠,不然會增加不少開啟時間,我測試時log大概600多MB
only -f:(花費42秒)

with -b -s -a:(花費86秒)


報表頁面可以清楚的看到狀態,主要分為11個不同的欄位

  1. Unique visitors per day - Including spiders(分析每天多少不同的IP造訪)
  2. Requested files (Pages-URL)(瀏覽的網頁)
  3. Requested static files - (Static content: png,js,etc)(瀏覽的檔案)
  4. Referrers URLs
  5. HTTP 404 Not Found response code
  6. Operating Systems
  7. Browsers
  8. Hosts
  9. HTTP Status Codes(需要使用-s的參數)
  10. Top Referring Sites
  11. Top Keyphrases used on Google's search engine

每個項目預設會顯示前六名的數據,可以使用鍵盤的o鍵來查看每個項目的細節,利用TAB切換不同欄位的選擇,或是可以使用數字鍵直接切換,切換後再按o即可,更多的操作說明可以使用man goaccess查看,相信應該可以獲得不少需要的資訊。

GeoIP的使用:

GeoIP可以幫忙分析IP的所在地,在察看IP時多多少少有一些幫助,在編譯可以使用./configure --enable-geoip,之後查看IP位置時就會知道IP來源地區囉!(系統內也記得安裝GeoIP-devel的套件)



GeoIP就算單獨使用也很好用~譬如說:
$ geoiplookup easylife.tw
GeoIP Country Edition: TW, Taiwan

GoAccess:http://goaccess.prosoftcorp.com/
更多資訊請參考:
最新超值旗艦機開箱
比螺旋燈泡還省電的迷你 NAS
26800mAh筆電行動電源