本文档包含特定主题的最常见问题。以及一些不太适合放在操作手册页面的问题。如果在本页面没有找到您问题的答案,请参考 操作手册 或者 Github 上的 问题报告 版块。
GoAccess 解析日志文件的速度到底有多快?
请记住有相当多的因素能够影响解析速度,包括处理器,内存,日志本身等等。但是我们依然给出如下参考数据:
开启所有功能和指标(>=v0.9.5) - 默认哈希表 | 87,816 行/秒 |
开启所有功能和指标(>=v0.9.5) - Tokyo Cabinet 磁盘B+树 | 23,000 行/秒 |
开启所有功能和指标(>=v0.9.5) - Tokyo Cabinet 内存哈希表 | 46,000 行/秒 |
注意: 解析一个拥有 5200 万条访问记录(120GB)的数据集需要 20 分钟(内存中处理),60 分钟(磁盘上处理)。
GoAccess 不会造成内存泄露(通过 Valgrind 测试),因此大部分时候内存占用取决于日志的大小和开启的功能。解析 3,397,814 行日志大概需要 134.1 MiB
内存(开启所有功能)。
-q
忽略查询字符串能够极大的降低内存消耗,特别是在有时间戳的请求上。
如何为 Apache 或者 Nginx 配置 日志/日期/时间 格式?
如果您正在使用 Apache 或者 Nginx 的标准日志格式,配置 GoAccess 将十分简单。
这里有几种方法可以设置日志格式。如果使用终端环境,最简单的方法是运行 GoAccess 时使用参数 -c
。
# goaccess access.log -c
您也可以在命令行中指定使用的日志格式,支持标准 Apache/Nginx 格式,您可以:
# goaccess access.log --log-format=COMBINED
但是以上选项都是临时有效,如需永久有效则需要在配置文件中配置。参考下文有关配置文件的部分以获取更多细节。
log_format
格式转换成 GoACcess log-format
格式。 https://github.com/stockrt/nginx2goaccess
配置文件位于:~/.goaccessrc
或者
%sysconfdir%/goaccess.conf
, %sysconfdir%
可能是 /etc/
, /usr/etc/
或者
/usr/local/etc/
.
GoAccess 在配置文件或者对话框中有一个通用的预定义日志格式选项。 此脚本 能自动从 IIS 日志文件中提取合适的格式。
生成一份 HTML 报告,仅需要这样做:(-a 可选)
# goaccess /var/log/apache2/access.log -a -o report.html 或者 # zcat -f /var/log/apache2/access.log* | goaccess -a -o report.html
更多示例,请参考 GoAccess 操作手册
生成实时 HTML 报告的方法与生成静态报告的方法非常类似。
就是生成静态报告的时候将输出的 html 文件放到你的 Web 服务器的 www 公共目录下。当然,您需要添加几个实时参数。 比如: --real-time-html
。
# goaccess access.log -o /usr/share/nginx/www/rt.goaccess.io/report.html --real-time-html
如果打开报告的浏览器支持 WebSocket,则报告页面会尝试使用 WebSocket 连接到服务器,而服务器主机名(window.location.hostname
)取决于生成报告的主机。
当然您也可以通过参数 --ws-url=<host>
指定主机名。注意 host
必须指向 GoAccess 运行和处理日志的主机。请确保 host
是有效主机且不应该包含 http
。
更多示例,请参考 GoAccess 操作手册
--ssl-cert=<cert.crt>
和 --ssl-key=<priv.key>
。
GoAccess 使用纯 C 编写,仅需要 ncurses 模块支持。
如果使用地理位置功能,GeoIP 数据库需要从 MaxMind 下载。参考 GoAccess 相关安装手册。
如果您有巨大的数据集无法放入无论内存,或您希望持久化保存数据以及处理新增加的数据,则您需要使用磁盘 B+树 数据库。
$ ./configure --enable-utf8 --enable-geoip --enable-tcb=btree $ make # make install
本节将描述如果通过源码安装 Tokyo Cabinet。
$ wget http://fallabs.com/tokyocabinet/tokyocabinet-1.4.48.tar.gz $ tar -zxvf tokyocabinet-1.4.48.tar.gz $ cd tokyocabinet-1.4.48 $ ./configure --prefix=/usr --enable-off64 --enable-fastest $ make # make install
在 Windows 系统下使用 Cygwin 构建 GoAccess,您需要在 Cygwin 包安装界面选取以下安装包。
libGeoIP-devel | GeoIP2 C library libncurses-devel | Terminal display library libncursesw10 | Terminal display library (wide-character) gcc-core (C) | GNU Compiler Collection make | make utility automake | GNU Makefiles gettext | GNU Gettext automake wrapper scripts | wrapper scripts for automake and aclocal
参照下面的步骤执行,可以在 OS X El Capitan 环境下不依赖 homebrew 安装 GoAccess。(需要管理员权限)
/Library/Developer/CommandLineTools/
确认 “命令行工具” 已经安装好
xcode-select --install
/usr/local/
。
~/.bash_profile
文件中添加了 /usr/local/bin/
到 $PATH
,这样在引用 GoAccess 命令是就不需要在之前添加 /usr/local/bin/。
/usr/local/etc/
下编辑你的 GoAccess 配置文件了