GoAccess 是一个交互式实时 Web 服务器日志分析器程序,可快速分析和查看 Web 服务器日志。它以开源形式出现,并在 Unix/Linux 操作系统中作为命令行运行。它为 Linux 管理员提供了简短而有益的 HTTP(Web 服务器)统计报告。它还负责 Apache 和 Ngnix Web 服务器日志格式。
GoAccess 被设计为一种基于终端的快速日志分析器。它的核心思想是 快速分析和查看 Web 服务器实时统计信息,无需使用浏览器 (如果您想通过 SSH 快速分析访问日志,或者您只是喜欢在终端中工作,那就太好了)。
虽然终端输出是默认输出,但它能够生成完整的、独立的实时 HTML 报告(非常适合分析、监控和数据可视化),以及 JSON 和 CSV 报告。
GoAccess 功能
它具有以下特点。
- 快速、实时、毫秒/秒的更新,用 C 语言编写
- 仅 ncurses 作为依赖项
- 几乎所有 Web 日志格式(Apache、Nginx、Amazon S3、Elastic Load Balancing、CloudFront、Caddy 等)
- 只需设置日志格式并针对日志运行它
- 漂亮的终端和引导仪表板(定制 GoAccess 以适合您自己的仪表板)
如何安装 GoAccess?
通常最新版本的 GoAccess 无法从默认系统软件包存储库获得,因此要安装最新的稳定版本,您需要在 Linux 系统下从源代码手动下载和编译它,如下所示:
在 Linux 中从源安装 GoAccess
------------ Install GoAccess on CentOS, RHEL and Fedora ------------
$ yum install ncurses-devel glib2-devel geoip-devel
$ cd /usr/src
$ wget https://tar.goaccess.io/goaccess-1.9.2.tar.gz
$ tar -xzvf goaccess-1.9.2.tar.gz
$ cd goaccess-1.9.2/
$ ./configure --enable-utf8 --enable-geoip=mmdb
$ make
# make install
------------ Install GoAccess on Debian and Ubuntu ------------
$ sudo apt install libncursesw5-dev libgeoip-dev apt-transport-https
$ cd /usr/src
$ wget https://tar.goaccess.io/goaccess-1.9.2.tar.gz
$ tar -xzvf goaccess-1.9.2.tar.gz
$ cd goaccess-1.9.2/
$ sudo ./configure --enable-utf8 --enable-geoip=legacy
$ sudo make
$ sudo make install
注意:唯一的依赖项是 ncurses。
注意:您可能需要安装构建工具 像gcc
、autoconf
、gettext
等 用于编译/构建软件 源。例如autopoint
,base-devel
,build-essential
,"Development Tools"
.
信息:如果输出实时 HTML,请确保端口 7890 已打开。
配置选项
可以使用多个选项来配置 GoAccess。论坛 完成配置选项的最新列表,运行 ./configure --help
--enable-debug
使用调试符号进行编译并关闭编译器优化。
--enable-utf8
使用广泛的字符支持进行编译。Ncursesw 是必需的。
--enable-geoip=<legacy|mmdb>
使用 GeoLocation 支持进行编译。MaxMind 的 GeoIP 是必需的。legacy
将利用原始的GeoIP数据库。mmdb
将利用增强的 GeoIP2 数据库。
--with-getline
动态扩展行缓冲区以分析全行请求,而不是使用固定大小的缓冲区 4096。
--with-openssl
使用 OpenSSL 支持 WebSocket 服务器编译 GoAccess。
使用包管理器安装 GoAccess
使用相应 Linux 发行版的默认包管理器在 Linux 上安装 GoAccess 的最简单和首选方法。
注意:正如我上面所说,并非所有发行版都会在系统默认存储库中提供最新版本的 GoAccess。
在 RedHat、CentOS 和 Fedora 上
# yum install goaccess
# dnf install goaccess [From Fedora 23+ versions]
在 Debian 和 Ubuntu 系统上
GoAccess 实用程序从 Debian Squeeze 6 和 Ubuntu 12.04 开始可用。要安装,只需在终端上运行以下命令。
$ sudo apt-get install goaccess
注意:上述命令并不总是为您提供最新版本。要获取 GoAccess 的最新稳定版本,请添加官方的 GoAccess Debian 和 Ubuntu 存储库,如下所示:
$ echo "deb http://deb.goaccess.io/ $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/goaccess.list
$ wget -O - http://deb.goaccess.io/gnugpg.key | sudo apt-key add -
$ sudo apt-get update
$ sudo apt-get install goaccess
如何使用 GoAccess?
在 Linux 计算机上安装 GoAccess 后,您可以通过运行以下命令来准备开始使用它。它将首先要求您确定访问日志的日志格式。
配置 GoAccess 日志格式
获取任何 Web 服务器统计信息的最简单方法是使用带有输入日志文件名的标志“f
”,如下所示。以下命令将为您提供 Web 服务器日志的一般统计信息。
# goaccess -f /var/log/httpd/tecmint.com
# goaccess -f /var/log/nginx/tecmint.com
上面的命令通过在一个可滚动视图上将各种报告的摘要显示为面板,为您提供了 Web 服务器指标的完整概述,如下所示。
Apache 日志概述
查看 Web 服务器 Apache 日志
按操作系统划分的 Apache 日志 – 概述
按操作系统查看 Apache 日志
按访客带宽划分的 Apache 日志 – 概述
查看 Apache 访客带宽使用情况
通过 Web 浏览器的 Apache 日志 – 概述
基于浏览器查看 Apache 使用情况
如何生成 Apache HTML 报告?
要生成 Apache Web 服务器日志的 HTML 报告,只需针对您的log日志文件运行它即可。
# goaccess -f /var/log/httpd/access_log > reports.html
GoAccess:使用 Web 浏览器监控 Apache 日志
关于性能
- 解析日志文件时 GoAccess 的速度有多快?
请记住,许多因素会影响解析时间,包括处理器、RAM、日志等,但是,通常我们可以得出下表:GoAccess 基准测试 — Intel(R) Core(TM) i7-8700K CPU @ 3.70GHz 16GB RAM
Benchmark (v1.4) - 默认哈希表 | 每秒 101,245.3 行 |
启用完整功能和指标基准测试 (>=v1.4) - 内存中哈希表 | 每秒 100,502.5 行 |
注意:在 1 小时 20 分钟(内存中)内解析大约命中(74G 大小)的数据集,消耗约 12GB RAM。