linux中nginx日誌分析利器GoAccess使用方法

來源:互聯網
上載者:User
面試的時候一定會被面到的問題是:給出web伺服器的訪問日誌,請寫一個指令碼來統計訪問前10的IP有哪些?訪問前10的請求有哪些?當你領略過goaccess之後,你就明白,這些問題,除了考驗你的指令碼背誦記憶能力以外,唯一的作用只有裝A或者裝C了。
對於nginx日誌分析,有很多工具,衡量好壞的標準大概就是三快:安裝快,解析快,上手快。滿足這三點的goaccess確實是居家必備良藥。
話說這個標題其實有點委屈GoAccess了,它是一個日誌分析工具,並不只是為nginx使用的。你也可以用它來分析apache,IIS的日誌,甚至你自己寫的web服務,當然前提是你需要定義好解析的日誌格式。誠如見到一個美女,你會一眼喜歡上它的幾個功能有:
1 解析速度快
2 使用簡單
3 能產生html,json,csv
安裝GoAccess
如果你是centos,使用yum:
1
yum install goaccess
如果你的yum找不到goaccess,就先安裝epel
1
2
3
wget http: //dl .fedoraproject.org /pub/epel/6/x86_64/epel-release-6-8 .noarch.rpm
wget http: //rpms .famillecollet.com /enterprise/remi-release-6 .rpm
sudo rpm -Uvh remi-release-6*.rpm epel-release-6*.rpm
GoAccess有兩種使用方法,一種是直接在控制台顯示和操作。
當你要立馬分析出今天早上10點到12點的IP訪問情況的時候,直接在控制台敲命令是最快的。
另外一種就是產生html檔案或者資料檔案。
如果你希望每天管理的伺服器叢集能給你發送一個昨天訪問日誌的情況,這個就是不二選擇了。
控制台使用GoAccess
goaccess的參數:
-f : 需要解析的記錄檔
-a --agent-list : 在host模組是不是能點擊IP出現這個IP的user-agentlist,就是出現如圖的功能。
-c --conf-dialog: 是否顯示log和format配置交談視窗。
就是下面的這個視窗
這個視窗有很多可以研究的。
首先,goaccess支援的日誌格式有哪些?
Common Log Format (CLF)
通用日誌格式,例子:
127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326
主機 使用者身份 作者 [日期] "要求方法 請求路徑 請求協議" 狀態代碼 位元組數
NCSA Commbined Log Format
這個是Common Log Format的擴充,例子:
125.125.125.125 - dsmith [10/Oct/1999:21:15:05 +0500] "GET /index.html HTTP/1.0" 200 1043 "http://www.ibm.com/" "Mozilla/4.05 [en] (WinNT; I)" "USERID=CustomerA;IMPID=01234"
主機 使用者身份 作者 [日期] "要求方法 請求路徑 請求協議" 狀態代碼 位元組數 referrer 用戶端代理 cookie
W3C
IIS 4.0和5.0是使用這種格式的,例子如下:
複製代碼
#Software: Microsoft Internet Information Server 4.0
#Version: 1.0
#Date: 1998-11-19 22:48:39
#Fields: date time c-ip cs-username s-ip cs-method cs-uri-stem cs-uri-query sc-status sc-bytes cs-bytes time-taken cs-version cs(User-Agent) cs(Cookie) cs(Referrer)
1998-11-19 22:48:39 206.175.82.5 - 208.201.133.173 GET /global/images/navlineboards.gif - 200 540 324 157 HTTP/1.0 Mozilla/4.0+(compatible;+MSIE+4.01;+Windows+95) USERID=CustomerA;+IMPID=01234 http://yourturn.rollingstone.com/webx?98@@webx1.html
複製代碼
CloudFront
AWS上的日誌格式
自訂格式
關於自訂格式所設定的參數說明在這裡
-d --with-output-resolver 在HTML輸出或者json輸出中開啟IP 解析
如果開啟了-d,goaccess就會使用GEOIP來進行IP解析。
-e --exclude-ip=
Host模組中不需要被統計的IP,比如可以將爬蟲的IP過濾掉
-h --help 協助文檔
-H --http-protocol 顯示的時候是否帶上HTTP協議資訊
-m --with-mouse 控制台開啟支援滑鼠點擊,帶上了m之後,雙擊滑鼠就相當於斷行符號的操作
-M --http-method 是否帶上HTTP方法資訊
-H和-M帶上之後效果為:
-o --output-format=csv|json 輸出為csv或者json形式
-p --conf-file=
指定設定檔,如果你有設定檔,設定檔中又恰巧設定了log-format和date,那麼你就不會被強制進入到format對話方塊了。如果你沒有設定的話,預設使用~/.goacessrc。
-q --no-query-string
忽略請求的參數部分
-r --no-term-resolver
在Host模組中是否進行IP的解析。加上-r是禁止IP解析。
--no-color
輸出無顏色標示
--real-os
展示真實的作業系統。在Operation System模組中,是否展示更詳細的作業系統資訊。
如圖:
下面說說的是控制台的鍵盤操作:
F1是開啟協助文檔
F5是重新整理當前視窗
q是退出當前視窗,直到退出程式
o是進入選擇條目
0-9 是選擇模組
tab和shift+tab是在前後模組之前切換
j和k是在模組內部條目切換
s是模組內部條目排序方式
ps:模組切換在右上方有當前模組的標示
使用GoAccess組建檔案
說起GoAccess最讓你爽的就是能產生html了,然後每天就可以看個統計報表。
下面的命令能產生html頁面:
1
goaccess -d -f web.log -a -p /home/yejianfeng/ .goaccessrc > test .html
產生的html的截圖如下:

也可以產生json:

也可以產生json:

goaccess -q -f web.log -a -p /home/yejianfeng/.goaccessrc -o json >test.json

和csv

goaccess -q -f web.log -a -p /home/yejianfeng/.goaccessrc -o csv>test.csv

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.