钧言极客钧言极客

钧言极客

使用 GoAccess 实时可视化分析web网站访问日志

一直在羡慕宝塔的来源统计,但是功能都收费。由于使用第三方的统计可能会产生隐私问题,并没有在网站部署什么网络统计这些。之前折腾过阿里云的日志分析,但是产生费用也是挺吓人,无奈抛弃。固然付费不行,那就转向免费的软件,这里在Github找到GoAccess,下面来分享一下使用心得。

GoAccess 是一款开源的且具有交互视图界面的实时 Web 日志分析工具,通过你的 Web 浏览器或者 *nix 系统下的终端程序(terminal)即可访问。C语言编写,几乎支持所有 Web 日志 格式 (Apache,Nginx,Amazon S3,CloudFront`,等等)还可以生成HTML、JSON、CSV等等多种输出格式。

安装方法

安装方法大致分为两种,系统源安装和源码编译安装,还可以使用docker来管理。

源安装

apt install goaccess -y

yum install goaccess -y

pacman -S goaccess

dnf install goaccess -y

源码编译

访问 - 下载 (goaccess.io)

$ wget https://tar.goaccess.io/goaccess-1.7.tar.gz
$ tar -xzvf goaccess-1.7.tar.gz
$ cd goaccess-1.7/
$ ./configure --prefix=/usr/local/goaccess --enable-utf8 --enable-geoip=mmdb
$ make
# make install

使用方法

常见参数说明

$ goaccess -h

-a --agent-list 启用由主机用户代理的列表。为了更快的解析,不启用该项。
-d --with-output-resolver 在 HTML/JSON 输出中开启 IP 解析,会使用 GeoIP 来进行 IP 解析。
-f --log-file 需要分析的日志文件路径。
-p --config-file 配置文件路径。
-o --output 输出格式,支持。html、json、csv。
-m --with-mouse 控制面板支持鼠标点击。
-q --no-query-string 忽略请求的参数部分。
--real-time-html 实时生成 HTML 报告。
--daemonize 守护进程模式,--real-time-html 时使用。

在ssh终端查看

goaccess assess.log

控制台操作方法按键
F1 主帮助页面
F5 重绘主窗口
q 退出
1-15 跳转到对应编号的模块位置
o 打开当前模块的详细视图
j 当前模块向下滚动
k 当前模块向上滚动
s 对模块排序
/ 在所有模块中搜索匹配
n 查找下一个出现的位置
g 移动到第一个模块顶部
G 移动到最后一个模块底部

输出HTML模式

goaccess -d /home/logs/access.log -o /home/c/www/index.html --log-format=COMBINED

这里就生成了HTML文件,直接定向到站点目录下,可以直接打开进行访问。

实时分析更新HTML

goaccess -d /home/logs/access.log -o /home/c/www/index.html --log-format=COMBINED --real-time-html

守护模式运行

goaccess -d /home/logs/access.log -o /home/c/www/index.html --log-format=COMBINED --real-time-html --daemonize

定时更新文件

设置定时任务。每60分钟刷新一次,更新一次HTML报表

# crontab -e

*/60 * * * * goaccess -a -d -f /home/logs/access.log -o /home/c/www/index.html --log-format=COMBINED

其他使用方法

输出JOSN报告

goaccess access.log -o access.json --log-format=COMBINED

输出CSV文件

goaccess access.log -o access.csv --log-format=COMBINED
未经允许不得转载:钧言极客 » 使用 GoAccess 实时可视化分析web网站访问日志

评论 4

  1. 沙发

    耀阳 1月8日    回复
  2. 这个分析就挺好,早上好大佬

    小熊 1月8日    回复
    • 哪是什么大佬,折腾玩的

      钧言 1月8日    回复
      • 晚上好大佬

        小熊 1月8日