GoAccess是什么?
GoAccess是一款開源、實(shí)時(shí),運(yùn)行在命令行終端下的web日志分析工具。該工具提供快速、多樣的HTTP狀態(tài)統(tǒng)計(jì),可以令管理員不再糾結(jié)于統(tǒng)計(jì)各類數(shù)據(jù),和繁雜的指令以及一大堆管道/正則表達(dá)式說byebye。
功能一覽
- 生成統(tǒng)計(jì)數(shù)據(jù),帶寬統(tǒng)計(jì)等
- 每個(gè)請(qǐng)求的時(shí)間統(tǒng)計(jì)
- 最高訪問ip
- 請(qǐng)求的文件統(tǒng)計(jì)
- 請(qǐng)求的靜態(tài)文件、圖片、flash、js文件等
- 各HTTP狀態(tài)碼統(tǒng)計(jì)
- Hosts,反向DNS,IP所在地
- 操作系統(tǒng)
- 瀏覽器/蜘蛛
- 引用的網(wǎng)站
- 引用的URLs
- 關(guān)鍵詞組
- 地理位置 (大陸、國家、城市)
- 可輸出JSON或CSV
- 各種的顏色主題
- 支持大容量數(shù)據(jù)且支持大容量數(shù)據(jù)的持續(xù)分析
- 支持IPv6
- 可生成HTML報(bào)告
開始使用
1 2 3 4 5
| wget http://tar.goaccess.io/goaccess-0.8.1.tar.gz tar -xzvf goaccess-0.8.1.tar.gz cd goaccess-0.8.1/ ./configure --enable-geoip --enable-utf8 make && make install
|
Debian/Ubuntu
1
| # apt-get install goaccess
|
CentOS/Fedora
OSX
用Access來分析Nginx日志
然后就可以開始使用GoAccess了。
首先,進(jìn)入nginx的日志目錄,如/var/log/nginx
,輸入如下命令讓goaccess打開指定文件:
打開之后會(huì)跳出選擇日志文件類型的界面:
Nginx日志是屬于Combined Log Format (XLF/ELF)類型的,所以我們選擇第三個(gè)。用上下光標(biāo)移動(dòng),空格選中,回車確定。
進(jìn)入了主界面:
鍵盤操作:
F1
或h
:幫助F5
:刷新主界面q
:退出程序/當(dāng)前窗口/折疊當(dāng)前模塊o
或Enter
:展開選中的模塊或窗口0-9
以及Shift + 0
:將選中的模塊或窗口激活k
和j
:模塊內(nèi)部移動(dòng)c
:修改配色^f
和^b
:模塊中上下滾屏tab
shift+tab
:前后切換模塊s
:模塊內(nèi)部排序選擇/
:在所有模塊中搜索(支持正則)n
:找到下個(gè)匹配g
和G
:跳到第一項(xiàng)/最后一項(xiàng)
命令行下相關(guān):
在使用goaccess命令行前,我們必須配置日志文件的解析格式,因?yàn)榇颂帥]有界面來讓你選擇日志格式了。
看一下日志格式:
1 2
| $tail access.log 219.137.254.254 - - [12/Jul/2014:14:55:04 +0800] "GET / HTTP/1.1" 301 185 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36" "-"
|
如果你的日志格式和我一樣,那么就不用自己折騰了。請(qǐng)?zhí)^下一小段。
如果你的日志格式和我不同,那么請(qǐng)去http://goaccess.io/man#custom-log 看一下格式的基本規(guī)范。以我的log為例:
ip - - [日期] "請(qǐng)求類型" 服務(wù)器響應(yīng) 大小 來源 瀏覽器信息 "代理"
%h %^[%d:%^] "%r" %s %b "%R" "%u" %^
各項(xiàng)代表的意思可以去http://goaccess.io/man#custom-log 查看。
現(xiàn)在配置一下:
如果有這行:
1 2
| #NCSA Combined Log Format with Virtual Host #log-format %^:%^ %h %^[%d:%^] "%r" %s %b "%R" "%u"
|
那就去掉下面log-format前的#
吧。
如果沒有,就寫一行。
log-format %h %^[%d:%^] "%r" %s %b "%R" "%u" %^
找到
1 2
| #Any Apache log date format #date-format %d/%b/%Y
|
取消掉date-format的注釋。
使用GoAccess生成html報(bào)告:
1
| # goaccess -f access.log -a > report.html
|
生成json報(bào)告:
1
| goaccess -f access.log -a -d -o json > report.json
|
CSV:
1
| goaccess -f access.log -o csv > report.csv
|
由于nginx會(huì)自動(dòng)壓縮日志,一下命令可以直接分析壓縮后的日志:
1 2 3
| zcat access.log.*.gz | goaccess #或者 zcat -f access.log* | goaccess
|
支持各種管道:
1
| sed -n '/11\/Dec\/2014/,$ p' access.log | goaccess -a
|
想分析下百度/google對(duì)你網(wǎng)站爬了些啥內(nèi)容?Easy:
1
| grep -E "(google|baidu)"access.log | goaccess -a
|
嗯,辛勤的谷歌今天已經(jīng)來我的網(wǎng)站爬了4個(gè)頁面了。:)
有哪些不足?
只支持maxmind的地理數(shù)據(jù)庫。當(dāng)然maxmind也有免費(fèi)版本。
其他的缺點(diǎn)實(shí)在想不到了。因?yàn)橹С止艿溃砸磺卸寄敲捶奖?
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。