GoAccess - 实时 Apache 和 Nginx 日志分析工具

任何系统管理员的主要任务之一都是查看和分析日志文件。来自 Apache 和 Nginx 的 Web 服务器日志文件会随着时间的推移而积累起来,检查它们可是一项冗长而耗时的工作。值得庆幸的是,GoAccess 可以减轻所有这些压力,并使您能够无缝地监视和分析 web 服务器日志文件。

GoAccess 是一个基于终端的实时 Web 日志分析仪。用 C 语言编写,它是快速,互动的,并以优雅而直观的方式显示日志。它提供了各种 Web 日志文件的支持,包括 Apache,Nginx,Caddy,Amazon S3 和 CloudFront,仅提及几个。它可以以 HTML 格式,JSON 渲染结果,还可以生成 CSV 报告。

在本指南中,我们将关注如何安装 GoAccess 并使用它来分析 Apache 和 Nginx Web 服务器的实时日志。

GoAccess 允许您查看以下日志指标:

  • Daily unique visitors
  • Requested files
  • Static requests ( jpg, pdf, png, mp4, avi, etc)
  • Not found (404) requests
  • Visitors’ hostname and IP details
  • Visitor’s Operating system & browser details
  • Geo Location

如何安装 GoAccess

在 Linux 系统上安装 GoAccess 主要有两种方法。可以从源代码构建,也可以使用发行版的包管理器。让我们看看如何同时做到这两件事。

在各种发行版上安装 GoAccess

在 Ubuntu / Debian 上安装

$ sudo apt install -y goaccess

在 RHEL / CentOS 上安装

$ sudo yum install -y goaccess
or$ sudo dnf install -y goaccess

在 Fedora 上安装

$ sudo dnf install goaccess -y

在 Arch Linux 上安装

$ sudo pacman -S goaccess

对于其他发行版,例如 opensuse 或者 freebsd,请到官方下载 GoAccess download link

从源码安装 GoAccess

要从源代码安装,首先,使用 wget 命令下载 GoAccess tar ball 文件

$ wget https://tar.goaccess.io/goaccess-1.4.6.tar.gz

使用以下 tar 命令提取 tarball 文件

$ tar -xvf goaccess-1.4.6.tar.gz

然后,转到该目录并从源代码进行构建,如下所示

$ cd goaccess-1.4.6/
$ ./configure --enable-utf8 --enable-geoip=mmdb
$ make
# make install

验证安装

要确认 GoAccess 已经安装,运行如下命令

$ goaccess

这将显示命令用法和命令选项,如下所示

goacces-command-output-linux

您还可以查看 GoAccess 的版本,如下所示

$ goaccess --version

goaccess-version-check-linux

监视实时 Apache 和 Nginx 日志

安装 GoAccess 后,下一步就是监控 web 日志文件。在本例中,我们安装了 Apache web 服务器,我们将监视 access.log 文件,以查看客户机如何从浏览器与 web 服务器交互的统计数据。

-f 选项允许您在命令行上实时查看日志

$ goaccess -f /var/log/apache2/access.log --log-format=COMBINED

Goaccess-Apache2-logs-Combined

Web 服务器的日志统计将打印在终端上,包括总请求、有效请求、有效访问者、唯一文件等等。

Apache2-Logs-Audit-Linux-Terminal

向下滚动以查看其他 Web 服务器统计信息,例如404请求,访问者主机名和 IP 地址。

Apache2-Access-logs-Linux

在这里,我们有关于操作系统和 web 浏览器的统计数据,访问者从这些浏览器访问 web 服务器。

Apache2-WebServer-Statistics-Logs-Linux

要监视 Nginx 日志,使用与监视 Apache 日志相同的方法。只需切换到 root 用户并运行下面的命令。

# goaccess -f /var/log/nginx/access.log --log-format=COMBINED

Goaccess-nginx-access-log-combined-linux

这里,我们正在监视 Nginx web 服务器的 access.log 文件

Nginx-WebServer-Realtime-Logs

通过 web 仪表板查看日志输出

您还可以通过重定向 html 文件中的输出,在优雅而直观的仪表板上呈现 web 服务器日志。这里我们将输出文件指定为 reports.html

$ goaccess -f /var/log/apache2/access.log --log-format=COMBINED > reports.html

接下来,打开 web 浏览器并浏览文件的位置,它将立即在漂亮的仪表板中显示日志,如图所示。

Goaccess-webserver-reports-broswer

文章总结

GoAccess 是一个有用的工具,它可以让你了解网站服务器与访问者之间的互动。它可以让你获得关于访问者与你的网站交互的大量详细信息,这对获得更广泛的受众和改善用户体验是有用的。

我的开源项目

酷瓜云课堂-开源网校系统

猜你喜欢

转载自blog.csdn.net/xiaochong0302/article/details/128590844