nginx日誌分析工具goaccess
官網:https://www.goaccess.cc/
使用手冊:https://www.goaccess.cc/?mod=man
wget http://tar.goaccess.io/goaccess-1.2.tar.gz tar xf goaccess-1.2.tar.gz cd goaccess-1.2/ ./configure --enable-utf8 --enable-geoip=legacy make make install
報錯:
文件地址:https://www.goaccess.cc/?mod=man
自定義 日誌/日期 格式
GoAccess 可以解析虛擬的任意 Web 日誌格式。
預定義的選項包括:通用日誌格式,聯合日誌格式,包含虛擬主機,W3C 格式以及亞馬遜 CloudFront(分散式下載)。
GoAccess 允許任意的自定義格式字串。
有兩種方法配置日誌格式。最簡單的方式是執行 GoAccess 時使用 -c
顯示一個配置視窗。但是這種方式不是永久有效的,因此你需要在配置檔案中設定格式。
配置檔案位於:%sysconfdir%/goaccess.conf
或者 ~/.goaccessrc
注意: %sysconfdir%
可能是 /etc/
, /usr/etc/
或者 /usr/local/etc/
time-format 引數 time-format 後跟隨一個空格符,指定日誌的時間格式,包含普通字元與特殊格式說明符的任意組合。他們都由百分號 (%)開始。參考 `man strftime`。 %T
或者 %H:%M:%S
.
注意: 如果給定的時間戳以微秒計算,則必須在 time-format 中使用引數 %f
。
date-format 引數 date-format 後跟隨一個空格符,指定日誌的日期格式,包含普通字元與特殊格式說明符的任意組合。他們都由百分號 (%)開始。參考 `man strftime`。
注意: 如果給定的時間戳以微秒計算,則必須在 time-format 中使用引數 %f
。
log-format 引數 log-format 後跟隨一個空格符或者製表分隔符(\t
),用於指定日誌字串格式。
特殊格式說明符
%x
匹配 time-format 和 date-format 變數的日期和時間欄位。用於使用時間戳來代替日期和時間兩個獨立變數的場景。%t
匹配 time-format 變數的時間欄位。%d
匹配 date-format 變數的日期欄位。%v
根據 canonical 名稱設定的伺服器名稱(服務區或者虛擬主機)。%e
請求文件時由 HTTP 驗證決定的使用者 ID。%h
主機(客戶端IP地址,IPv4 或者 IPv6)。%r
客戶端請求的行數。這些請求使用分隔符(單引號,雙引號)引用的部分可以被解析。否則,需要使用由特殊格式說明符(例如:%m
,%U
,%q
和%H
)組合格式去解析獨立的欄位。%m
請求的方法。- 注意: 既可以使用
%r
獲取完整的請求,也可以使用%m
,%U
,%q
and%H
去組合你的請求,但是不能同時使用。
- 注意: 既可以使用
%U
請求的 URL。%q
查詢字串。- 注意: 如果查詢字串在
%U
中,則無需使用%q
。但是,如果 URL 路徑中沒有包含任何查詢字串,則你可以使用%q
查詢字串將附加在請求後面。
- 注意: 如果查詢字串在
%H
請求協議。%s
伺服器回傳客戶端的狀態碼。%b
回傳客戶端的物件的大小。%R
HTTP 請求的 "Referer" 值。%u
HTTP 請求的 "UserAgent" 值。%D
處理請求的時間消耗,使用微秒計算。%T
處理請求的時間消耗,使用帶秒和毫秒計算。%L
處理請求的時間消耗,使用十進位制數表示的毫秒計算。%^
忽略此欄位。%~
繼續解析日誌字串直到找到一個非空字元(!isspace)。~h
在 X-Forwarded-For (XFF) 欄位中的主機(客戶端 IP 地址,IPv4 或者 IPv6)。
注意
針對 XFF, GoAccess 使用了一個特殊符號,即由一個波浪號+主機說明符構成,然後緊跟由大括號封裝起來的 XFF 限定欄位(例:~h{,"}
)。
舉例如下,~h{," }
用於解析"11.25.11.53, 17.68.33.17"
欄位由一對雙引號,一個逗號和一個空格限定。注意
為了得到平均,累計,最大處理時間,將需要開始在 Web 伺服器中記錄響應次數。在 Nginx 中可以新增$request_time
到日誌格式中,或者%D
在 Apache 中。