文档章节

nginx日志分析工具 goaccess-nginx

鱼煎
 鱼煎
发布于 2016/09/22 12:33
字数 1269
阅读 74
收藏 9

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

笔者今天在这里为各位介绍一个牛X的实时日志分析工具GoAccess。不仅安装简单,功能强大,并且支持nginx日志格式。实在是草根站长们手中又一犀利武器,不可不备^_^。

目前主流的日志分析工具多采用html格式呈现给网站管理者或用户。这样的做法无可厚非;既然开通了网站,通过浏览器查看访客详情也符合逻辑。但,这类工具的缺点也十分明显,实时性较差。为了提高服务器效能,管理员多会按时归档日志统计信息。这样一来,很多故障信息都无法实时分析。如果管理员登录了文字界面的Linux,查看起来就更方便了。

特色简介

使用GoAccess就不会有这样的困扰啦。各位可以把它作为传统日志分析工具很好的补充。在X windows或text mode下实时查看访客详情,显示界面很友好;GoAccess表示毫无压力^_^。

目前,我们可以通过这款软件查看的统计信息有:

  • 统计概况,流量消耗等
  • 访客排名
  • 动态Web请求
  • 静态web请求,如图片、样式表、脚本等。
  • 来路域名
  • 404 错误
  • 操作系统
  • 浏览器和搜索引擎
  • 主机、DNS和ip地址
  • HTTP 响应代码
  • 引荐网站
  • 键盘布局
  • 自定义显示
  • 支持超大日志(分析速度很快)

goaccess_screenshot3M-03L

支持的日志格式

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

goaccess_01

GoAccess安装注意事项

使用DebianUbuntu的同学可以直接通过apt-get来下载安装软件。自动解决软件的依赖问题。Redhat或CentOS用户可以有现成rpm包下载安装;但需要手动解决软件依赖。

下面笔者着重介绍下在类Redhat系统下如何编译安装GoAccess:

需要用到的几个库文件有:

  1. glib2
  2. GeoIP
  3. ncurses

这些都时常用的库文件,直接yum安装就能搞定:

yum install glib2 glib2-devel GeoIP-devel ncurses-devel

wget http://sourceforge.net/projects/goaccess/files/0.5/goaccess-0.5.tar.gz/download
tar zxvf goaccess-0.5.tar.gz
cd goaccess-0.5
./configure --enalbe-geoip --enable-utf8
make && make install

如果你使用的服务器版本不在以上四个之列,可以去官网的Download页面查看相应的安装方式,目前支持的还有git、FreeBSD等。

用法介绍

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-general

GoAccess日志分析的速度

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

本文转载自:

鱼煎
粉丝 15
博文 214
码字总数 40364
作品 0
深圳
技术主管
私信 提问
最佳Nginx日志分析工具Goaccess

非常小又精悍的 Nginx 日志分析工具 Goaccess,处理速度非常快,我用 XShell 查看,还可以生成 html 报告,先看图 GoAccess 在 CentOS 上的安装方法: 1. 需要安装 GeoIP, ncurses, glib2, 一...

mrco
2013/12/05
0
4
goaccess实时查看nginx日志

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

亚林瓜子
2018/12/27
0
0
利用GoAccess分析Nginx访问日志

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

大松哥
2018/06/24
0
0
nginx日志分析工具goaccess

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

dijin
2013/09/13
0
0
GoAccess分析多个nginx日志文件,了解访问的情况

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

maolujun
2017/10/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

微信小程序和百度小程序开发的一些不同点

1: initActive从onload放到onready中 2: bindtap='{{childTickeData.freeadd?"childticket":""}}',语法错误。会导致页面加载不出来,而且也不报任何错。 3:使用搬家工具,支付api名称转换......

醉雨
19分钟前
1
0
最近执行过的SQL语句查询

SELECT TOP 1000 ST.text AS '执行的SQL语句' , QS.execution_count AS '执行次数' , QS.total_elapsed_time / 10000 AS '耗时' , QS.total_logical_reads AS '逻辑读取次数' , QS.total_lo......

神手--追魂
20分钟前
2
0
从濒临解散到浴火重生,OceanBase 这十年经历了什么?

阿里妹导读:谈及国产自研数据库,就不得不提 OceanBase。与很多人想象不同的是,OceanBase 并非衔着金钥匙出生的宠儿。相反,它曾无人看好、困难重重,整个团队甚至数度濒临解散。 从危在旦...

阿里云官方博客
24分钟前
1
0
阿里开发者招聘节 | 面试题02-04:给定一个二叉搜索树(BST),找到树中第K小的节点

为帮助开发者们提升面试技能、有机会入职阿里,云栖社区特别制作了这个专辑——阿里巴巴资深技术专家们结合多年的工作、面试经验总结提炼而成的面试真题这一次将陆续放出(面试题官方参考答案...

阿里云云栖社区
40分钟前
3
0
使用Redis SETNX 命令实现分布式锁

基于setnx和getset http://blog.csdn.net/lihao21/article/details/49104695 使用Redis的 SETNX 命令可以实现分布式锁,下文介绍其实现方法。 SETNX命令简介 命令格式 SETNX key value 将 ke...

彬彬公子
41分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部