GoAccess:一個實時的Web日志分析器及交互式查看器
分析日志文件對于 Linux 管理員來說是一件非常令人頭疼的事情,因為它記錄了很多東西。大多數(shù)新手和初級管理員都不知道如何分析。如果你在分析日志方面擁有很多知識,那么你就成了 *NIX 系統(tǒng)高手。
Linux 中有許多工具可以輕松分析日志。GoAccess 是允許用戶輕松分析 Web 服務(wù)器日志的工具之一。我們將在本文中詳細(xì)討論 GoAccess 工具。
GoAccess
GoAccess 是一個實時 Web 日志分析器和交互式查看器,可以在 *nix 系統(tǒng)中的終端運行或通過瀏覽器訪問。
GoAccess 需要的依賴極少,它是用 C 語言編寫的,只需要 ncurses。
它支持 Apache、Nginx 和 Lighttpd 日志。它為需要動態(tài)可視化服務(wù)器報告的系統(tǒng)管理員即時提供了快速且有價值的 HTTP 統(tǒng)計信息。
GoAccess 可以解析指定的 Web 日志文件并將數(shù)據(jù)輸出到 X 終端和瀏覽器。
GoAccess 被設(shè)計成一個基于終端的快速日志分析器。其核心思想是實時快速分析和查看 Web 服務(wù)器統(tǒng)計信息,而無需使用瀏覽器。
默認(rèn)輸出是在終端輸出,它也能夠生成完整的、自包含的實時 HTML 報告,以及 JSON 和 CSV 報告。
GoAccess 支持任何自定義日志格式,并包含以下預(yù)定義日志格式選項:Apache/Nginx 中的組合日志格式 XLF/ELF,Apache 中的通用日志格式 CLF,但不限于此。
GoAccess 功能
- 完全實時:所有指標(biāo)在終端上每 200 毫秒更新一次,在 HTML 輸出上每秒更新一次。
- 跟蹤應(yīng)用程序響應(yīng)時間:跟蹤服務(wù)請求所需的時間。如果你想跟蹤減慢了網(wǎng)站速度的網(wǎng)頁,則非常有用。
- 訪問者:按小時或日期確定最慢運行的請求的點擊量、訪問者數(shù)、帶寬數(shù)和指標(biāo)。
- 按虛擬主機的度量標(biāo)準(zhǔn):如果有多個虛擬主機(
Server
),它提供了一個面板,可顯示哪些虛擬主機正在消耗大部分 Web 服務(wù)器資源。
如何安裝 GoAccess?
我建議用戶在包管理器的幫助下從發(fā)行版官方的存儲庫安裝 GoAccess。它在大多數(shù)發(fā)行版官方存儲庫中都可用。
我們知道,我們在標(biāo)準(zhǔn)發(fā)行方式的發(fā)行版中得到的是過時的軟件包,而滾動發(fā)行方式的發(fā)行版總是包含最新的軟件包。
如果你使用標(biāo)準(zhǔn)發(fā)行方式的發(fā)行版運行操作系統(tǒng),我建議你檢查替代選項,如 PPA 或 GoAccess 官方維護(hù)者存儲庫等,以獲取最新的軟件包。
對于 Debian / Ubuntu 系統(tǒng),使用 APT-GET 命令或 APT 命令在你的系統(tǒng)上安裝 GoAccess。
# apt install goaccess
要獲取最新的 GoAccess 包,請使用以下 GoAccess 官方存儲庫。
$ echo "deb https://deb.goaccess.io/ $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/goaccess.list
$ wget -O - https://deb.goaccess.io/gnugpg.key | sudo apt-key add -
$ sudo apt-get update
$ sudo apt-get install goaccess
對于 RHEL / CentOS 系統(tǒng),使用 YUM 包管理器在你的系統(tǒng)上安裝 GoAccess。
# yum install goaccess
對于 Fedora 系統(tǒng),使用 DNF 包管理器在你的系統(tǒng)上安裝 GoAccess。
# dnf install goaccess
對于基于 ArchLinux / Manjaro 的系統(tǒng),使用 Pacman 包管理器在你的系統(tǒng)上安裝 GoAccess。
# pacman -S goaccess
對于 openSUSE Leap 系統(tǒng),使用Zypper 包管理器在你的系統(tǒng)上安裝 GoAccess。
# zypper install goaccess
# zypper ar -f obs://server:http
# zypper ref && zypper in goaccess
如何使用 GoAccess?
成功安裝 GoAccess 后。只需輸入 goaccess
命令,然后輸入 Web 服務(wù)器日志位置即可查看。
# goaccess [options] /path/to/Web Server/access.log
# goaccess /var/log/apache/2daygeek_access.log
執(zhí)行上述命令時,它會要求您選擇日志格式配置。
我用 Apache 訪問日志對此進(jìn)行了測試。Apache 日志被分為十五個部分。詳情如下。主要部分顯示了這十五個部分的摘要。
以下屏幕截圖包括四個部分,例如唯一身份訪問者、請求的文件、靜態(tài)請求、未找到的網(wǎng)址。
以下屏幕截圖包括四個部分,例如訪客主機名和 IP、操作系統(tǒng)、瀏覽器、時間分布。
以下屏幕截圖包括四個部分,例如來源網(wǎng)址、來源網(wǎng)站,Google 的搜索引擎結(jié)果、HTTP狀態(tài)代碼。
如果要生成 html 報告,請使用以下命令。最初我在嘗試生成 html 報告時遇到錯誤。
# goaccess 2daygeek_access.log -a > report.html
GoAccess - version 1.3 - Nov 23 2018 11:28:19
Config file: No config file used
Fatal error has occurred
Error occurred at: src/parser.c - parse_log - 2764
No time format was found on your conf file.Parsing... [0] [0/s]
它說“你的 conf 文件沒有找到時間格式”。要解決此問題,請為其添加 “COMBINED” 日志格式選項。
# goaccess -f 2daygeek_access.log --log-format=COMBINED -o 2daygeek.html
Parsing...[0,165] [50,165/s]
GoAccess 也允許你訪問和分析實時日志并進(jìn)行過濾和解析。
# tail -f /var/log/apache/2daygeek_access.log | goaccess -
更多細(xì)節(jié)請參考其 man 手冊頁或幫助。
# man goaccess
或
# goaccess --help