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
打開之後會跳出選擇日誌文件類型的界面:
Nginx日誌是屬於Combined Log Format (XLF/ELF)類型的,所以我們選擇第三個。用上下光標移動,空格選中,回車確定。
進入了主界面:
鍵盤操作:
F1
或h
:幫助F5
:刷新主界面q
:退出程序/當前窗口/摺疊當前模塊o
或Enter
:展開選中的模塊或窗口0-9
以及Shift + 0
:將選中的模塊或窗口激活k
和j
:模塊內部移動c
:修改配色^f
和^b
:模塊中上下滾屏tab
shift+tab
:前後切換模塊s
:模塊內部排序選擇/
:在所有模塊中搜索(支持正則)n
:找到下個匹配g
和G
:跳到第一項/最後一項
命令行下相關:
在使用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