用GoAccess分析Nginx的日誌

GoAccess是什麼?

    GoAccess是一款開源、實時,運行在命令行終端下的web日誌分析工具。該工具提供快速、多樣的HTTP狀態統計,可以令管理員不再糾結於統計各類數據和繁雜的指令以及一大堆管道/正則表達式。


GoAccess功能一覽

  • 生成統計數據,帶寬統計等

  • 每個請求的時間統計

  • 最高訪問ip

  • 請求的文件統計

  • 請求的靜態文件、圖片、flash、js文件等

  • 各HTTP狀態碼統計

  • Hosts,反向DNS,IP所在地

  • 操作系統

  • 瀏覽器/蜘蛛

  • 引用的網站

  • 引用的URLs

  • 關鍵詞組

  • 地理位置 (大陸、國家、城市)

  • 可輸出JSON或CSV

  • 各種的顏色主題

  • 支持大容量數據且支持大容量數據的持續分析

  • 支持IPv6

  • 可生成HTML報告


開始使用

如果想從源碼編譯:

yum install glib2 glib2-devel GeoIP GeoIP-devel ncurses ncurses-devel zlib zlib-devel 
wget http://tar.goaccess.io/goaccess-1.0.2.tar.gz 
tar -xzvf goaccess-1.0.2.tar.gz 
cd goaccess-1.0.2/ 
./configure --enable-geoip --enable-utf8 
make && make install

或是

yum install -y goaccess


用Access來分析Nginx日誌

然後就可以開始使用GoAccess了。

首先,進入nginx的日誌目錄,如/var/log/nginx,輸入如下命令讓goaccess打開指定文件:


goaccess -f access.log

打開之後會跳出選擇日誌文件類型的界面:

wKiom1bikYrChUjsAAEI2Gmb3xE192.jpg


Nginx日誌是屬於Combined Log Format (XLF/ELF)類型的,所以我們選擇第三個。用上下光標移動,空格選中,回車確定。

進入了主界面:

wKiom1bikeWDiad9AABdNV5DHiU422.jpg


鍵盤操作:

  • F1h:幫助

  • F5 :刷新主界面

  • q:退出程序/當前窗口/摺疊當前模塊

  • oEnter:展開選中的模塊或窗口

  • 0-9以及Shift + 0:將選中的模塊或窗口激活

  • kj:模塊內部移動

  • c:修改配色

  • ^f^b:模塊中上下滾屏

  • tab shift+tab:前後切換模塊

  • s:模塊內部排序選擇

  • /:在所有模塊中搜索(支持正則)

  • n:找到下個匹配

  • gG:跳到第一項/最後一項


命令行下相關:

在使用goaccess命令行前,我們必須配置日誌文件的解析格式,因爲此處沒有界面來讓你選擇日誌格式了。

看一下日誌格式:

220.171.104.18 - - [11/Mar/2016:17:20:07 +0800] "GET /templets/smore/images/top.png HTTP/1.1" 304 0 "http://www.test.cn/lines/show_4.html" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36"


現在修改配置文件添加:

vi /etc/goaccess.conf 

time-format %T
date-format %d/%b/%Y
log-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u"

編譯安裝的
vi /usr/local/etc/goaccess.conf
time-format %T
date-format %d/%b/%Y
log-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u"


要實時性的實現日誌分析則運行如下命令:

goaccess -f /var/log/nginx/access.log


想看某天的則可以打印html報告:

goaccess -d -f /var/log/nginx/access.log -a >report.html

由於nginx會自動壓縮日誌,一下命令可以直接分析壓縮後的日誌:

zcat access.log.*.gz | goaccess
#或者
zcat -f access.log* | goaccess


參考鏈接:

https://www.fancycoding.com/log-analyse-using-goaccess/

http://www.mamicode.com/info-detail-923728.html

http://www.cnblogs.com/yjf512/p/3640346.html


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章