由於網站時常不穩,在偵錯時,常要分析大量的網站伺服器連線紀錄檔...
經由外部顧問的介紹,認識了 GoAccess這個免費、開放原始碼且強大的apache log分析軟體~
GoAccess 主要支援 linux 系統下的安裝,如果在windows環境要使用的話,它另有支援windows的版本叫作CowAxess
GoAccess 可以分析即時在線的apache log,也可以當作容器,將現有的log檔丟進去分析
官網下載:https://goaccess.io/download
1.安裝 (以CentOS 7 為例)
由於GoAccess是以C語言編寫,所以會有與 ncurses 和 gcc 的相依性,先安裝ncurses 和 gcc
sudo yum -y install ncurses-devel gcc
安裝 geoip 套件,可從IP分析出地區
sudo yum -y install geoip-devel tokyocabinet-devel
下載&安裝最新版 (版本可以參考上方的官網)
wget http://tar.goaccess.io/goaccess-1.4.2.tar.gz
tar -xzvf goaccess-1.4.2.tar.gz
安裝套件
cd goaccess-1.4.2
sudo ./configure --enable-utf8 --enable-geoip=legacy
sudo make
sudo make install
在 /usr/bin 建立 soft link
sudo ln -s /usr/local/bin/goaccess /usr/bin/goaccess
2.設定
開啟 /local/etc/goaccess/ 底下的 goaccess.conf
取消註解 以下的時間格式
接著是日期格式
最後取消註解 NCSA的 log格式
儲存,即完成設定。
3.分析
3-1.文字分析-即時報表
輸入 goaccess + 檔案路徑,可以用文字模式即時分析log
sudo goaccess /var/log/httpd/access_log --log-format=COMBINED
3-2.文字分析-長期歷史報表
可以將 GoAccess 當作容器,把長期的數據丟進去交給GoAccess分析
sudo cat /var/log/httpd/access_log.* | goaccess
3-3. html格式圖表式報表
若要方便檢視,可產出圖表式的報表,方便閱讀。
sudo cat /var/log/httpd/access_log | goaccess > /var/www/html/report.html
會輸出 report.html 檔(檔名可以自行取),打開來後會長得像下圖,立刻看起來專業許多~~
**若要排除特定IP位址,例如公司內部的IP,則可以用 -e
sudo goaccess -f /var/log/httpd/access_log -e 192.168.0.92-192.168.0.99
如果有任何 GoAccess 的使用心得,或是其他推薦的 log analyzer,都歡迎大家在下方留言交流哦!