介绍
GoAccess 是一款访问日志分析工具,几乎支持所有的web日志 (Apache, Nginx, Amazon S3, Elastic Load Balancing, CloudFront, 等等),通过 GoAccess 分析访问日志生成的报表可以帮助我们找到网站高峰的访问时段,找到请求量最高的接口,从而着手进行优化处理。
安装
安装最新版的 (centos)
yum install goaccess -y
也可以编译安装
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
更多的配置选项可以查看安装说明:https://goaccess.cc/?mod=download
安装后输入goaccess -V查看一下
# goaccess -V GoAccess - 1.3. For more details visit: http://goaccess.io
之后要修改一下goaccess.conf配置文件,安装后配置文件默认再/etc/goaccess/下面,如果是编译安装的应该在/usr/local/etc下面。
time-format %H:%M:%S
date-format %d/%b/%Y
log-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u"
上面配置了日志请求中的所用的时间格式和日期格式,log-format对应的是nginx里面的log_format ,参数如下
%t 匹配time-format格式的时间字段
%d 匹配date-format格式的日期字段
%h host(客户端ip地址,包括ipv4和ipv6)
%r 来自客户端的请求行
%m 请求的方法
%U URL路径
%H 请求协议
%s 服务器响应的状态码
%b 服务器返回的内容大小
%R HTTP请求头的referer字段
%u 用户代理的HTTP请求报头
%D 请求所花费的时间,单位微秒
%T 请求所花费的时间,单位秒
%^ 忽略这一字段
goaccess执行命令参数 终端输入 goaccess -h可看到,下面只列出常用的的
$ goaccess -h
# 常用参数
-a --agent-list 启用由主机用户代理的列表。为了更快的解析,不启用该项
-d --with-output-resolver 在HTML/JSON输出中开启IP解析,会使用GeoIP来进行IP解析
-f --log-file 需要分析的日志文件路径
-p --config-file 配置文件路径
-o --output 输出格式,支持html、json、csv
-m --with-mouse 控制面板支持鼠标点击
-q --no-query-string 忽略请求的参数部分
--real-time-html 实时生成HTML报告
--daemonize 守护进程模式,--real-time-html时使用
控制台模式
再终端输入命令(blog.czkup.cn.log 需要换成自己的日志,/etc/goaccess/goaccess.conf需要改成自己goaccess.conf所在的位置)
goaccess -a -d -f blog.czkup.cn.log -p /etc/goaccess/goaccess.conf
然后会输出日志内容
控制台下的操作方法:
F1 主帮助页面
F5 重绘主窗口
q 退出
1-15 跳转到对应编号的模块位置
o 打开当前模块的详细视图
j 当前模块向下滚动
k 当前模块向上滚动
s 对模块排序
/ 在所有模块中搜索匹配
n 查找下一个出现的位置
g 移动到第一个模块顶部
G 移动到最后一个模块底
HTML模式
再终端输入命令(blog.czkup.cn.log 需要换成自己的日志, /www/wwwroot/goaccess/go-access.html需要改成自己的html文件,--real-time-html 参数是实时生成HTML报告)
goaccess blog.czkup.cn.log -p /etc/goaccess/goaccess.conf -o /www/wwwroot/goaccess/go-access.html --real-time-html
控制台会提示一句话,说明已经可以了。
WebSocket server ready to accept new client connections
这个时候去访问刚刚生成的html页面,页面上会实时最新的日志。
这种就有点麻烦,如果推出了,GoAccess和WebSocket都会被关闭。这样html就收不到最新的日志内容了。
这个时候需要再刚刚执行的命令后面添加一个参数--daemonize
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后面的参数改成想要的格式
json
goaccess blog.czkup.cn.log -p /etc/goaccess/goaccess.conf -o json>index.json
csv
goaccess blog.czkup.cn.log -p /etc/goaccess/goaccess.conf -o csv>index.csv
这就是goaccess的基本使用方法,要了解更多的用法可以自行去官方文档查询。官方地址
0条评论