学习使用GoAccess分享Nginx日志

Web服务日志中包含很多关键信息,可用于性能分析和网站运营分析。之前一直想折腾下,都没去搞。今天心血来潮研究了下GoAccess,这次主要是使用GoAccess来分析Nginx日志文件。

安装方法很多,详情可去官网查看goaccess.io,我这次是通过epel源安装的;

 yum install epel-release && yum -y update 
 yum install -y goaccess 

安装完毕之后 直接使用goaccess + 日志文件路径即可,
例如:goaccess /var/log/nginx/access.log

goaccess [ -b ][ -s ][ -e IP_ADDRESS][ - a ] <-f log_file >

参数说明:

$ 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时使用

第一次使用的时候会提示你选择access的日期及时间格式,这里选择那种看自己需求;

GoAccess也支持生成报表:
goaccess /var/log/nginx/access_log > goaccess.html

生成HTML报表需要在默认将配置文件goaccess.conf里面添加一下配置参数:

time-format %H:%M:%S
date-format %d/%b/%Y
log-format %h %^[%d:%t %^] “%r” %s %b “%R” “%u”

其中,log-format 与 access.log 的 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 -a -d -f /data/logs/fanhaobai.com.access.log -p /etc/goaccess.conf
控制台下的操作方法:

F1   主帮助页面
F5   重绘主窗口
q    退出
1-15 跳转到对应编号的模块位置 
o    打开当前模块的详细视图
j    当前模块向下滚动
k    当前模块向上滚动
s    对模块排序
/    在所有模块中搜索匹配
n    查找下一个出现的位置
g    移动到第一个模块顶部
G    移动到最后一个模块底部

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注