作者ChinaLeng 发布于 2年前

介绍

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条评论