站长看数据的习惯是开统计后台,但统计代码有个天生的盲区:它只能记录带了 JS 跑起来的真人访问。蜘蛛抓了哪些页面、每次抓返回什么码、什么时候抓得最勤,统计后台一个字都看不到。想回答这些问题只有一条路——翻服务器原始日志。可 access.log 动辄几百 MB,用 tail 翻到眼花也翻不出个结论。
GoAccess 就是补这个缺口的工具:直接吃 Nginx/Apache 日志文件,不开面板后台、不写数据库,一条命令同时给你终端交互视图和网页可视化报表。它会自动归类出 Browsers and Spiders(蜘蛛抓取明细)、HTTP Status Codes(返回码分布)、404 or Not Found(失效抓取)等面板,做 SEO 日志分析要看的几样东西它全给摆好了。
# Debian/Ubuntu 安装
apt install goaccess
# 终端交互模式,直接看当前日志
goaccess /var/log/nginx/access.log --log-format=COMBINED
# 生成静态 HTML 面板,放到站点目录供浏览器访问
goaccess /var/log/nginx/access.log \
--log-format=COMBINED \
--real-time-html \
-o /var/www/html/goaccess.html
日志是滚动切割的,只跑一次只能看到当天。加 --restore 和 --persist 让 GoAccess 把历史数据持久化下来,新日志接着旧数据往上累加,面板里的曲线才是连续的。再配一个定时任务,每天固定时间跑一次,就能累积出完整趋势。
# 增量处理:旧数据存起来,新日志接着算
goaccess /var/log/nginx/access.log \
--log-format=COMBINED \
--restore --persist \
-o /var/www/html/goaccess.html
# crontab:每天 0 点处理一次
0 0 * * * goaccess /var/log/nginx/access.log \
--log-format=COMBINED --restore --persist \
-o /var/www/html/goaccess.html
版本方面,2026 年 7 月发布的 1.11 是当前最新版,官方公告说解析速度提升约 35%、存储内存占用降低约 20%,还把崩溃安全机制迁移到了存储格式 v3。老版本用着没毛病的不必强升,新装的直接上 1.11 就行。
# 验证版本
goaccess --version
# 日志格式不确定时,先小样本验证解析结果
head -20 /var/log/nginx/access.log | \
goaccess --log-format=COMBINED -
面板打开后按这个顺序看:先看 Spiders 面板确认蜘蛛来了多少、谁是大头;再看 Status Codes 面板,5xx 和 4xx 的占比一高,抓取意愿就会被压下去;最后进 404 面板,把蜘蛛天天撞的死 URL 记下来,这正好接到下一篇的日志挖死点。一个安全提醒:goaccess.html 放在站点目录等于把访问数据公开了,建议改成随机文件名,或者用 nginx 的 auth_basic 挡一层,这个面板只给自己看。
相关阅读:本篇是《SEO 自动化总清单:日、周、月、季各该跑什么》里日志组的第一篇。总纲把 24 个监控脚本排成一张日历表,哪些每天跑、哪些每周跑一表看清,建议先收藏总纲再逐篇取用。
A5创业网 版权所有