網頁伺服器最怕的就是突然受到大量的存取,會造成伺服器的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個不同的欄位
- Unique visitors per day - Including spiders(分析每天多少不同的IP造訪)
- Requested files (Pages-URL)(瀏覽的網頁)
- Requested static files - (Static content: png,js,etc)(瀏覽的檔案)
- Referrers URLs
- HTTP 404 Not Found response code
- Operating Systems
- Browsers
- Hosts
- HTTP Status Codes(需要使用-s的參數)
- Top Referring Sites
- 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.twGeoIP Country Edition: TW, Taiwan
GoAccess:http://goaccess.prosoftcorp.com/