日志分析工具goaccess

提到web服务器就不得不说nginx。这款由俄罗斯人开发的小巧的web服务软件近几年来风靡大江南北;成为许多草根站长建设网站的首选。但由于历史原因,nginx在日志分析工具相较于传统的apache、lighthttp等要匮乏的多。

作为性能测试工程师的我,无论在性能分析还是在测试环境维护都离不开日志的分析,所以逼得我必须掌握日志分析的技巧,当然简单的命令必不可少,简单的分析命令足以搞定,但是作为比较复杂的命令分析命令还是有点力不从心,毕竟自己的shell脚本编写能力还没达到那种水平,下面我就介绍一款比较小巧的nginx日志分析工具:goaccess。

日志分析工具goaccess

持的日志格式

目前,这款软件支持Common Log Format (CLF) 和 Combined Log Format(XLF/ELF) 格式的日志。分析传统的apache格式日志当然毫无问题。同时,只要将nginx的日志格式定义为apache格式,对它的分析也不在话下(目前,redhat提供的nginx软件包默认日志格式和apache基本一致)

   安装使用:

    下载地址:http://download.csdn.net/detail/gzh0222/4230793

tarzxvf goaccess-0.4.2.tar.gz
 
cdgoaccess-0.4.2
 
#启动ip归属地查询、和utf8编码格式支持
 
./configure–enalbe-geoip –enable-utf8
 
make&&makeinstall

用法介绍

GoAccess的基本语法如下:

goaccess [ -b ][ -s ][ -e IP_ADDRESS][ - a ] <-f log_file >

参数说明:

  •  -f – 日志文件名
  •  -b – 开启流量统计,如果希望加快分析速度不建议使用该参数
  •  -s – 开启HTTP响应代码统计
  •   -a – 开启用户代理统计
  •  -e – 开启指定IP地址统计,默认禁用

 

用法示例:

最简单、常用的命令就是直接调用goaccess命令啦,不带任何影响效率的其他参数

goaccess –f access.log

 

如果需要查看其他信息,我们加入如下参数以显示HTTP响应代码、用户代理、流量消耗

goaccess –f access.log –s –a –b

 

如果你觉得这样还不能满足你的需求。别急,goaccess支持linux管道(Pipe),我们可以将日志文件预处理后,再交给goaccess去分析。

 

zcat access.log.1.gz | goaccess

让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 -b

GoAccess日志分析的速度

大部分服务器对日志分析的速度都比较敏感,如果在分析日志时造成服务器其他服务的不稳定,那还不如不用呢。据GoAccess官方的说法:使用AMD Sempron 2.31GHz的CPU+2GB内存,开启GoAccess所有功能,该软件每秒可以处理10万行日志。当然,如果使用的CPU更强劲,拥有更多的内存,GoAccess的表现会更加出色。

你可能感兴趣的:(日志分析,GoAccess)