使用goaccess生成可视化的访问日志
阅读本文你需要了解(pre-knowledge)
- 基本的terminal命令
- http协议的基础知识
简介
GoAccess是一个开源的实时web访问日志分析工具,实现了基于终端或浏览器的数据可视化,并且提供了有用的统计数据。
安装
centos
$ wget http://tar.goaccess.io/goaccess-1.2.tar.gz
$ tar xvzf goaccess-1.2.tar.gz
$ cd goaccess-1.2/
# 安装依赖
$ yum install ncurses-devel gcc
$ yum install geoip-devel tokyocabinet-devel
$ ./configure --enable-utf8 --enable-geoip=legacy
# 编译
$ make && make install
$ ln -s /usr/local/bin/goaccess /usr/bin/goaccess
使用
goaccess预设了对以下日志格式的支持:
- NCSA Combined Log Format
- NCSA Combined Log Format with Virtual Host
- Common Log Format (CLF)
- Common Log Format (CLF) with Virtual Host
- W3C
- Squid Native Format
使用控制台
goaccess的参数说明文档。
# 打开goaccess的控制台,选择一种预设的日志格式,或者输入自定义的日志格式.
$ goaccess -f pathOfYourAccessLog.log
几种常用的日志格式如下:
caddy
当然goaccess也支持自定义日志格式,我是用caddy作反向代理的,日志格式如下:
140.205.201.37 - - [17/May/2017:03:06:25 +0000] "GET /admin/images/menu-current-arrow.gif HTTP/1.1" 200 117
这个时候需要自定义日志格式(logFormat),其中格式的详细说明参考文档
$ goaccess --time-format=%H:%M:%S --log-format='%h %^[%d:%t %^] "%r" %s %b' --date-format=%d/%b/%Y -f pathOfYourAccessLog.log
nginx
# 日志格式如下
122.233.205.143 - - [15/May/2017:09:32:53 +0000] "GET /favicon.ico HTTP/1.1" 502 575 "https://narro.me/" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36"
$ goaccess --time-format=%H:%M:%S --log-format='%h %^[%d:%t %^] "%r" %s %b "%R" "%u"' --date-format=%d/%b/%Y -f pathOfYourAccessLog.log
traefik
203.208.60.240 - - [25/Feb/2018:08:56:54 +0000] "GET /narro/narro_blog/src/bca1842cfb22b2f910e811923356e2031f680536/categories/index.html HTTP/1.1" 200 30839 - "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" 15863 "gogs" "http://gogs:3000" 56ms
$ goaccess --time-format=%H:%M:%S --log-format='%h %^[%d:%t %^] "%r" %s %b "%R" "%u" %^ "%v" %^ %T' --date-format=%d/%b/%Y -f pathOfYourAccessLog.log