GoAccess 是一款实时的 Web 日志分析工具,能够帮助你深入了解 Web 服务器的访问情况。以下是通过宝塔面板安装和配置 GoAccess,进行 Web 日志分析的详细步骤。
1. 下载并安装 GoAccess
-
下载 GoAccess 的最新版本 访问 GoAccess 的官网 或使用下面的命令下载最新版本的 GoAccess。
Terminal window wget https://tar.goaccess.io/goaccess-1.9.tar.gztar -xzvf goaccess-1.9.tar.gzcd goaccess-1.9/ -
编译和安装 GoAccess
Terminal window ./configure --enable-utf8 --enable-geoip=mmdbmakesudo make install -
安装依赖(如果需要 GeoIP 功能)
如果你需要 GeoIP 功能(地理位置分析),确保安装了相关的依赖库:
Terminal window sudo yum install libmaxminddb-devel
2. 配置日志切割任务
-
日志文件路径: 宝塔面板默认的 Web 日志文件通常位于
/www/wwwlogs/
。根据你的 Web 服务器配置(如 Apache 或 Nginx),可能需要调整路径。 -
设置计划任务进行日志切割: 在宝塔面板中,设置计划任务来定期切割日志,假设切割后的日志文件保存在
/www/wwwlogs/history_backups/
。-
登录到宝塔面板 > 计划任务 > 添加任务。
-
设置每天执行一次日志切割任务,命令如下:
Terminal window /usr/bin/logrotate /www/wwwlogs/logrotate.conf
-
-
设置日志输出目录: 创建一个目录来存放 GoAccess 分析结果的 HTML 文件:
Terminal window mkdir -p /www/wwwroot/yourdomain.com/goaccess
3. 生成 Web 日志分析报告
-
生成当天日志的 HTML 报告
使用以下命令每 30 分钟生成当天的日志报告。你可以根据需要调整时间间隔。
在宝塔面板的计划任务中添加如下命令:
Terminal window LANG="zh_CN.UTF-8" bash -c 'goaccess -f /www/wwwlogs/yourdomain.com.log -o /www/wwwroot/yourdomain.com/goaccess/index.html --log-format=COMBINED --real-os'这将生成
index.html
文件,展示当天的 Web 日志分析。 -
生成历史日志的 HTML 报告
如果你有历史日志文件存储在
/www/wwwlogs/history_backups/yourdomain.com/
,使用以下命令将历史日志合并并生成报告:Terminal window zcat /www/wwwlogs/history_backups/yourdomain.com/yourdomain.com_access_*.gz > /www/wwwlogs/yourdomain.com.tmp.logLANG="zh_CN.UTF-8" bash -c 'goaccess -f /www/wwwlogs/yourdomain.com.tmp.log -o /www/wwwroot/yourdomain.com/goaccess/index-old.html --log-format=COMBINED --real-os'rm -f /www/wwwlogs/yourdomain.com.tmp.log这将生成历史日志的
index-old.html
文件。
4. 配置安全访问
为了保护你的日志报告不被未经授权的人访问,可以通过宝塔面板设置加密访问。
-
添加加密访问
- 在宝塔面板中,点击
网站
>设置
>访问限制
。 - 添加访问限制,设置访问路径为
yourdomain.com/goaccess/index.html
和yourdomain.com/goaccess/index-old.html
。 - 设置用户名和密码,确保只有授权用户能够访问分析报告。
- 在宝塔面板中,点击
-
建议使用 HTTPS 进行访问: 确保你的网站启用了 HTTPS,以加密所有传输的数据,增加访问安全性。
5. 配置 WebSocket 实时分析功能
GoAccess 支持 WebSocket 实时功能,可以实时显示 Web 日志数据。要启用实时分析,请按照以下步骤进行配置:
-
配置 WebSocket 和实时分析功能
编辑 GoAccess 的配置文件
goaccess.conf
,启用 WebSocket 功能并设置端口:Terminal window sudo nano /etc/goaccess/goaccess.conf在文件中添加以下配置:
Terminal window port 7890real-time-html truews-url ws://yourdomain.com:7890 -
确保端口可用: 确保端口 7890 在服务器防火墙中开放,并且没有其他服务占用该端口。
-
启动 GoAccess 实时功能
启动 GoAccess 实时分析并监听 7890 端口:
Terminal window goaccess /www/wwwlogs/yourdomain.com.log -o /www/wwwroot/yourdomain.com/goaccess/index.html --real-time-html --ws-url ws://yourdomain.com:7890 --log-format=COMBINED -
查看实时分析结果 访问
http://yourdomain.com:7890
或配置的 WebSocket URL 来查看实时日志分析。
6. 访问分析结果
- 当前日志报告:访问
https://yourdomain.com/goaccess/index.html
查看当天的 Web 日志分析。 - 历史日志报告:访问
https://yourdomain.com/goaccess/index-old.html
查看历史日志分析。
7. 其他建议
- 定期检查日志文件:确保你的日志文件没有过大,适时进行日志切割。
- 安全性:对于公开 Web 日志报告,建议采取额外的安全措施,例如加密访问或 IP 限制。
- 监控和警报:可以使用 GoAccess 的 API 集成功能将数据导出,结合监控系统设置报警。
总结
通过以上步骤,你可以在宝塔面板中成功安装和配置 GoAccess,实时分析 Web 访问日志并生成 HTML 报告。还可以通过 WebSocket 实现实时日志分析,同时确保报告的安全访问。