分析日誌文件對於 Linux 管理員來講是一件很是使人頭疼的事情,由於它記錄了不少東西。大多數新手和初級管理員都不知道如何分析。若是你在分析日誌方面擁有不少知識,那麼你就成了 *NIX 系統高手。html
Linux 中有許多工具能夠輕鬆分析日誌。GoAccess 是容許用戶輕鬆分析 Web 服務器日誌的工具之一。咱們將在本文中詳細討論 GoAccess 工具。linux
GoAccess 是一個實時 Web 日誌分析器和交互式查看器,能夠在 *nix 系統中的終端運行或經過瀏覽器訪問。git
GoAccess 須要的依賴極少,它是用 C 語言編寫的,只須要 ncurses。github
它支持 Apache、Nginx 和 Lighttpd 日誌。它爲須要動態可視化服務器報告的系統管理員即時提供了快速且有價值的 HTTP 統計信息。web
GoAccess 能夠解析指定的 Web 日誌文件並將數據輸出到 X 終端和瀏覽器。apache
GoAccess 被設計成一個基於終端的快速日誌分析器。其核心思想是實時快速分析和查看 Web 服務器統計信息,而無需使用瀏覽器。ubuntu
默認輸出是在終端輸出,它也可以生成完整的、自包含的實時 HTML 報告,以及 JSON 和 CSV 報告。centos
GoAccess 支持任何自定義日誌格式,幷包含如下預約義日誌格式選項:Apache/Nginx 中的組合日誌格式 XLF/ELF,Apache 中的通用日誌格式 CLF,但不限於此。瀏覽器
Server
),它提供了一個面板,可顯示哪些虛擬主機正在消耗大部分 Web 服務器資源。我建議用戶在包管理器的幫助下從發行版官方的存儲庫安裝 GoAccess。它在大多數發行版官方存儲庫中均可用。bash
咱們知道,咱們在標準發行方式的發行版中獲得的是過期的軟件包,而滾動發行方式的發行版老是包含最新的軟件包。
若是你使用標準發行方式的發行版運行操做系統,我建議你檢查替代選項,如 PPA 或 GoAccess 官方維護者存儲庫等,以獲取最新的軟件包。
對於 Debian / Ubuntu 系統,使用 APT-GET 命令或 APT 命令在你的系統上安裝 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 系統,使用 YUM 包管理器在你的系統上安裝 GoAccess。
# yum install goaccess
複製代碼
對於 Fedora 系統,使用 DNF 包管理器在你的系統上安裝 GoAccess。
# dnf install goaccess
複製代碼
對於基於 ArchLinux / Manjaro 的系統,使用 Pacman 包管理器在你的系統上安裝 GoAccess。
# pacman -S goaccess
複製代碼
對於 openSUSE Leap 系統,使用Zypper 包管理器在你的系統上安裝 GoAccess。
# zypper install goaccess
# zypper ar -f obs://server:http
# zypper ref && zypper in goaccess
複製代碼
成功安裝 GoAccess 後。只需輸入 goaccess
命令,而後輸入 Web 服務器日誌位置便可查看。
# goaccess [options] /path/to/Web Server/access.log
# goaccess /var/log/apache/2daygeek_access.log
複製代碼
執行上述命令時,它會要求您選擇日誌格式配置。
我用 Apache 訪問日誌對此進行了測試。Apache 日誌被分爲十五個部分。詳情以下。主要部分顯示了這十五個部分的摘要。
如下屏幕截圖包括四個部分,例如惟一身份訪問者、請求的文件、靜態請求、未找到的網址。
如下屏幕截圖包括四個部分,例如訪客主機名和 IP、操做系統、瀏覽器、時間分佈。
如下屏幕截圖包括四個部分,例如來源網址、來源網站,Google 的搜索引擎結果、HTTP狀態代碼。
若是要生成 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 也容許你訪問和分析實時日誌並進行過濾和解析。
# tail -f /var/log/apache/2daygeek_access.log | goaccess -
複製代碼
更多細節請參考其 man 手冊頁或幫助。
# man goaccess
或
# goaccess --help
複製代碼
via: www.2daygeek.com/goaccess-a-…
做者:Vinoth Kumar 選題:lujun9972 譯者:wxy 校對:wxy