正文

炫酷可视化WEB日志分析工具–GoAccess

炫酷日志可视化WEB日志分析工具–GoAccess

GoAccess 是一款开源的且具有交互视图界面的实时 Web 日志分析工具,通过你的 Web 浏览器或者 *nix 系统下的终端程序(terminal)即可访问。

能为系统管理员提供快速且有价值的 HTTP 统计,并以在线可视化服务器的方式呈现。

官网:https://goaccess.io/

国内中文站:https://www.goaccess.cc/

demo预览:https://rt.goaccess.io/?20170729002319

炫酷可视化WEB日志分析工具–GoAccess

编译安装
安装 GoAccess 非常的容易。只需要下载、解压以及编译就好了:

$ wget http://tar.goaccess.io/goaccess-1.2.tar.gz $ tar -xzvf goaccess-1.2.tar.gz $ cd goaccess-1.2/ $ ./configure –enable-utf8 –enable-geoip=legacy $ make # make install
注意: 仅仅需要依赖 ncurses 模块。
提示: 如果需要使用实时 HTML 报告, 请确保开放 7890 端口。

配置选项
GoAccess 拥有多个配置选项。获取完整的最新配置选项列表,请运行:./configure –help

–enable-debug
使用调试标志编译且关闭编译器优化。
–enable-utf8
宽字符支持。依赖 Ncursesw 模块。
–enable-geoip=<legacy|mmdb>
地理位置支持。依赖 MaxMind GeoIP 模块。legacy 将使用原始 GeoIP 数据库。mmdb 将使用增强版 GeoIP2 数据库。
–enable-tcb=<memhash|btree>
Tokyo Cabinet 存储支持。 memhash 将使用 Tokyo Cabinet 的内存哈希数据库。 btree 将使用 Tokyo Cabinet 的磁盘 B+Tree 数据库。
–disable-zlib
禁止在 B+Tree 数据库上使用 zlib 压缩。
–disable-bzip
禁止在 B+Tree 数据库上使用 bzip2 压缩。
–with-getline
使用动态扩展行缓冲区用来解析完整的行请求,否则将使用固定大小(4096)的缓冲区。
–with-openssl
使 GoAccess 与其 WebSocket 服务器之间的通信能够支持 OpenSSL。

 

在各主流 Linux 发行版上安装 GoAccess
使用您正在使用的 Linux 发行版的包管理器来安装 GoAccess 是非常简单的。需要注意的是并不是所有的发行版都同步更新了最新的 GoAccess 可用版本。

Debian/Ubuntu
# 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 – https://deb.goaccess.io/gnugpg.key | sudo apt-key add – $ sudo apt-get update $ sudo apt-get install goaccess

Fedora
# yum install goaccess
Arch Linux
# pacman -S goaccess
Gentoo
# emerge net-analyzer/goaccess
OS X / Homebrew
# brew install goaccess
注意: 如果需要 GeoIP,请在上面的命令行后添加 –with-libmaxminddb 。 您将需要从 MaxMind 下载城市/国家数据库,并且使用 –geoip-database 详细指定需要用到的数据库。
FreeBSD
# pkg install sysutils/goaccess
OpenBSD
# pkg_add goaccess
pkgsrc (NetBSD, Solaris, SmartOS, …)
# pkgin install goaccess
Slackware
# curl https://slackbuilds.org/slackbuilds/14.1/system/goaccess.tar.gz | tar xvz # cd goaccess/ # GEOIP=yes ./goaccess.SlackBuild
Windows
GoAccess 可以通过 Cygwin 运行在 Windows 系统下。

Docker
在 Docker 容器中运行 GoAccess 之前,请先在 /srv/goaccess/data 目录下创建配置文件。 您可以自行从头开始或者使用 config/goaccess.conf 作为起点并根据需要进行修改。

一份最小化的支持实时 HTML 报告的适用于 Docker 容器的配置文件至少需要设置以下这些选项:log-format, log-file, output, real-time-html 以及 ws-url。

配置文件准备好以后,请从 Github 上克隆源码仓库到本地:

$ git clone https://github.com/allinurl/goaccess.git goaccess && cd $_
接着请按照如下步骤创建并运行镜像:

docker build . -t allinurl/goaccess
docker run –restart=always -d -p 7890:7890 \
-v “/srv/goaccess/data:/srv/data" \
-v “/srv/goaccess/html:/srv/report" \
-v “/var/log/apache2:/srv/logs" \
–name=goaccess allinurl/goaccess
注意: 可能您需要替换 /var/log/apache2 为您自己的 Web 服务器的访问日志。

如果一切顺利,一份安装报告将会出现在 /srv/goaccess/html/ 目录下。

如果在构建镜像之后修改了配置文件,是不需要重新构建的。简单的重启容器即可:

docker restart goaccess
更多信息请查阅 README.md 文件中有关 Docker 的章节。

通过 GitHub(开发者) 构建
$ git clone https://github.com/allinurl/goaccess.git
$ cd goaccess $ autoreconf -fi
$ ./configure –enable-geoip –enable-utf8
$ make # make install