宝塔面板是一个简单方便的服务器运维面板,但网站统计功能是收费的。而 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 分析数据的更多参数请查阅:帮助文档。
暂无评论内容