GoAccess旨在成为一个基于终端的快速日志分析器,其核心思想是实时快速分析和查看Web服务器统计信息,GoAccess可分析Apache/Nginx等WEB日志,同时还支持生成HTML、JSON、CSV等数据报告。
安装GoAccess
GoAccess支持yum
安装,直接执行命令yum -y install goaccess
即可,不过为了拥有更大的灵活性,推荐使用下面的方法编译安装。
#安装依赖
yum -y install libmaxminddb-devel ncurses-libs ncurses-devel openssl openssl-devel
#下载源码
wget https://tar.goaccess.io/goaccess-1.2.tar.gz
#解压
tar -xzvf goaccess-1.2.tar.gz
#进入目录
cd goaccess-1.2/
#编译安装
./configure --enable-utf8 --enable-geoip=mmdb --with-openssl --with-libmaxminddb-devel
make && make install
如果不出意外输入命令goaccess -V
就可以看到对应的版本了。更多的编译参数可参考官方帮助文档:https://goaccess.io/download
运行GoAccess
最简单的做法就是直接运行goaccess 日志路径
根据提示选择,如果您觉得终端的方式看起来不习惯,我们还可以生成静态的HTML报告,运行下面的命令即可:
goaccess xiaoz.me_nginx.log -a -o xxx.html --log-format=COMBINED
xiaoz.me_nginx.log
:为日志文件具体路径xxx.html
:HTML报告的名字,可指定到站点目录,然后直接访问查看--log-format=
日志文件格式,COMBINED
为标准格式
定时生成HTML报告到站点目录
每次都去手动生成报告太麻烦啦,有没有更简便的方法?写个简单的shell脚本自动生成就搞定啦,将下面的内容另存为goaccess.sh
#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
export PATH
goaccess xiaoz.me_nginx.log -a -o /xiaoz.me/$(date +%Y-%m-%d).html --log-format=COMBINED
xiaoz.me_nginx.log
:日志文件路径(请填写绝对路径)/xiaoz.me/
:为您站点根目录,根据自身情况修改
别忘记加上可执行权限:chmod u+x goaccess.sh
,再使用crontab
每小时生成一次HTML报告。
#添加计划任务
crontab -e
#添加以下内容,/root/goaccess.sh为上面脚本的绝对路径
0 * * * * /root/goaccess.sh > /dev/null
#重载crontab
service crond reload
大功告成,这样goaccess每隔1小时为我们生成一次HTML日志报告,等待一段时间访问https://domain.com/当前日期.html
(日期格式如2017-07-16)就可以看到直观的HTML报告啦。
总结
goaccess还支持更多的功能,比如同时分析多个日志文件、IP查询等功能,更多使用帮助可通过goaccess -h
进行查看。在之前还分享过Windows下日志分析工具《360星图》也是很不错的,并且是中文显示,看起来更加友好。
GoAccess官网:https://goaccess.io/
演示地址:https://rt.goaccess.io/?20180613194436