goaccess可直接对接apache的access.log实现终端实时刷新与html报表生成,关键在于日志格式匹配(默认combined)和启动参数配置,支持中文、实时更新及近时段日志过滤分析。

GoAccess 能直接对接 Apache 的 access.log,实现终端实时刷新访问量,也能生成可浏览器打开的 HTML 报表。关键在于日志格式匹配和启动方式选择。
确认 Apache 日志格式
默认 Apache 使用 COMBINED 格式,GoAccess 已内置支持。你只需检查你的 /etc/apache2/apache2.conf 或虚拟主机配置中是否有类似这行:
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
如果存在且被 CustomLog 引用,就可以直接用 --log-format=COMBINED 启动。
快速启动实时终端视图
运行以下命令,终端将每 200 毫秒刷新一次,显示当前活跃访客、请求速率、状态码分布等:
sudo goaccess /var/log/apache2/access.log -c --log-format=COMBINED
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
-
-c表示弹出交互式格式选择菜单(首次运行建议加) - 若已配置好
/etc/goaccess.conf,可省略--log-format - 按 q 退出,按 o 展开/折叠面板,g 跳转到顶部
生成带中文的 HTML 实时报表
适合分享或长期查看,支持每秒自动刷新:
sudo LC_ALL=zh_CN.UTF-8 goaccess /var/log/apache2/access.log --log-format=COMBINED -o /var/www/html/report.html --real-time-html
-
LC_ALL=zh_CN.UTF-8确保中文标签和日期正常显示 -
--real-time-html启用 WebSocket 实时更新(需确保端口 7890 可访问) - 生成后在浏览器打开
http://你的服务器IP/report.html即可
进阶:只分析最近 N 小时的数据
避免历史数据干扰实时判断,可用 awk 配合过滤:
sudo awk -v d1="$(date -d '2 hours ago' '+%d/%b/%Y:%H')" '$4 ~ d1 {print}' /var/log/apache2/access.log | goaccess --log-format=COMBINED -o /tmp/recent.html --real-time-html
该命令提取近两小时日志并生成独立报表,适合故障排查或活动监控场景。










