作为程序员一定要保持良好的睡眠,才能好编程

Nginx 访问日志分析工具 GoAccess 使用简单教程

发布时间:2019-08-17


正常运行的网站如果发生崩溃,一般都是由于某些事件导致流量剧增,服务器无法承受导致的。这时候首先要通过 Nginx的访问日志来确认下是那个请求接口流量过高,这时候就用到了 GoAccess。


GoAccess 是一款 Nginx 访问日志分析工具,通过 GoAccess 分析 Nginx 访问日志生成的报表可以帮助我们找到网站高峰的访问时段,找到请求量最高的接口,从而着手进行优化处理。


安装 GoAccess

下面就来讲下如何使用 GoAccess,go access 安装很简单,

如果是 Mac os 可以直接通过 brew install goaccess安装。

如果是 Centos 系统可以执行 yum -y install goaccess 安装。

各系统下的安装方法参考: GoAccess 下载安装

https://goaccess.cc/?mod=download&target=_blank




使用 GoAccess

假如我已经从服务器拿到了一个 Nginx 访问日志文件 access.log,


可以执行以下命令生成分析报表:


goaccess  -f  access.log -o  result.html
-f: 指定日志文件
-o: 指定报表路径


执行此命令会默认读取/usr/local/Cellar/goaccess/1.2/etc/goaccess.conf, Mac os 下默认文件在此路径,其他操作系统各不相同,


执行以上命令默认一般会报错:


Fatal error has occurred
Error occured at: src/parser.c - parse_log - 2705
No time format was found on your conf file.


提示没有 time format, 即我们需要配置日志的时间格式,


打开默认的配置文件 goaccess.conf, 开启这两个配置:


time-format %H:%M:%S
date-format %d/%b/%Y

以上配置分别配置了 access.log 中请求时间所用的时间格式和日期格式。


修改保存后重新执行 goaccess -f access.log -o result.html, 用浏览器打开 result.html, 我们便得到了分析结果:


“Request Files” 显示了请求地址的访问量排名,一般都是访问量最高的地址导致的系统崩溃:



image.png



“Time Distribution” 可以看到不同时间端的请求量分布:

image.png