GoAccess 是一款访问日志分析工具,几乎支持所有的web日志 (Apache, Nginx, Amazon S3, Elastic Load Balancing, CloudFront, 等等),通过 GoAccess 分析访问日志生成的报表可以帮助我们找到网站高峰的访问时段,找到请求量最高的接口,从而着手进行优化处理。
安装最新版的 (centos)
1 | yum install goaccess -y |
也可以编译安装
1 | wget http://tar.goaccess.io/goaccess-1.2.tar.gz |
更多的配置选项可以查看安装说明:https://goaccess.cc/?mod=download
安装后输入goaccess -V查看一下
1 | # goaccess -V |
之后要修改一下goaccess.conf配置文件,安装后配置文件默认再/etc/goaccess/下面,如果是编译安装的应该在/usr/local/etc下面。
1 | time-format %H:%M:%S |
上面配置了日志请求中的所用的时间格式和日期格式,log-format对应的是nginx里面的log_format ,参数如下
goaccess执行命令参数 ,终端输入 goaccess -h可看到,下面只列出常用的的。
1 | $ goaccess -h |
常用参数
再终端输入命令(blog.czkup.cn.log 需要换成自己的日志,/etc/goaccess/goaccess.conf需要改成自己goaccess.conf所在的位置)
1 | goaccess -a -d -f blog.czkup.cn.log -p /etc/goaccess/goaccess.conf |
控制台下的操作方法:
再终端输入命令(blog.czkup.cn.log 需要换成自己的日志, /www/wwwroot/goaccess/go-access.html需要改成自己的html文件,–real-time-html 参数是实时生成HTML报告)
1 | goaccess blog.czkup.cn.log -p /etc/goaccess/goaccess.conf -o /www/wwwroot/goaccess/go-access.html --real-time-html |
控制台会提示一句话,说明已经可以了。
1 | WebSocket server ready to accept new client connections |
这个时候去访问刚刚生成的html页面,页面上会实时最新的日志。
这种就有点麻烦,如果推出了,GoAccess和WebSocket都会被关闭。这样html就收不到最新的日志内容了。
这个时候需要再刚刚执行的命令后面添加一个参数***–daemonize***
1 | goaccess blog.czkup.cn.log -p /etc/goaccess/goaccess.conf -o /www/wwwroot/goaccess/go-access.html --real-time-html --daemonize |
注意再执行命令之前请打开7890端口
这个时候会后运行,日志会实时更新到html页面上。也可以生成json和csv。
只需要把-o后面的参数改成想要的格式。
1 | json |
这就是goaccess的基本使用方法,要了解更多的用法可以自行去官方文档查询。官方地址