goaccess: 最佳的可视Web日志分析器

GoAccess允许您使用简单的命令行仪表板实时监视Web服务器日志,以便快速查看和分析流量指标。它完全在一个终端中运行,统计信息被组织到一个可滚动仪表板上的独立面板中。也可以使用GoAccess生成HTML,JSON和CSV网络流量报告。

GoAccess是基于终端和基于Web的实时仪表板,用于读取Apache或者nginx access.log文件。 access.log文件存储有关Apache Web服务器上发生的事件的信息。此类信息可以包括访问者IP地址,查看的页面,状态代码,使用的浏览器等, 使用GoAccess可以统计分析这些数据。

安装

# 安装依赖
$ sudo apt-get install libncursesw5-dev gcc make libgeoip-dev libtokyocabinet-dev build-essential -y
$ wget http://tar.goaccess.io/goaccess-1.3.tar.gz
$ tar xvzf goaccess-1.3.tar.gz
$ cd goaccess-1.3
$ sudo ./configure --enable-utf8 --enable-geoip=legacy
$ sudo make
$ sudo make install

运行

sudo goaccess /var/log/apache2/access.log --log-format=COMBINED

编辑goaccess日志格式配置

$ sudo vi /usr/local/etc/goaccess.conf

此配置中的注释用#表示,表示服务器将忽略其后同一行上的后续信息。在此文件中,我们总共需要删除两个#符号以取消注释两行。

# Apache log date format. The following date format works with any
# of the Apache's log formats below.
#
date-format %d/%b/%Y

更新配置

# NCSA Combined Log Format
#
log-format %h %^[%d:%^] "%r" %s %b "%R" "%u"
#

goaccess实时查看

为了实时获取服务器上的更新统计信息,您必须再次运行goaccess命令。获得定期更新的唯一方法是创建一个bash脚本,并使其每分钟左右作为cronjob运行。为此,创建一个包含以下内容的bash脚本:

!#/bin/bash
sudo goaccess /var/log/apache2/access.log --log-format=COMBINED -a -o /var/www/html/report.html

参考资料:

如何监控docker容器?
Elasticsearch中Painless编程