一、准备工作

1 . 安装goaccess

yum install goaccess

2. 配置nginx日志格式

在nginx.conf中配置

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '

                  '$status $body_bytes_sent "$http_referer" '

                  '"$http_user_agent" "$http_x_forwarded_for" "$request_body"';

配置完后重启nginx,假如先前已经开启nginx日志配置,需要重新设置新的access.log。

3.设置goaccess日志匹配格式

在goaccess.conf中添加

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一一对应。

二、分析nginx日志

1. 控制台模式

goaccess -a -d -f /var/log/nginx/access.log -p /etc/goaccess.conf

#goaccess -a -d -f {要分析的log文件} -p {goaccess配置文件}

进入控制台后

  • F1 主帮助页面

  • F5 重绘主窗口

  • q 退出

  • 1-15 跳转到对应编号的模块位置

  • o 打开当前模块的详细视图

  • j 当前模块向下滚动

  • k 当前模块向上滚动

  • s 对模块排序

  • / 在所有模块中搜索匹配

  • n 查找下一个出现的位置

  • g 移动到第一个模块顶部

  • G 移动到最后一个模块底部

2.HTML模式

goaccess -a -d -f /var/log/nginx/access.log -p /etc/goaccess.conf -o /home/go-access.html

#goaccess -a -d -f {要分析的log} -p {goaccess配置文件} -o {生成指定文件}

3.Json模式

goaccess -a -d -f /var/log/nginx/access.log -p /etc/goaccess.conf -o json>/home/test.json

#goaccess -a -d -f /var/log/nginx/access.log -p /etc/goaccess.conf -o json>/home/test.json

提供的Json文件可以给前端使用生成数据可视化页面。