用GoAccess分析Nginx的日志

GoAccess是什么?

GoAccess是一款开源、实时,运行在命令行终端下的web日志分析工具。该工具提供快速、多样的HTTP状态统计,可以令管理员不再纠结于统计各类数据和繁杂的指令以及一大堆管道/正则表达式。

GoAccess功能一览

  • 生成统计数据,带宽统计等
  • 每个请求的时间统计
  • 最高访问ip
  • 请求的文件统计
  • 请求的静态文件、图片、flash、js文件等
  • 各HTTP状态码统计
  • Hosts,反向DNS,IP所在地
  • 操作系统
  • 浏览器/蜘蛛
  • 引用的网站
  • 引用的URLs
  • 关键词组
  • 地理位置 (大陆、国家、城市)
  • 可输出JSON或CSV
  • 各种的颜色主题
  • 支持大容量数据且支持大容量数据的持续分析
  • 支持IPv6
  • 可生成HTML报告

开始使用

如果想从源码编译:

wget http://tar.goaccess.io/goaccess-0.8.1.tar.gz
tar -xzvf goaccess-0.8.1.tar.gz
cd goaccess-0.8.1/
./configure --enable-geoip --enable-utf8
make && make install

或是

yum install -y goaccess

用Access来分析Nginx日志

然后就可以开始使用GoAccess了。

首先,进入nginx的日志目录,如/var/log/nginx,输入如下命令让goaccess打开指定文件:

goaccess -f access.log

打开之后会跳出选择日志文件类型的界面:

Nginx日志是属于Combined Log Format (XLF/ELF)类型的,所以我们选择第三个。用上下光标移动,空格选中,回车确定。

进入了主界面:

键盘操作:

  • F1h:帮助
  • F5 :刷新主界面
  • q:退出程序/当前窗口/折叠当前模块
  • oEnter:展开选中的模块或窗口
  • 0-9以及Shift + 0:将选中的模块或窗口激活
  • kj:模块内部移动
  • c:修改配色
  • ^f^b:模块中上下滚屏
  • tab shift+tab:前后切换模块
  • s:模块内部排序选择
  • /:在所有模块中搜索(支持正则)
  • n:找到下个匹配
  • gG:跳到第一项/最后一项

命令行下相关:

在使用goaccess命令行前,我们必须配置日志文件的解析格式,因为此处没有界面来让你选择日志格式了。

看一下日志格式:

220.171.104.18 - - [11/Mar/2016:17:20:07 +0800] "GET /templets/smore/images/top.png HTTP/1.1" 304 0 "http://www.test.cn/lines/show_4.html" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36"

现在修改配置文件添加:

vi /etc/goaccess.conf 

time-format %T
date-format %d/%b/%Y
log-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u"

要实时性的实现日志分析则运行如下命令:

goaccess -f /var/log/nginx/access.log

想看某天的则可以打印html报告:

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

由于nginx会自动压缩日志,一下命令可以直接分析压缩后的日志:

zcat access.log.*.gz | goaccess
#或者
zcat -f access.log* | goaccess

参考链接:

https://www.fancycoding.com/log-analyse-using-goaccess/

http://www.mamicode.com/info-detail-923728.html

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

时间: 2024-10-11 00:16:20

用GoAccess分析Nginx的日志的相关文章

在Linux中使用GoAccess分析Nginx的日志

一 GoAccess简介 GoAccess是一款日志分析工具,可以用来分析Apache,IIS,Nginx的日志,或者一些其他web服务的日志.其特点是安装简单,使用方便,分析速度快 二 GoAccess的安装 (1)下载: [[email protected] src]# wget http://sourceforge.net/projects/goaccess/files/0.7.1/goaccess-0.7.1.tar.gz (2)安装依赖的库文件: [[email protected] 

使用GoAccess分析Nginx日志以及sed/awk手动分析实践

前言 使用Nginx的网站可能会遇到访问流量异常.被友情检测.程序出现Bug等各种突然情况,这时大家的反应想必都是第一时间分析日志,然后发现日志有几十GB之多,又需要按照时间.错误类型或者关键字段检索信息时会不会有种醍醐灌顶.菊花一紧的错觉.文中介绍的方法不管是GoAccess还是sed/awk虽然可以解决一时的问题但未必能够治本,也许ELK(Logstash+ElasticSearch+Kibana)对我们大多数人来说是更合理的集中化日志管理解决方案. 日志固然重要,但努力建设适合业务发展的集

goaccess分析nginx日志

最近想用goaccess来分析下nginx日志,但是苦于nginx日志配置格式不是按照正常格式来的,完全是我们按照自己的需求来写的,所以导致goaccess分析不了,需要自己重新定义下格式:但是网上虽然介绍goaccess的很多,但是大多都是就重避轻,将格式的自定义忽略掉,因此我就来把自定义这块说下,希望能够帮助到大家. 首先附上goaccess的官方使用说明及参数介绍,直接安装官方文档来配置才最省事. http://goaccess.io/manual.php#synopsis 1.安装 yu

logstash grok 分析 nginx access 日志

为了便于量化分析nginx access日志,使用logstash 进行筛选匹配 1.确定nginx 日志格式     log_format access '$remote_addr - $remote_user [$time_local] '               '$http_host $request_method $uri '               '$status $body_bytes_sent '               '$upstream_status $ups

分析nginx大日志文件,python多线程必备! .

还在为分析nginx大日志犯愁吗?也许你会想到用shell处理,1G文件没有问题,上了10G文件,会消耗很久时间,用shell结合python多线程处理没有错. 什么都不用说了,直接上代码了 #!/usr/bin/python #coding:utf8 import threading     #载入多线程模块 import time          #载入时间模块 import os            #载入os模块 import shutil        #载入shutil模块 im

采集并分析Nginx访问日志

日志服务支持通过数据接入向导配置采集Nginx日志,并自动创建索引和Nginx日志仪表盘,帮助您快速采集并分析Nginx日志. 许多个人站长选取了Nginx作为服务器搭建网站,在对网站访问情况进行分析时,需要对Nginx访问日志统计分析,从中获取网站的访问量.访问时段等访问情况.传统模式下利用CNZZ等方式,在前端页面插入js,用户访问的时候触发js,但仅能记录访问请求.或者利用流计算.离线统计分析Nginx访问日志,但需要搭建一套环境,并且在实时性以及分析灵活性上难以平衡. 日志服务在支持查询

命令分析nginx访问日志的用法

awk分析日志常用高级使用命令方法 分析访问日志(Nginx为例) 日志格式: '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for"' 统计访问IP次数: # awk '{a[$1]++}END{for(i

linux系统centOS6.5使用goaccess工具分析nginx网站日志

网站的log日志分析是每个站长经常做的必备工作,通过网站日志文件我们可以分析各大搜索引擎对网站的爬取情况.最近我的网站做了一些调整,所以想看下日志文件,但因为网站服务器环境是LNMP,所以我就找了一款nginx日志文件分析工具--goaccess.本文我们将一起分享如何在linux(centos)中安装goaccess来分析网站日志. 准备工作: 系统:CentOS6.5(我在本地搭建的虚拟机) web服务:nginx 日志文件:access.log文件(从自己的环境中拷贝具体日志文件) 工具:

使用hive分析nginx访问日志方法

以下案例是使用hive分析nginx的访问日志案例,其中字段分隔通过正则表达式匹配,具体步骤如下: 日志格式: 192.168.5.139 - - [08/Jun/2017:17:09:12 +0800] "GET //oportal/static/ui/layer/skin/default/icon.png HTTP/1.1" 200 9905 http://192.168.100.126//oportal/static/ui/layer/skin/layer.css "M