#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(大写)
就可以看到已经安装成功了。
#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分析方法:
-f指定日志文件就会启动如下界面:
空格键为选择,上下光标移动,回车确定
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前的#,如果没有就写一行如上代码
把#去掉,修改格式即可。
工具加载完,页面如下:
#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的报表: