goaccess是宝塔面板下最轻量直接的网站访问日志分析方案,无需数据库或插件,通过软链接适配日志路径、指定combined格式即可解析nginx默认日志,支持实时监控与定时html报表生成。

GoAccess 是宝塔面板做网站访问日志分析最轻量、最直接的方案,不用装数据库、不依赖面板插件市场——它本身不是“宝塔插件”,而是独立命令行工具,但能无缝对接宝塔默认日志路径和格式。
为什么别在软件商店找“日志分析插件”
宝塔软件商店里标着“日志分析”“访问统计”的第三方插件,多数是套壳 PHP 页面+简易 awk 脚本,功能残缺、更新停滞、权限混乱,且容易和面板自身日志轮转冲突。真正稳定可用的日志报表,靠的是标准工具链:原始日志 + 正确格式解析 + 静态报告输出。
你不需要“安装插件”,只需要确认日志存在、格式可读、工具能跑通。
goaccess 安装与基础命令必须配对日志路径
宝塔默认生成的访问日志文件名是 /www/wwwlogs/yourdomain.com-access_log,但 goaccess 默认只认 *.log 后缀,直接运行会报错:No such file or directory。
这不是工具没装好,是路径/后缀不匹配。
- 先建软链接(推荐):
ln -sf /www/wwwlogs/yourdomain.com-access_log /www/wwwlogs/yourdomain.com.log - 再执行分析(注意指定日志格式):
goaccess /www/wwwlogs/yourdomain.com.log -a -d -o /www/wwwroot/report.html --log-format=COMBINED -
--log-format=COMBINED是关键参数,对应 Nginx 默认 access_log 格式;如果改过 log_format(比如加了$http_x_forwarded_for),就得同步调整该参数,否则解析失败、IP 显示为空
实时监控和自动更新不能靠面板按钮
宝塔界面里的「查看」日志只是翻页式静态快照,不等于“实时分析”。真要盯住流量突增、爬虫扫库、异常 UA,得用 tail -f + grep 组合,或者让 goaccess 启动实时模式:
- 终端里执行:
goaccess /www/wwwlogs/yourdomain.com.log -f -c --log-format=COMBINED,回车后进入交互式实时仪表盘(按q退出) - 想每天自动生成 HTML 报表?加个计划任务:
0 2 * * * goaccess /www/wwwlogs/yourdomain.com.log -a -o /www/wwwroot/daily-report.html --log-format=COMBINED >/dev/null 2>&1 - 注意:如果日志被
logrotate切割成-2026-03-24.gz,goaccess默认不支持直接读 gz,得先解压或用zcat管道:zcat /www/wwwlogs/yourdomain.com-access_log-$(date -d "yesterday" +%Y-%m-%d).gz | goaccess -a -d -o /www/wwwroot/yest-report.html --log-format=COMBINED
别把 request.log 和网站日志混为一谈
有人想用 goaccess 分析面板操作行为,去扫 /www/server/panel/logs/request.log —— 这是典型误用。request.log 是 HTTP 请求原始记录(含 POST 参数、JSON body),不是标准 access_log 格式,goaccess 解析不了,强行喂进去只会满屏 Invalid format。
要看谁改了配置、什么时候删了网站,直接 grep + tail 就行:tail -n 50 /www/server/panel/logs/request.log | grep "action=modify_site"。
日志分析这件事,核心从来不是“装什么”,而是“知道哪份日志对应什么行为、用什么工具读得懂、怎么避免格式错位”。路径写错一个字符,goaccess 就静默失败;日志格式没对齐,报表里 IP 和 URL 全是破折号——这些细节比选工具重要得多。










