GoAccess日志分析工具使用文档

----Sevck 2016/3/4 17:24:13

#1软件说明:

GoAccess是一款开源、实时,运行在命令行终端下的web日志分析工具。该工具提供快速、多样的HTTP状态统计,可以令管理员不再纠结于统计各类数据,和繁杂的指令以及一大堆管道/正则表达式说byebye。据GoAccess官方的说法:使用AMD Sempron 2.31GHz的CPU+2GB内存,开启GoAccess所有功能,该软件每秒可以处理10万行日志。当然,如果使用的CPU更强劲,拥有更多的内存,GoAccess的表现会更加出色。

#2 功能特色:

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

ü 每个请求的时间统计

ü 最高访问ip

ü 请求的文件统计

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

ü 各HTTP状态码统计

ü Hosts,反向DNS,IP所在地

ü 操作系统

ü 浏览器/蜘蛛

ü 引用的网站

ü 引用的URLs

ü 关键词组

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

ü 可输出JSON或CSV

ü 各种的颜色主题

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

ü 支持IPv6

ü 可生成HTML报告

#3安装方法:

1.官网下载,编译:

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

2.软件包管理器安装:

Debian/Ubuntu:

#apt-get install goaccess

Centos/Fedora:

yum install goaccess

OSX:

brew install goaccess

安装完成之后我们就可以开始使用了,

测试是否安装成功我们可以在终端输入:goaccess -V(大写)

GoAccess日志分析工具使用文档

就可以看到已经安装成功了。

#4启动参数介绍:
    -b 流量消耗统计,如果想要提高解析速度,不要开启这个选项。缺省值 为不开启此选项
    -f 日志文件路径。
    -s HTTP 状态码报告,为了能够更好的解析日志,选项被默认关闭。
    -e 指定IP地址的访问统计。
    -a 通过代理的请求统计。

菜单介绍

F1 帮助菜单
    F5 刷新
    q 退出当前口窗、菜单、或是当前查看的选项
    o 打开当前的选项、菜单
    c 改变窗口配色(目前只有两种 默认和绿色)
    SHIFT + TAB 从当前选定模块向后切换
    RIGHT 打开当前选中模块,查看详细信息
    s 通过日期排序,只会在访问请求模块起作用
    S 通过点击次数排序,只会在访问请求模块起作用
    / 查看详细信息的窗口进行搜索
    n 通过/进行查找后,查找下个匹配的内容的位置,如果没有则在窗口底   部显示“search hit BOTTOM”
    t 在查看详细信息窗口,移动指针到最顶部
    b 在查看详细信息窗口,移动指针到最底部

其他设置

h 查看帮助

v 查看版本

s 储存方法

#5使用goaccess分析方法:

GoAccess日志分析工具使用文档

-f指定日志文件就会启动如下界面:

GoAccess日志分析工具使用文档

空格键为选择,上下光标移动,回车确定

Nginx日志是属于Combined Log Format (XLF/ELF)类型的,所以我们选择第三个

如果你的不是nginx ,那么到Vim /etc/goaccess.conf

找到:

#NCSA Combined Log Format with Virtual Host

#log-format %^:%^ %h %^[%d:%^] "%r" %s %b "%R" "%u"

去掉下面log-format前的#,如果没有就写一行如上代码

GoAccess日志分析工具使用文档

把#去掉,修改格式即可。

GoAccess日志分析工具使用文档

工具加载完,页面如下:

GoAccess日志分析工具使用文档

#6键盘操作:

  • F1或h:帮助
  • F5 :刷新主界面
  • q:退出程序/当前窗口/折叠当前模块
  • o或Enter:展开选中的模块或窗口
  • 0-9以及Shift + 0:将选中的模块或窗口激活
  • k和j:模块内部移动
  • c:修改配色
  • ^f和^b:模块中上下滚屏
  • tab shift+tab:前后切换模块
  • s:模块内部排序选择
  • /:在所有模块中搜索(支持正则)
  • n:找到下个匹配
  • g和G:跳到第一项/最后一项

#7功能项:

  • 表示每天特殊的访问
  • 请求最高的Top list
  • 静态请求top list
  • 404没有找到的URL
  • 访问最高的IP list
  • 操作系统
  • 浏览器
  • 时间统计
  • 来源网站
  • 访问国家
  • HTTP响应代码

#8其他分析技巧:

如果你的日志是压缩的日志,可以使用如下命令即可:

zcat access.log.***.gz | goaccess

#或者:

zcat -f access.log.*.gz | goaccess

当然goaccess 还支持各种管道:

例如:

sed -n ‘/11/\Dec\2016,$p’ access.log | goaccess -a

想分析百度/google对网站的爬虫:

grep -E “(google|baidu)”access.log | goaccess  -a

Goaccess也支持生成html,csv,json格式的报告:

goaccess -f access.log -a >result.html

goaccess -f access.log -a -d -o json > result.json

goaccess -f access.log -o csv > result.csv

Ps :如果导出HTML报告会遇到如下情况:

goaccess -f time_access.log -a > report.html

GoAccess - version 0.9.2 - Jul 15 2015 16:23:20
Config file: /usr/local/etc/goaccess.conf

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

解决办法:

vi ~/.goaccessrc

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

#重新指定配置文件后执行
goaccess -f time_access.log -p ~/.goaccessrc -a > result.html

最后附上一张html的报表:

GoAccess日志分析工具使用文档

上一篇:OS X: Messages Agent wants to use the "login" keychain


下一篇:JSON劫持漏洞攻防原理及演练