最近了解到一款Nginx日志分析工具GoAccess ,这里记录一下。

1 介绍

GoAccess 是一款开源(MIT许可证)的且具有交互视图界面的实时 Web 日志分析工具,通过你的 Web 浏览器或者 *nix 系统下的终端程序即可访问。

能为系统管理员提供快速且有价值的 HTTP 统计,并以在线可视化服务器的方式呈现。 GoAccess 解析指定的 Web 日志文件并将统计结果输出到 X 终端。功能如下:

  • 通用统计: 此面板展示了几个主要指标,比如:有效和无效请求的数量,分析这些数据所花费的时间,独立访客的情况,请求的文件,静态文件(CSS, ICO, JPG 等)的完整URL,404错误,被解析的日志文件的大小以及消耗的带宽。
  • 独立访客: 此面板按照日期展示了访问次数,独立访客数,以及累计消耗的带宽等指标。具有相同IP,相同访问时间,相同的 UserAgent 的 HTTP 请求将会被识别为独立访客。默认情况下包含了网络爬虫。 
    您也可以选择使用 --date-spec=hr 参数将按照日期分析修改为按照小时,例如:05/Jun/2016:16 。这对于希望在小时级别去跟踪每日流量非常有帮助。
  • 请求的文件: 此面板展示您服务器上被请求次数最多的文件。包含访问次数,独立访客数,百分比,累计消耗带宽,使用的协议,请求方式。
  • 请求的静态文件: 列出请求频率最高的静态文件类型,例如: JPGCSSSWFJSGIF, 和 PNG , 以及和上一个面板一样的其他指标。 另外静态文件可以被添加到配置文件中。
  • 404 或者文件未找到: 展示内容与之前的面板类似,但是其数据包含了所有未找到的页面,以及俗称的 404 状态码。
  • 主机: 此面板展示主机自身的详细信息。能够很好的发现不怀好意的爬虫以及识别出是谁吃掉了你的带宽。 
    扩展面板将向您展示更多信息,比如主机的反向DNS解析结果,主机所在国家和城市。如果开启了 参数,选择想查看的 IP 地址并按回车,将会显示 UserAgent 列表。
  • 操作系统: 此面板将显示主机使用的操作系统的信息。GoAccess 将尽可能尝试为每一款操作系统提供详细的信息。
  • 浏览器: 此面板将显示来访主机使用的浏览器信息。GoAccess 将尽可能尝试为每一款浏览器提供详细的信息。
  • 访问次数: 此面板按小时报告。因此将显示24个数据点,每一个均对应每一天的某一个小时。 
    使用 --hour-spec=min 参数可以设定为按每十分钟报告,并将以 16:4 的格式显示时间。这对发现服务器的峰值访问时段很有帮助。
  • 虚拟主机: 此面板将显示从访问日志中解析出来的不同的虚拟主机的情况。此面板仅在日志格式中启用了 %v 参数时显示。
  • 来路URL: 如果问题主机通过其他的资源访问了你的站点,以及通过从其他主机上的链接或者跳转到你的站点,则这些来路URL将会被显示在此面板。可以在配置文件中通过 `--ignore-panel` 开启此功能。(默认关闭)
  • 来路站点: 此面板将仅显示主机的部分,而不是完整的URL。
  • 关键字: 报告支持用在谷歌搜索,谷歌缓存,谷歌翻译上使用关键字。目前仅支持通过 HTTP 使用谷歌搜索。 可以在配置文件中通过 `--ignore-panel` 开启此功能。(默认关闭)
  • 地理位置: 根据 IP 地址判断地理位置。统计数据按照大洲和国家分组。需要地理位置模块的支持。
  • HTTP 状态码: 以数字表示的 HTTP 请求的状态编码。
  • 远程用户(HTTP验证) 通过 HTTP 验证来确定访问文档的权限。如果文档没有被密码保护起来,这部分将会显示为 “-”。此面板默认为开启,除非在日志格式变量中设置了参数 %e 。

标题

GoAccess 是一款轻量、快速的日志分析工具,可以很方便的用于 Nginx/Apache/IIS 等的日志分析上,可以直接在控制台中方便的查看分析结果,也可以将结果导出成 html、csv、json 等格式,甚至还可以支持控制台和 html 的实时刷新!可谓是非常之强大。

2 安装

GoAccess 的安装非常之简单,CentOS/Fedore 下直接执行 yum install goaccess 即可,Debian/Ubuntu 下使用 apt-get install goaccess,OS X 可以用 brew install goaccess 安装。

2.1、安装依赖包。

如果需要启用 IP 解析支持需要安装 geoip 库。CentOS 下执行:

  • $ yum install geoip-devel

GeoIP 在 Ubuntu 下的包名为 libgeoip-dev,其它系统详见官网下载页最后面的 Distribution Packages

2.2、下载源码并解压

https://goaccess.io/download

  • $ wget http://tar.goaccess.io/goaccess-1.0.2.tar.gz

2.3、配置并安装

  • $ ./configure --enable-geoip --enable-utf8
  • $ make
  • # make install

3 基本用法

3.1 直接在控制台查看日志分析结果

  • $ goaccess -f xxxx.log

或者

  • $ goaccess -a -d -f /data/logs/access.log -p /etc/goaccess.conf

会弹出来一个窗口选择日志格式,如果是 Nginx 标准的日志格式直接选择第一项即可(空格选中,回车确认)。

3.2 输出分析结果到 html 文件

下面的命令会使用默认的配置文件导出到 HTML,如果需要使用自己的配置文件,请添加 -p 参数。

  • $ goaccess -f xxxx.log -o xxxxx.html

或者
       $ goaccess -a -d -f /data/logs/access.log -p /etc/goaccess.conf -o /data/html/public/go-access.html

3.3 实时监控

需要在启动命令后追加--real-time-html --daemonize参数。

$ goaccess -a -d -f /data/logs/access.log -p /etc/goaccess.conf -o /data/html/public/go-access.html --real-time-html --daemonize# 监听端口7890
$ netstat -tunpl | grep "goaccess"
tcp   0   0 0.0.0.0:7890      0.0.0.0:*     LISTEN      21136/goaccess

以守护进程启动 GoAccess 后,使用 Websocket 建立长连接,它默认监听 7890 端口。

3.4 crontab定时监控

在某些场景下,没有这样的实时性要求,可采用 crontab 机制实现定时更新 HTML 报表。

# 每天执行
0 0 1 * * goaccess -a -d -f /data/logs/fanhaobai.com.access.log -p /etc/goaccess.conf -o /data/html/hexo/public/go-access.html 2> /data/logs/go-access.log

3.5 历史监控

当 access 日志被切割后,怎么合理使用 GoAccess 分析日志?

可以试试磁盘存储选项

  • --keep-db-files

    在磁盘上保存已解析的数据。如果数据库文件存在,则文件将被覆盖。此参数应用于第一个数据集。如果设置此参数为 false 则在退出程序时将删除所有数据库。示例见下文。

    仅在设置了 --enable-tcb=btree 时有效。

  • --load-from-disk

    从磁盘载入之前存储过的数据。如果仅读取已保存的数据,则需要退出数据库文件。参考 keep-db-files 即相关示例见下文。

    仅在设置了 --enable-tcb=btree 时有效。

  • --db-path <dir>

    设置磁盘数据库文件的存储路径。默认值为 /tmp 目录。

    仅在设置了 --enable-tcb=btree 时有效。

4 常用选项

4.1 文件选项

  • -f --log-file=<logfile> 指定日志文件的路径。
  • -p --config-file=<configfile> 指定配置文件的路径。 默认的配置文件位于 /usr/local/etc/goaccess.conf

4.2 解析选项

  • -d --with-output-resolver 在导出成 HTML 或 JSON 格式时启用 IP 地址解析
  • -e --exclude-ip <IP|IP-range> 排除的 IP 或 IP 段
  • -o --output=<json|csv|html> 指定输出的文件路径,根据后缀判定输出格式
  • -q --no-query-string 忽略 URL 后的面查询字符串
  • --ignore-crawlers 忽略爬虫

配置 HTML 实时刷新

演示地址

参考:

https://goaccess.cc/?mod=man

https://icewing.cc/post/goaccess-basic.html

https://www.fanhaobai.com/2017/06/go-access.html

GoAccess日志分析工具,适用于Nginx/Apache/IIS 等相关推荐

  1. goaccess 日志分析工具

    goaccess基本概述 GoAccess - 可视化 Web 日志分析工具 GoAccess 是一款开源(MIT许可证)的且具有交互视图界面的实时 Web 日志分析工具,通过你的 Web 浏览器或者 ...

  2. centos php日志分析,记录一下CentOS7安装GoAccess日志分析工具

    之前项目一直都在用这个日志分析工具,自己也曾搭建过.现在整理一下之前的安装使用过程. GoAccess是一个开源的实时网络日志分析器和交互式查看器,可在Linux终端或浏览器中运行.为系统管理员提供可 ...

  3. AWStats简介:Apache/Windows IIS的日志分析工具的下载,安装,配置样例和使用

    http://www.chedong.com/tech/awstats.html 你完全不必耐心看完所有内容:简要安装说明如下 安装 http://sourceforge.net/projects/a ...

  4. AWStats简介:Apache/Windows IIS的日志分析工具的下载,安装,配置样例和使用(含6.9中文定义补丁)...

    你完全不必耐心看完所有内容:简要安装说明如下 安装 http://sourceforge.net/projects/awstats/ 下载安装包后: GNU/Linux:tar zxf awstats ...

  5. AWStats简介:Apache/Windows IIS的日志分析工具的下载,安装,配置样例和使用(含6.9中文定义补丁)

    你完全不必耐心看完所有内容:简要安装说明如下 安装 http://sourceforge.net/projects/awstats/ 下载安装包后: GNU/Linux:tar zxf awstats ...

  6. GoAccess轻量nginx日志分析工具

    什么是GoAccess GoAccess 是一款开源.实时,运行在命令行终端下的 Web 日志分析工具. 该工具提供快速.多样的 HTTP 状态统计. 分析结果,可以通过 XShell 等客户端工具查 ...

  7. Nginx日志分析工具-GoAccess使用详解

    GoAccess简介 GoAccess 是一款开源的且具有交互视图界面的实时 Web 日志分析工具,能够实时快速分析和查看Web服务器统计信息,可以对指定的 Web 日志文件进行解析,形成html或者 ...

  8. Lamp——nginx日志分析工具goaccess

    nginx日志分析工具goaccess 编译安装goaccess 使用goaccess nginx日志内容太多.有必要使用分析工具goaccess,有助于高效查看分析日志内容. 编译安装goacces ...

  9. GoAccess - 可视化 Web 日志分析工具

    GoAccess - 可视化 Web 日志分析工具. 官方地址: https://www.goaccess.cc/ 一 语法 goaccess [filename] [ options ... ] [ ...

最新文章

  1. Gurobi Optimizer的安装教程
  2. SQL视频总结(2)
  3. 出现Press ENTER or type command to continue的原因
  4. CSP2021提高组复赛解析
  5. Sentinel 1.7.0 发布,支持 Envoy 集群流量控制
  6. SpringBoot2.1.5(14)---外部配置
  7. 开发一个大型后台管理系统,真的需要用前后端分离的技术方案吗?
  8. ASP.NET MVC搭建项目后台UI框架—1、后台主框架
  9. loj #6122. 「网络流 24 题」航空路线问题
  10. 高科技应用之人脸识别、,
  11. layui参考文档地址
  12. 计算机硕士-工资一览表
  13. 总结常见的10种破解密码方法
  14. 小目标检测--SNIP
  15. C语言:fflush()的用法以及缓冲区的概念
  16. 【12月原创】RT-thread - 柿饼UI ——范进中举
  17. 淘宝API接口:item_search_seller -搜索店铺列表
  18. Elasticsearch(7.0.0) percolate termQuery 不好使 (type:text default analyzer)
  19. 校招java实习生基础知识面试题
  20. 初识C语言 二(数据类型、变量和常量)

热门文章

  1. Eclipse导入xsd和dta文件实现配置文件自动提示
  2. 剔除半角字符和空格 java_去掉字符串中的全角,半角空格,回车,制表符
  3. 【专题5: 硬件设计】 之 【19.案例二:循环泵,滤波电容放电电路】
  4. 计算机专业英语张勇课后答案,专业英语lesson1”.ppt
  5. jar文件的打开方式
  6. 古典密码学与现代密码学
  7. macOS下malware移除实战之Qsearch浏览器劫持的移除
  8. 国外linux内核视频播放器,基于Video for Linux内核的USB摄像头视频信号采集实现
  9. Python爬虫-用迅雷下载电影
  10. AD20常见的原理图报错和PCB设计规则