nginx日志分析工具goaccess
官網(wǎng):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 日志格式。
預(yù)定義的選項包括:通用日志格式,聯(lián)合日志格式,包含虛擬主機,W3C 格式以及亞馬遜 CloudFront(分布式下載)。
GoAccess 允許任意的自定義格式字符串。
有兩種方法配置日志格式。最簡單的方式是運行 GoAccess 時使用 -c 顯示一個配置窗口。但是這種方式不是永久有效的,因此你需要在配置文件中設(shè)定格式。
配置文件位于:%sysconfdir%/goaccess.conf 或者 ~/.goaccessrc
注意: %sysconfdir% 可能是 /etc/, /usr/etc/ 或者 /usr/local/etc/
time-format 參數(shù) time-format 后跟隨一個空格符,指定日志的時間格式,包含普通字符與特殊格式說明符的任意組合。他們都由百分號 (%)開始。參考 `man strftime`。 %T 或者 %H:%M:%S.
注意: 如果給定的時間戳以微秒計算,則必須在 time-format 中使用參數(shù) %f 。
date-format 參數(shù) date-format 后跟隨一個空格符,指定日志的日期格式,包含普通字符與特殊格式說明符的任意組合。他們都由百分號 (%)開始。參考 `man strftime`。
注意: 如果給定的時間戳以微秒計算,則必須在 time-format 中使用參數(shù) %f 。
log-format 參數(shù) log-format 后跟隨一個空格符或者制表分隔符(\t),用于指定日志字符串格式。
特殊格式說明符
%x匹配 time-format 和 date-format 變量的日期和時間字段。用于使用時間戳來代替日期和時間兩個獨立變量的場景。%t匹配 time-format 變量的時間字段。%d匹配 date-format 變量的日期字段。%v根據(jù) canonical 名稱設(shè)定的服務(wù)器名稱(服務(wù)區(qū)或者虛擬主機)。%e請求文檔時由 HTTP 驗證決定的用戶 ID。%h主機(客戶端IP地址,IPv4 或者 IPv6)。%r客戶端請求的行數(shù)。這些請求使用分隔符(單引號,雙引號)引用的部分可以被解析。否則,需要使用由特殊格式說明符(例如:%m,%U,%q和%H)組合格式去解析獨立的字段。%m請求的方法。- 注意: 既可以使用
%r獲取完整的請求,也可以使用%m,%U,%qand%H去組合你的請求,但是不能同時使用。
- 注意: 既可以使用
%U請求的 URL。%q查詢字符串。- 注意: 如果查詢字符串在
%U中,則無需使用%q。但是,如果 URL 路徑中沒有包含任何查詢字符串,則你可以使用%q查詢字符串將附加在請求后面。
- 注意: 如果查詢字符串在
%H請求協(xié)議。%s服務(wù)器回傳客戶端的狀態(tài)碼。%b回傳客戶端的對象的大小。%RHTTP 請求的 "Referer" 值。%uHTTP 請求的 "UserAgent" 值。%D處理請求的時間消耗,使用微秒計算。%T處理請求的時間消耗,使用帶秒和毫秒計算。%L處理請求的時間消耗,使用十進制數(shù)表示的毫秒計算。%^忽略此字段。%~繼續(xù)解析日志字符串直到找到一個非空字符(!isspace)。~h在 X-Forwarded-For (XFF) 字段中的主機(客戶端 IP 地址,IPv4 或者 IPv6)。
注意
針對 XFF, GoAccess 使用了一個特殊符號,即由一個波浪號+主機說明符構(gòu)成,然后緊跟由大括號封裝起來的 XFF 限定字段(例:~h{,"})。
舉例如下,~h{," }用于解析"11.25.11.53, 17.68.33.17"字段由一對雙引號,一個逗號和一個空格限定。注意
為了得到平均,累計,最大處理時間,將需要開始在 Web 服務(wù)器中記錄響應(yīng)次數(shù)。在 Nginx 中可以添加$request_time到日志格式中,或者%D在 Apache 中。
實時 HTML 輸出
GoAccess 有能力在 HTML 報告中展示實時數(shù)據(jù)。您甚至可以通過電子郵件發(fā)送 HTML 報告,因為它是由沒有外部文件依賴的單個文件組成,是不是很酷!
生成實時 HTML 報告的過程和生成靜態(tài)報告的過程非常相似。實時報告僅僅需要使用參數(shù) --real-time-html 。
# goaccess access.log -o /usr/share/nginx/html/site/report.html --real-time-html
GoAccess 默認使用生成報告的主機名。您也可以指定 URL 用于客戶端瀏覽器訪問。參考 FAQ 上更詳細的示例。
# goaccess access.log -o report.html --real-time-html --ws-url=goaccess.io
GoAccess 默認偵聽端口 7890,如下使用其他端口可以這樣操作(確保端口已經(jīng)打開):
# goaccess access.log -o report.html --real-time-html --port=9870
綁定 WebSocket 服務(wù)器到不同于 0.0.0.0 的另外一個地址,可以這樣操作:
# goaccess access.log -o report.html --real-time-html --addr=127.0.0.1
注意: 如果需要在加密連接上輸出實時數(shù)據(jù),則需要使用 --ssl-cert=<cert.crt> 和 --ssl-key=<priv.key>
本文來自博客園,作者:孫龍-程序員,轉(zhuǎn)載請注明原文鏈接:http://www.rzrgm.cn/sunlong88/p/18391548
浙公網(wǎng)安備 33010602011771號