GoAccess 是一款开源的且具有交互视图界面的实时 Web 日志分析工具,通过你的 Web 浏览器或者 *nix 系统下的终端程序(terminal)即可访问。能为系统管理员提供快速且有价值的 HTTP 统计,并以在线可视化服务器的方式呈现。
安装
在官网或者中文网站(https://www.goaccess.cc/
)上下载源码包,解压后编译安装
tar -zxvf goaccess-1.2.tar.gz #解压
./configure --enable-geoip --enable-utf8 #安装前配置
make && make install #安装
使用
使用过程中最重要的一步就是配置日志格式,GoAccess提供了两种方式配置日志格式,命令行和窗口形式。
%x 匹配 time-format 和 date-format 变量的日期和时间字段。用于使用时间戳来代替日期和时间两个独立变量的场景。
%t 匹配 time-format 变量的时间字段。
%d 匹配 date-format 变量的日期字段。
%v 根据 canonical 名称设定的服务器名称(服务区或者虚拟主机)。
%e 请求文档时由 HTTP 验证决定的用户 ID。
%h 主机(客户端IP地址,IPv4 或者 IPv6)。
%r 客户端请求的行数。这些请求使用分隔符(单引号,双引号)
%m 请求的方法。
%U 请求的 URL。
%q 查询字符串。
%H 请求协议。
%s 服务器回传客户端的状态码。
%b 回传客户端的对象的大小。
%R HTTP 请求的 "Referer" 值。
%u HTTP 请求的 "UserAgent" 值。
%D 处理请求的时间消耗,使用微秒计算。
%T 处理请求的时间消耗,使用带秒和毫秒计算。
%L 处理请求的时间消耗,使用十进制数表示的毫秒计算。
%^ 忽略此字段。
%~ 继续解析日志字符串直到找到一个非空字符(!isspace)。
~h 在 X-Forwarded-For (XFF) 字段中的主机(客户端 IP 地址,IPv4 或者 IPv6)。
1、配置窗口
通过下面的命令进入到配置窗口
goaccess -f filename
微信截图_20200628094815.png
- 首先通过上下方向键选择一个模板,并按空格键选择
- 选择好后下面的Log Format 、Date Format、Time Format会出现模板里面预设的日志格式,通过上面的提示按c、d、t进入到对应的项目进行修改
- 修改完成后按esc退出编辑
- 按enter键开始日志分析
2、通过命令行直接配置
下面的命令可以直接在命令行查看分析结果
goaccess -f access.log-20200619 --log-format="%h %^[%d:%t %^] \"%r\" %s %b \"%R\" \"%u\"" --date-format="%d/%b/%Y" --time-format=%H:%M:%S
微信截图_20200628135302.png
下面的命令可以将分析结果导出为html文件,在浏览器查看
goaccess -f access.log-20200619 --log-format="%h %^[%d:%t %^] \"%r\" %s %b \"%R\" \"%u\"" --date-format="%d/%b/%Y" --time-format=%H:%M:%S --hour-spec=min -o /data/nginx-log.html
微信截图_20200628135412.png
网友评论