goaccess的使用

goaccess 是一个开源的实时日志分析工具,它可以运行在CLI和UI上
官网https://www.goaccess.io/

详解:https://goaccess.io/man
官网有介绍多平台的安装方法,我的是CENTOS系统。
[root@longquan software]# wget -c http://tar.goaccess.io/goaccess-1.0.2.tar.gz
[root@longquan software]# yum -y install ncurses-devel glib2-devel geoip-devel tokyocabinet-devel
[root@longquan software]# tar zxvf goaccess-1.0.2.tar.gz 
[root@longquan software]# cd goaccess-1.0.2
[root@longquan goaccess-1.0.2]# ./configure --enable-geoip --enable-utf8
[root@longquan goaccess-1.0.2]# make && make install
到这里就可以执行goaccess命令拉。
这里我们来讲一下自定义日志格式。
首先我的NGINX日志格式是这样定义的
       log_format  access '$remote_addr - $remote_user [$time_local] $host '
                                   '"$request" $status $body_bytes_sent "$request_body" $request_time '
                                   '"$http_referer" "$http_user_agent" $http_x_forwarded_for '
                                   '$upstream_addr $upstream_response_time';
保存为文件,就不用每次去按照下面的提示按 C 去修改
The configuration file is located under ~/.goaccessrc or %sysconfdir%/goaccess.conf where %sysconfdir% is either /etc/, /usr/etc/ or /usr/local/etc/.
[root@longquan goaccess-1.0.2]# vim  ~/.goaccessrc 
time-format %H:%M:%S
date-format %d/%b/%Y
log-format %^ %^ %^ [%d:%t %^] %v "%r" %s %b "%^" %T "%R" "%u" %h %^ %^

#log-format %h %^ %^ [%d:%t %^] %v "%r" %s %b "%^" %T "%R" "%u" %^ %^ %^
上面需要注意,我想记录http_x_forwarded_for提示格式错误,不能有2个相同变量,所以我的remote_addr记录的SLB的地址,就给跳过了,我们要的是真实的用户地址
然后开始执行
[root@longquan goaccess-1.0.2]# goaccess -f /data/wwwlogs/www.domain.com.log -p ~/.goaccessrc 
小家伙跑得还得快的,一会华丽丽的刷除了个界面,我们按下1,2,3,4,5。。。查看模块
这个工具主要就是日志格式自定义的比较麻烦,刚好看到这个网址有人已经踩过坑了。
http://blog.csdn.net/iamxiaoxiong/article/details/50527041
为了设置正确的log format,踩了不少坑,先列出来避免大家重复碰到。 
(1) log format默认是按照空格分隔日志信息的,所以,对于包含了特殊字符如空格等信息的字段,必须包含在“”里面。如字段request http_user_agent等 
(2) nginx日志格式里面,采用空格分隔,但是此处一定注意,只能用一个空格。当时我有个地方用了两个空格,直接导致goaccess结果出错。 
(3) nginx日志中的每一个字段都要和log format中的一一对应,如果log format中不需要nginx中的某一个信息,则用%^跳过该信息。 
(4) 对于nginx日志中的每一个 -, log format都需要一个%^来跳过, 如果是“-”, 则用“%^” 
(5) 如果nginx日志信息中有:, 则需要在log format中也显示出来。例如nginx日志中$time_local就包含了:,所以在log format的相应位置也是 [%d:%t %^]

希望这些能帮助使用goaccess的朋友。

q是退出当前窗口,直到退出程序
0-9 是选择模块
按TAB选中模块,按s跳出来的窗口选择排序
排除统计某来源IP 
goaccess -f /data/wwwlogs/www.domain.com.log -p ~/.goaccessrc  -e 123.164.52.240 
产生HTML报表(静态报表) 或者重定向> /opt/1.html 可以写脚本每天更新
goaccess -f /data/wwwlogs/www.domain.com.log -p ~/.goaccessrc -o /opt/1.html
 

重要:看官网的FAQ

转载于:https://my.oschina.net/longquan/blog/741111

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值