最近想用goaccess來分析下nginx日誌,但是苦於nginx日誌配置格式不是按照正常格式來的,完全是我們按照自己的需求來寫的,所以導致goaccess分析不了,需要自己重新定義下格式;但是網上雖然介紹goaccess的很多,但是大多都是就重避輕,將格式的自定義忽略掉,因此我就來把自定義這塊說下,希望能夠幫助到大家。
首先附上goaccess的官方使用說明及引數介紹,直接安裝官方文件來配置才最省事。
1.安裝
yum install glib2 glib2-devel geoip-devel ncurses-devel
**原始碼檔案goaccess-0.7.1.tar.gz並編譯安裝
cd /usr/local/src
tar -zxvf goaccess-0.7.1.tar.gz
cd /usr/local/src/goaccess-0.7.1
./configure –enalbe-geoip –enable-utf8
make && make install
2.下面我們就可以直接使用了
goaccess -f access.20141215-17.log -h -m -a
輸入命令後,會出現乙個提示框,如下:
我們只需要選定適合nginx日誌的第三行的格式,選定後「log format」會有相應的日誌格式出現,我們只需在此基礎上編輯或重新按照我們日誌的格式來重新定義即可;而日誌格式就直接用「date format」中定義的即可,下面我用我的nginx日誌格式為例來具體介紹下。
nginx日誌格式:
nginx日誌內容為:
我自定義的「log format」為:
%d:%^:%^:%^ %^ %^ %^ %^:%^ %m %r %^ %^ %h %h [%u] [%^] %r %^ %s %^ %^ %^ %^ %^ "%^"
其中 %^為忽略此欄位
%d為年月日
(1)%d為呼叫「date format」中設定的日期格式,10/dec/2014
%d:%^:%^:%^對應日誌中 10/dec/2014:16:54:59
%d:%^:%^:%^ %^對應日誌中 10/dec/2014:16:54:59 +0800,也就是配置檔案中的$time_local欄位
(2)所有的-用%^,表示忽略此欄位,下面就不再重複
$upstream_addr用%^,表示忽略此欄位
$server_addr:$server_port用%^:%^,表示忽略這兩個字段,注意保留配置檔案中的冒號「:」
(3) get 用%m,表示$request_method,也就是get,post,head等方法
(4) /1.html用%r,表示$uri 請求的內容
(5) $args用%^,表示忽略此欄位
(6)192.168.3.123 用%h,表示$remote_addr 客戶端ip位址
(7)http/1.0 用%h,表示$server_protocol
(8) [apachebench/2.3]用[%u] ,表示[$http_user_agent] ,注意保留配置檔案中的[ ]
(9)[$http_cookie],用[%^],表示忽略此欄位,注意保留配置檔案中的[ ]
(10)-用%r,表示$http_referer,雖然內容為空,但不能用%^忽略掉字段
(11)200用%s,表示$status,狀態碼為200
(12)後面的字段全都忽略,用%^,注意有幾個欄位就用幾個%^,注意保留配置檔案中的「 」
上面也就是$time_local欄位需要特別注意下,少一段欄位就可能導致goaccess分析出的日誌有很大區別,例如我少字段後導致無法分析檔案和分析出的檔案中「failed requests 233390」 和總共的請求數差不多,影響我們分析。
設定完畢後,我們就可以回車,讓goaccess正常工作了:
快捷鍵說明:
數字1-9依次對應1-9個模組
0表示第10個模組
shift+1 表示第11個模組
選定模組後,「o」鍵可以進入模組,檢視詳細內容
j和k鍵是在進入模組後,上下選擇具體的行
q鍵退出當前模組和goaccess
好了,就讓我們來根據自己的日誌格式來檢視吧。如有不清楚的引數,直接檢視官網文件說明。
GoAccess 分析nginx 日誌
1 安裝goaccess需要一些系統支援庫 yum y install glib2 glib2 devel geoip devel ncurses devel zlib zlib devel由於geo ip庫沒有得到軟體作者的更新,分析的ip地理位置不準確,所以需要安裝外接ip庫分析ip的城市位置 ...
GoAccess分析Nginx日誌
goaccess是乙個基於終端的快速日誌分析器。其核心思想是實時快速分析和檢視web伺服器統計資訊。1.安裝簡單 2.操作容易 3.介面酷炫 安裝分為yum安裝與原始碼安裝,大家可以自行選擇,我這裡選擇使用原始碼的方式安裝 1.安裝goaccess root bgx wget root bgx ta...
使用GoAccess分析Nginx日誌
wget tar xzvf goaccess 0.9.6.tar.gz cd goaccess 0.9.6 configure prefix usr local goaccess enable geoip enable utf8 make make install 安裝缺失的庫 yum instal...