1009 字
5 分钟
使用 GoAccess 在宝塔面板中进行 Web 日志分析

GoAccess 是一款实时的 Web 日志分析工具,能够帮助你深入了解 Web 服务器的访问情况。以下是通过宝塔面板安装和配置 GoAccess,进行 Web 日志分析的详细步骤。

1. 下载并安装 GoAccess#

  1. 下载 GoAccess 的最新版本 访问 GoAccess 的官网 或使用下面的命令下载最新版本的 GoAccess。

    Terminal window
    wget https://tar.goaccess.io/goaccess-1.9.tar.gz
    tar -xzvf goaccess-1.9.tar.gz
    cd goaccess-1.9/
  2. 编译和安装 GoAccess

    Terminal window
    ./configure --enable-utf8 --enable-geoip=mmdb
    make
    sudo make install
  3. 安装依赖(如果需要 GeoIP 功能)

    如果你需要 GeoIP 功能(地理位置分析),确保安装了相关的依赖库:

    Terminal window
    sudo yum install libmaxminddb-devel

2. 配置日志切割任务#

  1. 日志文件路径: 宝塔面板默认的 Web 日志文件通常位于 /www/wwwlogs/。根据你的 Web 服务器配置(如 Apache 或 Nginx),可能需要调整路径。

  2. 设置计划任务进行日志切割: 在宝塔面板中,设置计划任务来定期切割日志,假设切割后的日志文件保存在 /www/wwwlogs/history_backups/

    • 登录到宝塔面板 > 计划任务 > 添加任务。

    • 设置每天执行一次日志切割任务,命令如下:

      Terminal window
      /usr/bin/logrotate /www/wwwlogs/logrotate.conf
  3. 设置日志输出目录: 创建一个目录来存放 GoAccess 分析结果的 HTML 文件:

    Terminal window
    mkdir -p /www/wwwroot/yourdomain.com/goaccess

3. 生成 Web 日志分析报告#

  1. 生成当天日志的 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 日志分析。

  2. 生成历史日志的 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.log
    LANG="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. 配置安全访问#

为了保护你的日志报告不被未经授权的人访问,可以通过宝塔面板设置加密访问。

  1. 添加加密访问

    • 在宝塔面板中,点击 网站 > 设置 > 访问限制
    • 添加访问限制,设置访问路径为 yourdomain.com/goaccess/index.htmlyourdomain.com/goaccess/index-old.html
    • 设置用户名和密码,确保只有授权用户能够访问分析报告。
  2. 建议使用 HTTPS 进行访问: 确保你的网站启用了 HTTPS,以加密所有传输的数据,增加访问安全性。

5. 配置 WebSocket 实时分析功能#

GoAccess 支持 WebSocket 实时功能,可以实时显示 Web 日志数据。要启用实时分析,请按照以下步骤进行配置:

  1. 配置 WebSocket 和实时分析功能

    编辑 GoAccess 的配置文件 goaccess.conf,启用 WebSocket 功能并设置端口:

    Terminal window
    sudo nano /etc/goaccess/goaccess.conf

    在文件中添加以下配置:

    Terminal window
    port 7890
    real-time-html true
    ws-url ws://yourdomain.com:7890
  2. 确保端口可用: 确保端口 7890 在服务器防火墙中开放,并且没有其他服务占用该端口。

  3. 启动 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
  4. 查看实时分析结果 访问 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 实现实时日志分析,同时确保报告的安全访问。

使用 GoAccess 在宝塔面板中进行 Web 日志分析
https://sw.rscclub.website/posts/goaccess/
作者
杨月昌
发布于
2021-06-19
许可协议
CC BY-NC-SA 4.0