软件简介
GoAccess 是一个开源的实时网络日志分析器和交互式查看器,可以在 *nix 系统或通过浏览器的终端中运行。它为需要动态可视服务器报告的系统管理员提供快速且有价值的 HTTP 统计信息。
特性
使用 C 语言编写,快速、实时,毫秒/秒级的更新
只使用 ncurses 作为依赖
支持几乎所有的 Web 日志格式(Apache,Nginx,Amazon S3,Elastic Load Balancing,CloudFront 等)
轻松设置日志格式
美观的的终端和 dashboard
通过了 Valgrind 测试
https://goaccess.io/download
centos8 安装
yum install epel-release
yum install GeoIP* ncurses-devel -y
$ wget https://tar.goaccess.io/goaccess-1.4.2.tar.gz
$ tar -xzvf goaccess-1.4.2.tar.gz
$ cd goaccess-1.4.2/
$ ./configure --enable-utf8 --enable-geoip=legacy
$ make
# make install
goaccess -h
-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
生成实时 HTML 报告的过程和生成静态报告的过程非常相似。实时报告仅仅需要使用参数 --real-time-html goaccess access.log -o
/usr/local/nginx/html/report
.html --real-
time
-html --
time
-
format
=
'%H:%M:%S'
--
date
-
format
=
'%d/%b/%Y'
--log-
format
=COMBINED
浏览器上查看
General Statistics:此面板提供了几个指标的摘要,其中一些包括:有效和无效请求的数量,分析数据集所花费的时间,唯一访问者,请求的文件,静态文件(CSS,ICO,JPG等)HTTP引用,404s,已解析日志文件的大小和带宽消耗。
Unique visitors:此面板显示点击次数,唯一身份访问者和每个日期的累积带宽等指标。包含相同IP,相同日期和相同用户代理的HTTP请求被视为唯一访问者。默认情况下,它包括网络爬虫/蜘蛛。 可以使用--date-spec = hr将日期特异性设置为小时级别,这将显示日期。如果您想跟踪小时级别的每日流量,这非常棒。
Requested files:此面板显示Web服务器上请求最多的文件。它显示了匹配,唯一身份访问者和百分比,以及累积带宽,协议和使用的请求方法。
Requested static files:列出了最常用静态文件,如:JPG,CSS,SWF,JS,GIF,和PNG文件类型,使用相同的指标作为最后的面板一起。可以将其他静态文件添加到配置文件中。
404 or Not Found:显示与先前请求面板相同的指标,但是,其数据包含在服务器上找不到的所有页面,或通常称为404状态代码。
Hosts:此面板包含有关主机本身的详细信息。这非常适合发现×××性爬虫,并确定谁在吃你的带宽。 扩展面板可以显示更多信息,例如主机的反向DNS查找结果,原产国和城市。如果-a启用了参数,则可以通过选择所需的IP地址,然后按Enter来显示用户代理列表。
Operating Systems:此面板将报告主机在到达服务器时使用的操作系统。它试图提供每个操作系统的最具体版本。
Browsers:此面板将报告主机在访问服务器时使用的浏览器。它试图提供每个浏览器的最具体版本。
Visit Times:此面板将显示每小时报告。此选项显示24个数据点,每天一小时一个。 可选地,可以使用--hour-spec = min将小时特异性设置为十分之一水平,这将显示小时为16:4如果您想要发现服务器上的流量峰值,这很好。
Virtual Hosts:此面板将显示从访问日志中解析的所有不同虚拟主机。如果在日志格式字符串中使用%v,则会显示此面板。
Referrers URLs:如果相关主机通过其他资源访问了网站,或者是从其他主机链接/转移给您,则会在此面板中提供引用它们的网址。请参阅`--ignore-panel`配置文件以启用它。 (默认禁用)
Referring Sites:此面板仅显示主机部分,但不显示整个URL。请求来自的URL。
Keyphrases:它报告了用于Google搜索,Google缓存和Google翻译的关键字,这些关键字已导致您的网络服务器。目前,它仅通过HTTP支持Google搜索查询。请参阅`--ignore-panel`配置文件以启用它。 (默认禁用)
Geo Location:确定IP地址在地理位置的位置。统计数据按大陆和国家分列。它需要使用GeoLocation支持进行编译。
HTTP Status Codes:HTTP请求的数字状态代码的值。
Remote User (HTTP authentication):这是HTTP身份验证确定的请求文档的人员的用户ID。如果文档没有密码保护,则此部分将为“ - ”,就像前一个部分一样。除非%e在log-format变量中给出,否则不会启用此面板。