用GoAccess分析Nginx的日志

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用GoAccess分析Nginx的日志相关的知识,希望对你有一定的参考价值。

GoAccess是什么?

    GoAccess是一款开源、实时,运行在命令行终端下的web日志分析工具。该工具提供快速、多样的HTTP状态统计,可以令管理员不再纠结于统计各类数据和繁杂的指令以及一大堆管道/正则表达式。


GoAccess功能一览

  • 生成统计数据,带宽统计等

  • 每个请求的时间统计

  • 最高访问ip

  • 请求的文件统计

  • 请求的静态文件、图片、flash、js文件等

  • 各HTTP状态码统计

  • Hosts,反向DNS,IP所在地

  • 操作系统

  • 浏览器/蜘蛛

  • 引用的网站

  • 引用的URLs

  • 关键词组

  • 地理位置 (大陆、国家、城市)

  • 可输出JSON或CSV

  • 各种的颜色主题

  • 支持大容量数据且支持大容量数据的持续分析

  • 支持IPv6

  • 可生成html报告


开始使用

如果想从源码编译:

wget http://tar.goaccess.io/goaccess-0.8.1.tar.gz
tar -xzvf goaccess-0.8.1.tar.gz
cd goaccess-0.8.1/
./configure --enable-geoip --enable-utf8
make && make install

或是

yum install -y goaccess


用Access来分析nginx日志

然后就可以开始使用GoAccess了。

首先,进入nginx的日志目录,如/var/log/nginx,输入如下命令让goaccess打开指定文件:


goaccess -f access.log

打开之后会跳出选择日志文件类型的界面:

技术分享


Nginx日志是属于Combined Log Format (XLF/ELF)类型的,所以我们选择第三个。用上下光标移动,空格选中,回车确定。

进入了主界面:

技术分享


键盘操作:

  • F1h:帮助

  • F5 :刷新主界面

  • q:退出程序/当前窗口/折叠当前模块

  • oEnter:展开选中的模块或窗口

  • 0-9以及Shift + 0:将选中的模块或窗口激活

  • kj:模块内部移动

  • c:修改配色

  • ^f^b:模块中上下滚屏

  • tab shift+tab:前后切换模块

  • s:模块内部排序选择

  • /:在所有模块中搜索(支持正则)

  • n:找到下个匹配

  • gG:跳到第一项/最后一项


命令行下相关:

在使用goaccess命令行前,我们必须配置日志文件的解析格式,因为此处没有界面来让你选择日志格式了。

看一下日志格式:

220.171.104.18 - - [11/Mar/2016:17:20:07 +0800] "GET /templets/smore/images/top.png HTTP/1.1" 304 0 "http://www.test.cn/lines/show_4.html" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36"


现在修改配置文件添加:

vi /etc/goaccess.conf 

time-format %T
date-format %d/%b/%Y
log-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u"


要实时性的实现日志分析则运行如下命令:

goaccess -f /var/log/nginx/access.log


想看某天的则可以打印html报告:

goaccess -d -f /var/log/nginx/access.log -a >report.html

由于nginx会自动压缩日志,一下命令可以直接分析压缩后的日志:

zcat access.log.*.gz | goaccess
#或者
zcat -f access.log* | goaccess


参考链接:

https://www.fancycoding.com/log-analyse-using-goaccess/

以上是关于用GoAccess分析Nginx的日志的主要内容,如果未能解决你的问题,请参考以下文章

利用GoAccess图形化分析Nginx访问日志

nginx日志分析利器GoAccess

Goaccess---良心nginx日志分析工具

goaccess_nginx日志分析工具

linux系统centOS6.5使用goaccess工具分析nginx网站日志

Nginx 日志记录post数据,并使用goaccess进行日志分析