宝塔面板使用 GoAccess Web 日志分析教程

宝塔面板使用 GoAccess Web 日志分析教程

宝塔面板是一个简单方便的服务器运维面板,但网站统计功能是收费的。而 GoAccess 是一个用 C 编写的免费开源 Web日志分析器,它提供了丰富的统计信息,包括但不限于独立访客、访问的文件(页面)、来源网站、404错误页面、访客操作系统、浏览器等。本文将介绍如何在宝塔面板中开启 GoAccess Web 日志分析功能。

内容导航

  • 下载安装 GoAccess
  • 在宝塔面板中添加日志切割的计划任务
  • 将 Web 日志输出到 HTML 文件
    • 输出当天 Web 日志到 HTML
    • 输出历史 Web 日志到 HTML
  • 查看 GoAccess 日志分析器及安全设置
    • 安全设置
    • 查看 HTML 界面的 GoAccess 日志分析器

下载安装 GoAccess

当前最新版本为 GoAccess v1.9.4,可点这里检查最新版本号。

以下以 CentOS 系统安装 1.9.4 版为例(其它版本仅需更改下方指令中的版本号):

wget https://tar.goaccess.io/goaccess-1.9.4.tar.gz
tar -xzvf goaccess-1.9.4.tar.gz
cd goaccess-1.9.4/
./configure --enable-utf8 --enable-geoip=mmdb
make
make install

Debian/Ubuntu 安装示例:

wget -O - https://deb.goaccess.io/gnugpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/goaccess.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/goaccess.gpg arch=$(dpkg --print-architecture)] https://deb.goaccess.io/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/goaccess.list
sudo apt-get update
sudo apt-get install goaccess

如果在配置过程(上述第4行指令)中提示:”*** Missing development files for libmaxminddb library.“,说明缺少缺少 libmaxminddb 库的开发文件。需另行安装GeoIP2:

Red Hat/CentOS 安装 libmaxminddb 执行指令:

yum install libmaxminddb-devel

Debian/Ubuntu 安装 libmaxminddb 执行指令:

sudo apt install libmaxminddb-dev

libmaxminddb 安装完成后,再次安装 GoAccess 。

在宝塔面板中添加日志切割的计划任务

宝塔面板中,网站的 Web 日志默认存储位置:/www/wwwlogs,以”网站名.log”文件名存储。宝塔面板默认是不会切割日志文件的,为了避免单个日志文件过大,建议每天自动将日志文件切割:

宝塔面板 > 计划任务 > 添加计划任务:

切割完的日志默认保存在:/www/wwwlogs/history_backups 目录中。

将 Web 日志输出到 HTML 文件

网站的 Web 日志已分割,那么可以输出两份 HTML 文件,一份为当日的日志,一份为除当日之外的历史日志。

首先在网站根目录下创建一个goaccess子目录,用于存放 Web 日志的 HTML 文件。

输出当天 Web 日志到 HTML

然后再添加计划任务,宝塔面板 > 计划任务 > 添加计划任务:

示例中的执行周期为30分钟,也就是每隔30分钟会刷新一次 HTML 分析页面,或可根据自身需求调整周期。

以上脚本内容示例如下:

LANG="zh_CN.UTF-8" bash -c 'goaccess -f /www/wwwlogs/zhanzhangb.cn.log -o /www/wwwroot/zhanzhangb.cn/goaccess/index.html --log-format=COMBINED --real-os'

代码释义:

  • LANG="zh_CN.UTF-8" ,以中文语言输出。
  • 其中 /www/wwwlogs/zhanzhangb.cn.log 网站的 Web 日志文件路径
  • 其中 /www/wwwroot/zhanzhangb.cn/goaccess/index.html 是用于查看的 HTML 文件输出路径,如果该目录不存在,会出错。
  • –log-format=COMBINED 指定日志格式。
  • –real-os:显示访客的真实的操作系统名称。例如:Windows 10。

注意其中的两处文件路径需根据自己网站的实际情况修改替换。

输出历史 Web 日志到 HTML

前面已介绍将日志切割的方法,那示例中的 /www/wwwlogs/zhanzhangb.cn.log 是当天日志,以前的历史日志在 /www/wwwlogs/history_backups/zhanzhangb.cn/ 目录中(如未修改宝塔面板的默认日志保存路径)。

宝塔面板 > 计划任务 > 添加计划任务:

建议将执行周期选择在每天的00点05分,因为刚才我们设置每日切割日志的时间为00点01分。

以上脚本内容示例如下:

zcat /www/wwwlogs/history_backups/zhanzhangb.cn/zhanzhangb.cn_access_*.gz > /www/wwwlogs/zhanzhangb.cn.tmp.log
LANG="zh_CN.UTF-8" bash -c 'goaccess -f /www/wwwlogs/zhanzhangb.cn.tmp.log -o /data/wwwroot/zhanzhangb.cn/goaccess/index-old.html --log-format=COMBINED --real-os'
rm -f /www/wwwlogs/zhanzhangb.cn.tmp.log

代码释义:

  • 利用zcat指令将被压缩的历史日志解压并临时输出在 zhanzhangb.cn.tmp.log 文件中。
  • HTML 日志输出的指令及参数同上。
  • HTML 文件输出完毕后,删除临时文件: zhanzhangb.cn.tmp.log 。

注意其中的五处文件路径需根据自己网站的实际情况修改替换。

查看 GoAccess 日志分析器及安全设置

安全设置

本教程的示例中将 HTML 文件保存在网站的 goaccess 子目录,意味着所有人均可通过网站的域名查看日志分析,所以应该设置访问权限,以免泄露敏感内容。

宝塔面板 > 网站 > 设置 > 访问限制 > 添加加密访问:

加密访问的路径注意不要输错了,名称、用户名和密码可以自由设置。

查看 HTML 界面的 GoAccess 日志分析器

根据本教程示例生成的日志分析页面 URL :

  • 当天 Web 日志:https://www.zhanzhangb.cn/goaccess/index.html
  • 历史 Web 日志:https://www.zhanzhangb.cn/goaccess/index-old.html

注意,如果历史 Web 日志暂时还未生成,可能是以前未做日志切割(刚添加的计划任务还未到指定的执行时间),只需在计划任务列表中选择日志切割任务,点击执行,然后再选择网站历史日志任务,点击执行。

GoAccess 输出 HTML 分析数据的更多参数请查阅:帮助文档

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容