1. 程式人生 > >Linux下GoAccess的安裝與全部用法

Linux下GoAccess的安裝與全部用法

3.4 百分號 最終 單獨 一個 用戶id 概述 src 月份

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的安裝與全部用法