GoAccess用户文档

一、 GoAccess概述

1.1 GoAccess概述

goaccess是一个实时的web日志分析器,以及交互式查看器,在类Unix系统的终端(terminal)上运行,是一个基于GPL的自由软件。为需要可视化服务器报告的系统管理员提供快速而重要的HTTP统计信息。首先它会解析web日志文件,从被解析文件中收集数据,然后展示在控制台(console)或者X终端上。收集到的信息会在一个可视化/交互式的窗口中展示给用户,包括:

一般统计

该面板提供了几个指标的摘要,其中一些是有效和无效请求的数量,分析数据集所用的时间,唯一的访问者,请求的文件,静态文件(CSS,ICO,JPG等)HTTP引用,404,解析的日志文件的大小和带宽消耗。

唯一身份访问者

此面板显示匹配,独特访问者和每日日期的累积带宽等指标。包含相同IP,相同日期和相同用户代理的HTTP请求被认为是唯一的访问者。默认情况下,它包括Web抓取器/蜘蛛。 可选地,可以使用-date-spec
= hr将时间特性设置为小时级别,这将显示诸如05 / Jun / 2016:16之类的日期。如果您希望在小时级别跟踪您的每日流量,这是非常好的。

请求的文件

此面板显示Web服务器上最高请求的文件。它显示命中,唯一访问者和百分比,以及累积带宽,协议和使用的请求方法。

请求的静态文件

列出了最常用静态文件,如:JPG,CSS,SWF,JS,GIF,和PNG文件类型,使用相同的指标作为最后的面板一起。附加的静态文件可以添加到配置文件中。

404或Not Found

显示与先前请求面板相同的指标,但是其数据包含服务器上未找到的所有页面,或通常称为404状态代码。

主机

该面板有关主机本身的详细信息。这是伟大的发现积极的爬虫和识别谁在吃你的带宽。

扩展面板可以显示更多的信息,如主机的反向DNS查询结果,原籍国和城市。如果-a启用参数,可以通过选择所需的IP地址,然后按ENTER键显示用户代理列表。

操作系统

该面板将报告主机在服务器上使用的操作系统。它试图提供每个操作系统的最具体的版本。

浏览器

此面板将报告主机在服务器上使用的浏览器。它试图提供每个浏览器的最具体的版本。

访问次数

此面板将显示小时报告。此选项显示24个数据点,每天每个小时一个。

可选地,小时特异性可以使用-hour-spec
= min设置为十分之一秒,这将显示小时为16:4如果要在服务器上发现流量峰值,这是非常好的。

 

虚拟主机

此面板将显示从访问日志解析的所有不同的虚拟主机。如果在日志格式字符串中使用%v,则会显示此面板。

引荐来源网址

如果有问题的主机通过其他资源访问了该网站,或者是从另一个主机访问了该网站,则该引用的URL将在此面板中提供。请参阅`--ignore-panel`配置文件以启用它。
(默认情况下禁用)

引荐来源站点

此面板将仅显示主机部分,但不显示整个URL。请求来自的URL。

关键短语

它报告了谷歌搜索,Google缓存和谷歌翻译使用的关键短语,导致您的网络服务器。目前,它只支持通过HTTP的Google搜索查询。请参阅`--ignore-panel`配置文件以启用它。
(默认情况下禁用)

地理位置

确定地理位置在哪里。统计数据按大陆和国家分列。它需要使用GeoLocation支持进行编译。

 

HTTP状态代码

HTTP请求的数字状态代码的值。

远程用户(HTTP认证)

这是通过HTTP认证确定请求文档的人的用户标识。如果文档没有密码保护,这部分将是“ - ”,就像上一个。除非%e在日志格式变量中给出,否则此面板不启用。

二、安装GoAccess

参考官方安装步骤:https://goaccess.io/download

2.1 依赖安装

GoAccess在使用源码安装时,依赖下列组件。

2.1.1、为方便最终日志统计时显示IP地理位置,需要安装依赖项GeoIP-devel:

执行命令:yum install
GeoIP-devel.x86_64

2.1.2 安装ncurses-devel开发库:

执行命令:yum install ncurses-devel

2.1.3 安装tokyocabinet-devel开发库:

执行命令:yum install tokyocabinet-devel

2.1.4 安装openssl-devel开发库:

执行命令:yum install openssl-devel

2.2 下载并安装GoAccess:

通过cd命令切换到/usr/local/src目录下,然后使用root权限执行命令:

wget http://tar.goaccess.io/goaccess-1.2.tar.gz

下载之后,执行解压命令:

tar -zvxf ./goaccess-1.2.tar.gz

然后执行 cd
./goaccess-1.2
进入目录。

执行命令:./configure --enable-utf8 --enable-geoip=legacy

执行命令:make

执行命令:make install

安装完后,可以执行命令:ln /usr/local/bin/goaccess
/usr/bin/

安装完成后,相关目录:

可执行程序:/usr/local/bin/goaccess

配置文件:/usr/local/etc/goaccess.conf

其它文件:/usr/local/share/doc/goaccess

手册:/usr/local/share/man/man1

三、自定议日志/日期格式

3.1使用方式

3.1.1最简单且最快速的用法:

# goaccess access.log

3.1.2生成一个HTML报告:

# goaccess access.log -a -o report.html

3.1.3生成一个JSON报告:

# goaccess access.log -a -d -o report.json

3.1.4生成一个CSV报告:

# goaccess access.log --no-csv-summary -o report.csv

3.1.5如果我们想为GoAccess增加更多的灵活性,可以使用一系列的管道。例如:

另一个有用的管道是根据日期过滤web日志。

如下命令将得到日志文件中2017年07月31日的所有HTTP请求:

# sed -n '/31\/Jul\/2017/,$ p' access.log | goaccess -a

如果想仅解析从日期a到日期b的一个特定时限的日志,则可以:

# sed -n '/30\/Jul\/2017,/31\/Jul\/2017/ p' access.log | goaccess -a

注意这一命令依赖于sed的速度,可能需要更长的解析时间。

另外,值得指出,如果想以更低的进程调度优先级运行GoAccess,可以这样执行:

# nice -n 19 goaccess -f access.log -a

3.1.6实时HTML输出

# goaccess access.log -o /usr/share/nginx/html/site/report.html --real-time-html
或者,对于Httpd:
# goaccess access.log -o /usr/www/html/report.html --real-time-html

默认情况下,GoAccess监听端口是7890,您可以通过—port=xxx修改端口。

# goaccess access.log -o report.html --real-time-html --port=xxx

3.2 交互式菜单

  • F1 主帮助页面
  • F5 重绘主窗口
  • q 退出程序或者当前{详细视图}(窗口)
  • 打开当前激活模块的详细视图
  • c 设置或改变配色方案
  • TAB 向前迭代模块。从当前激活模块开始。
  • SHIFT + TAB 向后迭代模块。从当前激活模块开始。
  • RIGHT ARROW 打开当前激活模块的详细视图
  • 0-9 激活模块,这样用户就可以使用^o^或^RIGHT ARROW^打开{详细视图}
  • SHIFT + 0-9 激活超过10的模块
  • s 根据日期进行独立访客排序。仅在独立访客模块(1)有效。
  • S 根据点击数进行独立访客排序。仅在独立访客模块(1)有效。
  • / 向前在任意{详细视图}窗口搜索输入模式(pattern)。
  • n 在任意{详细视图}窗口中找到下一次出现的位置。
  • t 跳到第一个条目或屏幕顶端
  • b 跳到最后一个条目或者屏幕底部

3.3 日期格式(date_format)

空格之后的date_format变量指定了包含常规字符和特殊格式说明符的任意组合。这些字符都以百分号(%)开始。详见:man strftime

  • %a    星期几的简写形式
  • %A   星期几的全称
  • %b   月份的简写形式
  • %B   月份的全称
  • %c    日期和时间
  • %d   月份中的日期,0-31
  • %H   小时,00-23
  • %I     12进制小时钟点,01-12
  • %j     年份中的日期,001-366
  • %m  年份中的月份,01-12
  • %M  分,00-59
  • %p   上午或下午
  • %S    秒,00-60
  • %u   星期几,1-7
  • %w   星期几,0-6
  • %x    当地格式的日期
  • %X   当地格式的时间
  • %y    年份中的最后两位数,00-99
  • %Y   年
  • %Z   地理时区名称

3.4 日志格式(log_format)

日志格式(log_format)

空格之后的date_format变量指定了日志格式字符串。

  • %x 与时间格式和日期格式变量匹配的日期和时间字段。当使用时间戳而不是日期和时间在两个单独的变量中时使用这个。
  • %t 时间字段匹配time_format变量。
  • %d 匹配date_format变量的日期域。
  • %D 服务请求所用的时间,以微秒为单位。
  • %e 这是通过HTTP认证确定请求文档的人的用户ID。
  • %h 主机(客户端IP地址,IPv4或IPv6)。
  • %r 来自客户端的请求行。这需要围绕请求的特定分隔符(单引号,双引号等)可解析。否则,请使用特殊格式说明符(如%m,%U,%q和%H)的组合来解析各个字段。
  • %m 请求方式。
  • %U请求的URL路径。
  • %q查询字符串。
  • %H请求协议。
  • %s 服务器返回给客户端的状态码。
  • %b 返回给客户端的对象大小。
  • %R RefererHTTP请求头。
  • %u 用户代理HTTP请求头。
  • %^ 忽略该域。
  • %T 服务请求所需的时间,以秒为单位,以毫秒为单位。
  • %L 服务请求所需的时间,以毫秒为单位,为十进制数。
  • %~ 向前移动日志字符串,直到找到一个非空格(!isspace)字符
  • ~h X-Forwarded-For(XFF)字段中的主机(客户端IP地址,IPv4或IPv6)。

Linux下GoAccess的安装与全部用法的更多相关文章

  1. Linux下软件常见安装方式

    pasting  分类: Linux2007-12-08 16:31 1909人阅读 评论(0) 收藏 举报 linuxredhat脚本文档managerfile        Linux下软件安装主 ...

  2. Linux下命令行安装weblogic10.3.6

    Linux下命令行安装weblogic10.3.6 一.安装前准备工作: 1.创建用户useradd weblogic;创建用户成功linux系统会自动创建一个和用户名相同的分组,并将该用户分到改组中 ...

  3. Linux下MongoDB服务安装

    Linux下MongoDB服务安装 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案.MongoDB是一个介于关系数据库和非关系数据 ...

  4. Windows下的Memcache安装 linux下的Memcache安装

    linux下的Memcache安装: 1. 下载 memcache的linux版本,注意 memcached 用 libevent 来作事件驱动,所以要先安装有 libevent. 官方网址:http ...

  5. linux下subversion server安装手册

    linux下subversion server安装手册 安装基于的Linux版本为:Red Hat Enterprise Linux Server release 6.3. 一 准备需要的安装包. ( ...

  6. Linux下Perl的安装(转)

    原文地址:Linux下Perl的安装 今天在虚拟机测试shell脚本的时候,有些命令使用不了. 比如说 mysqlhotcopy ,它提示Perl的版本太低. 我用的 RedHat9 的Perl才5. ...

  7. 细说Linux下软件包的安装与管理

    一 源码安装方式      由于linux操作系统开放源代码,因而在其上安装的软件大部分也都是开源软件,例如apache.tomcat.php等软件.开源软件基本都提供源码下载,源码安装的方式:源码安 ...

  8. Linux下Qt的安装与配置

    参考资料:http://www.cnblogs.com/emouse/archive/2013/01/28/2880142.html Linux 下编译.安装.配置 QT 下载qt 这里用的是4.7. ...

  9. Linux下OpenSSL的安装与使用

    Linux下OpenSSL的安装与使用 OpenSSL简介 OpenSSL是一个SSL协议的开源实现,采用C语言作为开发语言,具备了跨平台的能力,支持Unix/Linux.Windows.Mac OS ...

随机推荐

  1. [官方摘要]Setup And Configuration memcached with Tomcat

    原文地址:https://code.google.com/p/memcached-session-manager/wiki/SetupAndConfiguration SetupAndConfigur ...

  2. JavaScript 检查IP

    //---------------------------------------------------------- // 功能:检查IP // 参数: // strpart ip地址 // 返回 ...

  3. 使用PHP+Sphinx建立高效的站内搜索引擎

      1.    为什么要使用Sphinx   假设你现在运营着一个论坛,论坛数据已经超过100W,很多用户都反映论坛搜索的速度非常慢,那么这时你就可以考虑使用Sphinx了(当然其他的全文检索程序或方 ...

  4. .NET:使用 XPATH 读取有 xmlns 属性的 XML 文档出现的问题

    问题 xml <sqlMap namespace="WHTR.Dao.Accounts" xmlns="http://ibatis.apache.org/mappi ...

  5. [转]缓慢但胜在稳健,HBase大势已成

    CSDN Hbase : http://www.csdn.net/tag/hbase 在NoSQL数据库领域,统治产品无疑当属MongDB和DataStax Enterprise(一个领先的Apach ...

  6. vmware桥接模式

    vmware桥接模式 桥接网络是指本地物理网卡和虚拟网卡通过VMnet0虚拟交换机进行桥接,物理网卡和虚拟网卡在拓扑图上处于同等地位,那么物理网卡和虚拟网卡就相当于处于同一个网段,虚拟交换机就相当于一 ...

  7. spring学习之@SessionAttributes

    一.@ModelAttribute 在默认情况下,ModelMap 中的属性作用域是 request 级别是,也就是说,当本次请求结束后,ModelMap 中的属性将销毁.如果希望在多个请求中共享 M ...

  8. javascript中使用new与不使用实例化对象的区别

    我们先来看个实例 function Me(name,age,job){ this.name = name; this.age = age; this.job = job; } 请问这以下两种实例化对象 ...

  9. 看看Spring的源码(二)——bean实例化

    首先来看一段代码,看过上一节的朋友肯定对这段代码并不陌生.这一段代码诠释了Spring加载bean的完整过程,包括读取配置文件,扫描包,加载类,实例化bean,注入bean属性依赖. public v ...

  10. HttpWebRequest 对象池 HTTP协议 HttpWebRequest和 Socket的一点总结

    相信接触过网络开发的人对HTTP.HttpWebRequest.Socket这些东西都不陌生吧.它们之间的一些介绍和关系我这里都忽略了.开我们平时开发过程中也是很少有机会接触大什么大并发这个东东,一般 ...