文档章节

最佳Nginx日志分析工具Goaccess

m
 mrco
发布于 2013/12/05 14:50
字数 1031
阅读 28110
收藏 44

非常小又精悍的 Nginx 日志分析工具 Goaccess,处理速度非常快,我用 XShell 查看,还可以生成 html 报告,先看图

最佳 Nginx 日志分析工具 GoAccess   Best Nginx log analyzer a0266da1ac649a3a最佳 Nginx 日志分析工具 GoAccess   Best Nginx log analyzer 3a966303ef6baaf7最佳 Nginx 日志分析工具 GoAccess   Best Nginx log analyzer 4a9096e679782f92

最佳 Nginx 日志分析工具 GoAccess   Best Nginx log analyzer 9a8e462964e4da52最佳 Nginx 日志分析工具 GoAccess   Best Nginx log analyzer 39ca1719fc1c0c9c最佳 Nginx 日志分析工具 GoAccess   Best Nginx log analyzer 639a4ff93e05e519

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
最佳 Nginx 日志分析工具 GoAccess   Best Nginx log analyzer 03a6e8d1142c6916

也可以生成 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 )

Trouble Shooting

无法使用F1 检视help 讯息的替代方案

Ctrl + h

无法使用F10 完成设定画面的替代方案

vi ~/.goaccessrc

color_scheme 1
date_format %d/%b/%Y
log_format %h %^ %^ [%d:%^] "%r" %s %b "%R" "%u"

其他log_format 参考:

Common Log Format (CLF): %h %^[%d:%^] "%r" %s %b
Common Log Format (CLF) with Virtual Host: %^:%^ %h %^[%d:%^] "%r" %s %b
NCSA Combined Log Format: %h %^[%d:%^] "%r" %s %b "%R" "%u"
NCSA Combined Log Format with Virtual Host: %^:%^ %h %^[%d:%^] "%r" %s %b "%R" "%u"
W3C: %d %^ %h %^ %^ %^ %^ %r %^ %s %b %^ %^ %u %R

变更热键

cd /path/to/goaccess-0.5

vi goaccess.c

#将F1热键改为F2
找到[F1]Help [O]pen detail view 
改为[ F2 ]Help [O]pen detail view

找到Case 265: 
改为Case 266 :

vi commons.c

#将Help讯息的F1改为F2
找到” ^F1^ or ^CTRL^ + ^h^ [main help]“, 
改为” ^ F2 ^ or ^CTRL^ + ^h^ [main help]“,

vi goaccess.1

#将manpage的F1字眼改为F2
找到.IP “F1″ 
改为.IP “ F2 ”

vi settings.c

#将F10热键改为F9
找到mvwprintw (win, 2, 2, “[SPACE] to toggle – [F10] to proceed”); 
改为mvwprintw (win, 2, 2, “[SPACE] to toggle – [ F9 ] to proceed”);

找到Case 274: 
改为Case 273 :


© 著作权归作者所有

共有 人打赏支持
m
粉丝 0
博文 1
码字总数 1031
作品 0
成都
私信 提问
加载中

评论(4)

深爱着你们
深爱着你们
不错,正准备使用
forevervas
forevervas

引用来自“sidney9111”的评论

不错,有windows版本么
windows版看这里,http://wp.iyouths.org/306.html
sidney9111
sidney9111
就是图太小
sidney9111
sidney9111
不错,有windows版本么
利用GoAccess分析Nginx访问日志

原文链接:https://blog.csdn.net/yown/article/details/56027112 需求:及时得到线上用户访问日志分析统计结果,以便给开发、测试、运维、运营人员提供决策! 找了各种工具,最终还是觉得g...

大松哥
2018/06/24
0
0
goaccess实时查看nginx日志

目标 使用goaccess在浏览器上面实时查看nginx的日志。 步骤 安装goaccess 登录CentOS服务器,使用yum安装goaccess: centos7的yum中没有goaccess,接下来只有手动编译安装了。 安装依赖 手动安...

亚林瓜子
2018/12/27
0
0
nginx日志分析工具goaccess

goaccess是一个命令行下执行的nginx日志分析工具,找了篇文章参考安装 http://blog.chinaunix.net/uid-24250828-id-3369023.html 实际在安装运行过程中碰到几个问题(我的系统是centos 6.3):...

dijin
2013/09/13
0
0
nginx 访问日志分析工具 goacess

20150702 nginx 访问日志分析 goacess 1.安装GoAccess需要一些系统支持库 yum install glib2 glib2-devel GeoIP-devel ncurses-devel zlib zlib-devel 2.如果yum库找不到Geo-IP 那么需要单独......

hua_zi
2015/08/11
0
0
GoAccess分析多个nginx日志文件,了解访问的情况

需求:由于nginx日志一般都会做日志切割,所以需要对多个文件进行日志分析 1、 把所有的日志放到一个文件夹,如20171019-20171020 2、 将文件夹打包 tar -czvf 20171019-20171020.tar.gz 201...

maolujun
2017/10/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 我都想和他们组成一个家庭了

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @Sharon啊 :分享王菲的单曲《流年》有生之年狭路相逢终不能幸免,手心突然忽然长出纠缠的曲线。 《流年》- 王菲 手机党少年们想听歌,请使劲...

小小编辑
今天
363
12
CentOS7利用systemctl添加自定义系统服务

CentOS7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分,需要开机不登陆就能运行的程序,存在系统服务里,即:/usr/lib/systemd/system目录下. CentOS7的每...

linuxprobe16
今天
1
0
RabbitMQ入门

RabbitMQ是一个由erlang开发的基于AMQP(Advanced Message Queue)协议的开源实现。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面都非常的优秀。是当前最主流的消息中间...

watermelon11
今天
19
0
今天的学习

自动加载:方法一 function __autoload( $className ){在这里,完成加载B这个类文件的工作。}class A{} //这是一个类$a1 = new A(); //这里没有自动加载的发生,因为A这个类...

墨冥
今天
4
0
印刷工艺步骤

印刷厂从收到订单到交付整个流程,一般涉及到以下步骤 1.设计(经过软件如cdr,psd,ai等等设计需要印刷的名片,宣传单,画册等物料); 2.排版拼版(在电脑软件这区域完成); 3.出版、出硫...

focusone
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部