前几天老左有在军哥和小夜的博客中看到有分享GoAccess这款比较强大的日志分析工具,从功能以及关系数据的用户体验上着实是一款不错的可以用于Linux VPS/服务器中用来对网站日志和用户数据进行分析和统计的工具。就好比很多大型的网站,我们很少有见到有使用网站统计工具的,一般都是通过日志分析用户和各种信息数据的。
GoAccess,这款可以用于Linux系统的日志分析工具,可以用于Nginx、Apache等服务器日志处理中,也可以利用Cygwin使用到Windows系统中。一般而言,我们使用Linux系统多一些,所以老左也准备体验下这款日志分析工具到底有哪些不一样。
根据GoAccess官方(https://www.goaccess.io)的介绍,这款日志分析工具能够实时的反馈数据,而且可以输出HTML格式的页面,方便我们查阅;几乎可以使用到所有的日志格式中;能够比较友好的将需要的数据统计出来,比如访问概况、访客排名、动态和静态页面请求、访客使用的操作系统、浏览器、来路域名等都可以统计到。如果能用好这款工具,我们基本上无需使用第三方网站统计工具了,而且统计的更加精准。
第一、GoAccess工具安装
因为在这篇文章之前仅仅是看到过有这款工具并没有实际使用过,所以这篇文章的测试环境也是在测试机中。使用的是LNMP Web环境,主要是用来体验这款工具的安装、基本应用过程。
虽然GoAccess工具支持直接在服务器中yum或者apt-get安装,但是直接编译安装的可能不是最新版本,所以老左准备采用源编译安装。
1、安装依赖库软件
A - CentOS
yum -y install glib2 glib2-devel GeoIP-devel ncurses-devel zlib zlib-devel
B - Debian/Ubuntu
apt-get -y install libncursesw5-dev libgeoip-dev libtokyocabinet-dev
2、下载GoAccess最新版本和编译安装
wget http://tar.goaccess.io/goaccess-1.0.2.tar.gz
tar -xzvf goaccess-1.0.2.tar.gz
cd goaccess-1.0.2/
./configure --enable-geoip --enable-utf8
make
make install
目前的版本是1.0.2,如果我们嫌弃这样安装麻烦,就直接yum或者apt-get安装,功能上应该没有太大的差异,老左这里只不过要看看他们最新版本的样子,难免会有点差异。
3、检查是否安装正确
goaccess
安装完毕后,输入上面命令,如果能看到下面提示,说明GoAccess安装成功。
第二、GoAccess工具基本应用
GoAccess日志分析工具安装还是很简单的,鉴于功能比较强大,老左(laozuo.org)初次接触就简单的体验常用的功能和操作方法,具体详细的使用和功能应用我们可以查阅官方网站提供的案例或者到GitHub查看具体的文档(https://github.com/allinurl/goaccess)。
1、查看日志
goaccess -f laobuluo.com.log
这样的格式可以查看日志,也可以用绝对路径的URL LOG地址,也可以到当前日志目录下,对应不同站点的单独日志格式。
我们需要选择一个格式,用空格确定后回车(Common Log Format)。
我们可以看到请求页面URL、用户访客数据等统计。
2、导出HTML页面
goaccess -f laobuluo.com.log --log-format=COMBINED -a > /home/wwwroot/laobuluo.com/report.html
这里需要注意一个问题,如果是用的Nginx环境,则需要使用到--log-format=COMBINED 格式,要不会报错"Error occured at: src/parser.c - parse_log"。不过,我们也可以去修改.goaccessrc文件解决问题。
通过HTML页面(需要我们自己设定导出的位置,比如在当前域名根目录下),我们可以更加直观的看到日志分析情况。比如请求页面、请求文件、404页面、用户IP统计、用户系统、浏览器使用、用户来路域名等等,基本上和网站统计工具没有多大区别。
图标功能演示:http://rt.goaccess.io/?20160918205156
这里我们可以看看官方提供的在线演示图标功能,如果我们给自己的网站设定定时生成HTML,这样可以实现实时的统计数据,网站可以不用安装统计工具了。
总结,GoAccess日志分析工具的功能还有很多,可以细分到统计某一天、某一个IP用户的访问情况,也可以统计某个时间段的,更可以导出CSV表格整理汇总分析。