Fork me on GitHub

Nginx日志分析利器GoAccess

Nginx的日志/var/log/nginx/可以直接用tail去看,或者用更高级的GoAccess去看,另外GoAccess也可以生成HTML报告:
http://goaccess.prosoftcorp.com/goaccess_html_report.html

GoAccess 在 CentOS 上的安装方法:
1. 需要安装 GeoIP, ncurses, glib2, 一句搞定
yum -y install glib2 glib2-devel ncurses ncurses-devel geoIP geoIP-devel

2. 下载 GoAccess 解压编译安装

# wget http://jaist.dl.sourceforge.net/project/goaccess/0.6.1/goaccess-0.6.1.tar.gz
# tar zxvf goaccess-0.6.1.tar.gz
# cd goaccess-0.6.1
# ./configure –enable-geoip –enable-utf8
# make && make install
# make clean

3. GoAccess 使用方法
进入 Nginx 日志所在目录

命令行直接查看

# goaccess -f access.log -c -a

出来图了,日志格式选 NCSA

也可以生成 HTML 报告

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

zcat -f /var/log/nginx/access.log* | goaccess -a > report.html

zcat access.log.1.gz | goaccess

或者干脆分析目前下所有日志

zcat access.log* | goaccess

如果需要分析某天的日志,例如10月5号那天的日志,我们让linux管道命令来大显身手^_^。

sed -n ‘/05\/Dec\/2010/,$ p’ access.log | goaccess -s –b

分析从11月5号到12月5号一个月内的日志

sed -n ‘/5\/Nov\/2010/,/5\/Dec\/2010/ p’ access.log | goaccess -s –b

当你不希望在服务器上安装goaccess程序,可以通过调用本地的goaccess程序来分析服务器上的日志(很神奇吧^_^):

ssh user@server ‘cat /var/log/apache2/access.log’ | goaccess -s -a

最让我兴奋的功能是goaccess支持排序!这样你就可以tab到request这个模块,而后按s,跳出来的对话框选择“Time Serverd”  “DESC”  这样你就可以非常清楚的知道你的网站是哪些页面响应很慢了!

附下我的NGINX日志格式:

log_format  main  ’$remote_addr – $remote_user [$time_local] “$request” ‘

            ‘$status $body_bytes_sent “$http_referer” ‘

            ‘”$http_user_agent” $request_time‘;

再附下我的~/.goaccessrc配置:

color_scheme 0
date_format %d/%b/%Y
log_format %h %^[%d:%^] “%r” %s %b “%R” “%u” %T

goaccess高级设定:

for Apache HTTP Server 预设设定:

CustomLog logs/access_log common可选Common Log Format (CLF)
CustomLog logs/access_log combined可选NCSA Combined Log Format

for Lighttpd mod_accesslog预设格式 : (需于GoAccess设定画面手动编辑Log Format)

Log Format: %h %^ %^ [%d:%^] “%r” %s %b “%R” “%u”
Date Format: %d/%b/%Y

完成设定后产生~/.goaccessrc,日后执行goaccess -f /var/log/httpd/access_log不会再跳出这个设定画面;若要修改设定,可加上-c参数,例如: goaccess -c -f / var/log/httpd/access_log或直接编辑设定档案vi ~/.goaccessrc

基本操作

# goaccess -f /var/log/httpd/access_log

t:回到顶端
b:卷到最末
q:关闭视窗或离开程式
上下方向键:卷动画面
数字键0 ~ 9,接着按英文字母o或右方向键:查看某项目的细节(*注)

*注: 0 表示第十项; Shift + 1 表示第十一项

排除统计某来源IP 
# goaccess -e 123.123.123.123 -f /var/log/httpd/access_log

检视Host详细资料的时候显示来自该Host的User-Agents资讯
# goaccess -a -f /var/log/httpd/access_log

产生HTML报表(静态报表) 
# goaccess -a -f /var/log/httpd/access_log > result.html

只统计来自某IP的记录
# grep ^123.123.123.123 /var/log/httpd/access_log | goaccess

注:目前GoAccess无法即时统计pipe进来的资料,日后改版或许会补强这部份(Ref: man goaccess )

refer:
http://www.cnblogs.com/yjf512/p/3640346.html

posted @ 2014-02-16 19:54  花儿笑弯了腰  阅读(1092)  评论(0编辑  收藏  举报