Linux下GoAccess的安裝與全部用法
GoAccess用戶文檔
一、 GoAccess概述
1.1 GoAccess概述
goaccess是一個實時的web日誌分析器,以及交互式查看器,在類Unix系統的終端(terminal)上運行,是一個基於GPL的自由軟件。為需要可視化服務器報告的系統管理員提供快速而重要的HTTP統計信息。首先它會解析web日誌文件,從被解析文件中收集數據,然後展示在控制臺(console)或者X終端上。收集到的信息會在一個可視化/交互式的窗口中展示給用戶,包括:
一般統計
該面板提供了幾個指標的摘要,其中一些是有效和無效請求的數量,分析數據集所用的時間,唯一的訪問者,請求的文件,靜態文件(CSS,ICO,JPG等)HTTP引用,404,解析的日誌文件的大小和帶寬消耗。
唯一身份訪問者
此面板顯示匹配,獨特訪問者和每日日期的累積帶寬等指標。包含相同IP,相同日期和相同用戶代理的HTTP請求被認為是唯一的訪問者。默認情況下,它包括Web抓取器/蜘蛛。 可選地,可以使用-date-spec = hr將時間特性設置為小時級別,這將顯示諸如05 / Jun / 2016:16之類的日期。如果您希望在小時級別跟蹤您的每日流量,這是非常好的。
請求的文件
此面板顯示Web服務器上最高請求的文件。它顯示命中,唯一訪問者和百分比,以及累積帶寬,協議和使用的請求方法。
請求的靜態文件
列出了最常用靜態文件,如:JPG,CSS,SWF,JS,GIF,和PNG文件類型,使用相同的指標作為最後的面板一起。附加的靜態文件可以添加到配置文件中。
404或Not Found
顯示與先前請求面板相同的指標,但是其數據包含服務器上未找到的所有頁面,或通常稱為404狀態代碼。
主機
該面板有關主機本身的詳細信息。這是偉大的發現積極的爬蟲和識別誰在吃你的帶寬。
擴展面板可以顯示更多的信息,如主機的反向DNS查詢結果,原籍國和城市。如果-a啟用參數,可以通過選擇所需的IP地址,然後按ENTER鍵顯示用戶代理列表。
操作系統
該面板將報告主機在服務器上使用的操作系統。它試圖提供每個操作系統的最具體的版本。
瀏覽器
此面板將報告主機在服務器上使用的瀏覽器。它試圖提供每個瀏覽器的最具體的版本。
訪問次數
此面板將顯示小時報告。此選項顯示24個數據點,每天每個小時一個。
可選地,小時特異性可以使用-hour-spec = min設置為十分之一秒,這將顯示小時為16:4如果要在服務器上發現流量峰值,這是非常好的。
虛擬主機
此面板將顯示從訪問日誌解析的所有不同的虛擬主機。如果在日誌格式字符串中使用%v,則會顯示此面板。
引薦來源網址
如果有問題的主機通過其他資源訪問了該網站,或者是從另一個主機訪問了該網站,則該引用的URL將在此面板中提供。請參閱`--ignore-panel`配置文件以啟用它。 (默認情況下禁用)
引薦來源站點
此面板將僅顯示主機部分,但不顯示整個URL。請求來自的URL。
關鍵短語
它報告了谷歌搜索,Google緩存和谷歌翻譯使用的關鍵短語,導致您的網絡服務器。目前,它只支持通過HTTP的Google搜索查詢。請參閱`--ignore-panel`配置文件以啟用它。 (默認情況下禁用)
地理位置
確定地理位置在哪裏。統計數據按大陸和國家分列。它需要使用GeoLocation支持進行編譯。
HTTP狀態代碼
HTTP請求的數字狀態代碼的值。
遠程用戶(HTTP認證)
這是通過HTTP認證確定請求文檔的人的用戶標識。如果文檔沒有密碼保護,這部分將是“ - ”,就像上一個。除非%e在日誌格式變量中給出,否則此面板不啟用。
二、安裝GoAccess
參考官方安裝步驟:https://goaccess.io/download
2.1 依賴安裝
GoAccess在使用源碼安裝時,依賴下列組件。
2.1.1、為方便最終日誌統計時顯示IP地理位置,需要安裝依賴項GeoIP-devel:
執行命令:yum install GeoIP-devel.x86_64
2.1.2 安裝ncurses-devel開發庫:
執行命令:yum install ncurses-devel
2.1.3 安裝tokyocabinet-devel開發庫:
執行命令:yum install tokyocabinet-devel
2.1.4 安裝openssl-devel開發庫:
執行命令:yum install openssl-devel
2.2 下載並安裝GoAccess:
通過cd命令切換到/usr/local/src目錄下,然後使用root權限執行命令:
wget http://tar.goaccess.io/goaccess-1.2.tar.gz
下載之後,執行解壓命令:
tar -zvxf ./goaccess-1.2.tar.gz
然後執行 cd ./goaccess-1.2進入目錄。
執行命令:./configure --enable-utf8 --enable-geoip=legacy
執行命令:make
執行命令:make install
安裝完後,可以執行命令:ln /usr/local/bin/goaccess /usr/bin/
安裝完成後,相關目錄:
可執行程序:/usr/local/bin/goaccess
配置文件:/usr/local/etc/goaccess.conf
其它文件:/usr/local/share/doc/goaccess
手冊:/usr/local/share/man/man1
三、自定議日誌/日期格式
3.1使用方式
3.1.1最簡單且最快速的用法:
# goaccess access.log
3.1.2生成一個HTML報告:
# goaccess access.log -a -o report.html
3.1.3生成一個JSON報告:
# goaccess access.log -a -d -o report.json
3.1.4生成一個CSV報告:
# goaccess access.log --no-csv-summary -o report.csv
3.1.5如果我們想為GoAccess增加更多的靈活性,可以使用一系列的管道。例如:
另一個有用的管道是根據日期過濾web日誌。
如下命令將得到日誌文件中2017年07月31日的所有HTTP請求:
# sed -n ‘/31\/Jul\/2017/,$ p‘ access.log | goaccess -a
如果想僅解析從日期a到日期b的一個特定時限的日誌,則可以:
# sed -n ‘/30\/Jul\/2017,/31\/Jul\/2017/ p‘ access.log | goaccess -a
註意這一命令依賴於sed的速度,可能需要更長的解析時間。
另外,值得指出,如果想以更低的進程調度優先級運行GoAccess,可以這樣執行:
# nice -n 19 goaccess -f access.log -a
3.1.6實時HTML輸出
# goaccess access.log -o /usr/share/nginx/html/site/report.html --real-time-html
或者,對於Httpd:
# goaccess access.log -o /usr/www/html/report.html --real-time-html
默認情況下,GoAccess監聽端口是7890,您可以通過—port=xxx修改端口。
# goaccess access.log -o report.html --real-time-html --port=xxx
3.2 交互式菜單
- F1 主幫助頁面
- F5 重繪主窗口
- q 退出程序或者當前{詳細視圖}(窗口)
- 打開當前激活模塊的詳細視圖
- c 設置或改變配色方案
- TAB 向前叠代模塊。從當前激活模塊開始。
- SHIFT + TAB 向後叠代模塊。從當前激活模塊開始。
- RIGHT ARROW 打開當前激活模塊的詳細視圖
- 0-9 激活模塊,這樣用戶就可以使用^o^或^RIGHT ARROW^打開{詳細視圖}
- SHIFT + 0-9 激活超過10的模塊
- s 根據日期進行獨立訪客排序。僅在獨立訪客模塊(1)有效。
- S 根據點擊數進行獨立訪客排序。僅在獨立訪客模塊(1)有效。
- / 向前在任意{詳細視圖}窗口搜索輸入模式(pattern)。
- n 在任意{詳細視圖}窗口中找到下一次出現的位置。
- t 跳到第一個條目或屏幕頂端
- b 跳到最後一個條目或者屏幕底部
3.3 日期格式(date_format)
空格之後的date_format變量指定了包含常規字符和特殊格式說明符的任意組合。這些字符都以百分號(%)開始。詳見:man strftime
- %a 星期幾的簡寫形式
- %A 星期幾的全稱
- %b 月份的簡寫形式
- %B 月份的全稱
- %c 日期和時間
- %d 月份中的日期,0-31
- %H 小時,00-23
- %I 12進制小時鐘點,01-12
- %j 年份中的日期,001-366
- %m 年份中的月份,01-12
- %M 分,00-59
- %p 上午或下午
- %S 秒,00-60
- %u 星期幾,1-7
- %w 星期幾,0-6
- %x 當地格式的日期
- %X 當地格式的時間
- %y 年份中的最後兩位數,00-99
- %Y 年
- %Z 地理時區名稱
3.4 日誌格式(log_format)
日誌格式(log_format)
空格之後的date_format變量指定了日誌格式字符串。
- %x 與時間格式和日期格式變量匹配的日期和時間字段。當使用時間戳而不是日期和時間在兩個單獨的變量中時使用這個。
- %t 時間字段匹配time_format變量。
- %d 匹配date_format變量的日期域。
- %D 服務請求所用的時間,以微秒為單位。
- %e 這是通過HTTP認證確定請求文檔的人的用戶ID。
- %h 主機(客戶端IP地址,IPv4或IPv6)。
- %r 來自客戶端的請求行。這需要圍繞請求的特定分隔符(單引號,雙引號等)可解析。否則,請使用特殊格式說明符(如%m,%U,%q和%H)的組合來解析各個字段。
- %m 請求方式。
- %U請求的URL路徑。
- %q查詢字符串。
- %H請求協議。
- %s 服務器返回給客戶端的狀態碼。
- %b 返回給客戶端的對象大小。
- %R RefererHTTP請求頭。
- %u 用戶代理HTTP請求頭。
- %^ 忽略該域。
- %T 服務請求所需的時間,以秒為單位,以毫秒為單位。
- %L 服務請求所需的時間,以毫秒為單位,為十進制數。
- %~ 向前移動日誌字符串,直到找到一個非空格(!isspace)字符
- ~h X-Forwarded-For(XFF)字段中的主機(客戶端IP地址,IPv4或IPv6)。
Linux下GoAccess的安裝與全部用法