GoAccess 安装指南
在 Ubuntu 22.04 上从 0 到 1 安装 GoAccess:apt 仓库方案(1.5.5)与官方源码编译方案(1.9.4)双路线实测,含 GeoIP 数据库配置、systemd 实时报告常驻与定时报告、升级卸载与常见排障。
GoAccess 安装指南
> 目标:在 Ubuntu 22.04 服务器上从零安装 GoAccess 并跑通实时 HTML 报告服务,覆盖 apt 仓库与源码编译两条完整路线、GeoIP 地理库配置、systemd 常驻与定时报告、升级卸载与常见排障。全部命令与输出已在 Ubuntu 22.04.4 LTS 实测通过。
一、环境信息
本文所有安装与验证步骤在以下环境中实测:
- 操作系统:Ubuntu 22.04.4 LTS(x86_64),内核 6.8.0-138-generic
- CPU / 内存:12 核 / 32GiB
- 网络可访问公网(GitHub 等国外资源慢时可走代理,见 4.2 与 5.2 说明)
- 安装目标:
- 方案 A(apt 仓库):GoAccess 1.5.5 →
/usr/bin/goaccess - 方案 B(源码编译):GoAccess 1.9.4 →
/usr/local/bin/goaccess
- 方案 A(apt 仓库):GoAccess 1.5.5 →
- 日志样本:
/opt/data/goaccess-sample/access.log(nginx Combined 格式,53 行),用于安装后验证 - GeoIP 库:GeoLite2-Country.mmdb,部署到
/opt/data/goaccess-sample/geoip/
二、前置条件
安装前确认系统就绪:依赖工具、系统版本与用户权限。本节命令逐条执行并核对回显。
2.1 确认系统版本
GoAccess 的 apt 包与编译依赖在不同发行版上差异较大,先确认系统版本:
cat /etc/os-release | head -2
uname -m
实测回显:
PRETTY_NAME="Ubuntu 22.04.4 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
x86_64
2.2 确认用户权限
apt 安装与 /usr/local 写入均需 root 权限:
whoami
实测回显:
root
非 root 用户请在以下所有命令前加 sudo。
2.3 更新软件源索引
无论走哪条方案,先把 apt 索引刷新到最新:
apt-get update
实测回显(输出节选,末行):
Reading package lists... Done
⚠️ 注意:
apt-get update若出现 404 或超时,先检查/etc/apt/sources.list的软件源可用性,再继续后续步骤。
三、版本选型说明
选版本前先看两条路线各自的版本与特性差异,再决定用哪条。
| 维度 | 方案 A:apt 仓库 | 方案 B:源码编译 |
|---|---|---|
| 版本 | 1.5.5(2022 年发布) | 1.9.4(官方最新线) |
| 包来源 | Ubuntu jammy/universe | tar.goaccess.io 官方源码包 |
| 安装位置 | /usr/bin/goaccess | /usr/local/bin/goaccess |
| 配置文件 | /etc/goaccess/goaccess.conf | /usr/local/etc/goaccess/goaccess.conf |
| 编译特性 | --enable-utf8 --enable-geoip=mmdb --with-openssl | 按 configure 参数自选(本文 --enable-utf8 --enable-geoip=mmdb) |
| 升级方式 | apt-get upgrade | 重新下载新版本源码编译覆盖 |
| 适用场景 | 快速验证、对版本无要求 | 需要新版本特性(如 --restore 增量参数、面板增强)或自定义编译开关 |
版本差异要点(实测确认):1.5.5 与 1.9.4 在持久化参数上不兼容——1.9.4 将 --load-from-disk 更名为 --restore(在 1.9.4 上传旧参数会直接报 unrecognized option)。生产环境建议直接选源码编译的最新版本;apt 版适合"先跑起来看看"。
当前官方最新版本号可用如下命令获取(发布页):https://github.com/allinurl/goaccess/releases/latest 或官方源码包目录 https://tar.goaccess.io/ 。本文实测时最新稳定版为 1.9.4。
四、apt 仓库安装方案(A)
本章用 Ubuntu 官方仓库一条命令完成安装,适合快速验证与内网软件源环境。
4.1 执行安装
apt-get install -y goaccess
实测回显(输出节选):
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
将会同时安装下列软件包:
libgeoip1v5
建议安装:
geoip-database
下列【新】软件包将被安装:
goaccess libgeoip1v5
升级了 0 个软件包,新安装了 2 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。
需要下载 977 kB 的归档。
解压缩后会消耗 2,474 kB 的额外空间。
获取:1 http://mirrors.aliyun.com/ubuntu jammy/main amd64 libgeoip1v5 amd64 1.6.12-8 [83.5 kB]
获取:2 http://mirrors.aliyun.com/ubuntu jammy/universe amd64 goaccess amd64 1:1.5.5-1 [893 kB]
正在设定 goaccess (1:1.5.5-1) ...
正在处理用于 man-db (2.10.2-1) 的触发器 ...
💡 说明:apt 版自带 GeoIP Legacy 库依赖(libgeoip1v5),但编译参数中已启用 mmdb 支持,实际使用时建议配置 GeoIP2 格式的
.mmdb数据库(见第七章)。
4.2 网络代理(可选)
若你的服务器访问国外资源较慢,apt 源建议换国内站点(如上回显中的 mirrors.aliyun.com);仅下载 GoAccess 源码包或 GeoIP 库时可临时走代理:
curl -x http://192.168.1.62:7897 -LO <URL>
4.3 验证安装
版本与编译参数验证:
which goaccess
goaccess --version
实测回显:
/usr/bin/goaccess
GoAccess - 1.5.5.
For more details visit: https://goaccess.io/
Copyright (C) 2009-2022 by Gerardo Orellana
Build configure arguments:
--enable-utf8
--enable-geoip=mmdb
--with-openssl
配置文件位置验证:
ls -la /etc/goaccess/
实测回显:
total 44
drwxr-xr-x 2 root root 4096 2月 6 2022 .
drwxr-xr-x 150 root root 12288 10月 17 16:22 ..
-rw-r--r-- 1 root root 3303 2月 6 2022 browsers.list
-rw-r--r-- 1 root root 20086 2月 6 2022 goaccess.conf
-rw-r--r-- 1 root root 1686 2月 6 2022 podcast.list
三个文件的用途:goaccess.conf 主配置(782 行,含全部参数注释),browsers.list 浏览器/爬虫 UA 识别规则,podcast.list 播客客户端 UA 规则。
功能验证(用真实日志跑一次分析):
goaccess /opt/data/goaccess-sample/access.log --log-format=COMBINED --output=/tmp/apt-test.html
ls -la /tmp/apt-test.html
实测回显:
-rw-r--r-- 1 root root 732052 10月 17 16:56 /tmp/apt-test.html
生成约 732KB 的 HTML 报告即功能正常。
五、源码编译安装方案(B)
本章从官方源码包编译安装最新稳定版 1.9.4 到 /usr/local,适合需要新版本特性或自定义编译开关的场景。
5.1 安装编译依赖
GoAccess 编译必需 C 编译工具链与 ncurses 宽字符库;GeoIP 支持需要 MaxMind 数据库开发库(mmdb 格式)或 Legacy 开发库(dat 格式):
apt-get install -y build-essential libncursesw5-dev libgeoip-dev libmaxminddb-dev
实测回显(输出节选,末尾):
正在设置 libgeoip-dev (1.6.12-8) ...
正在处理用于 man-db (2.10.2-1) 的触发器 ...
正在处理用于 libc-bin (2.35-0ubuntu3.15) 的触发器 ...
确认编译器版本:
gcc --version | head -1
实测回显:
gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0
💡 说明:
--enable-geoip=mmdb(GeoIP2/.mmdb 数据库)依赖libmaxminddb-dev;libgeoip-dev提供旧版 Legacy/.dat 支持,两者可同时安装。Ubuntu 24.04 起仓库中libgeoip-dev已被移除,可只装libmaxminddb-dev并使用 mmdb 参数。
5.2 下载官方源码包
从官方源码包站点下载 1.9.4 并校验:
mkdir -p /opt/data/src && cd /opt/data/src
curl -sLO https://tar.goaccess.io/goaccess-1.9.4.tar.gz
ls -la goaccess-1.9.4.tar.gz
sha256sum goaccess-1.9.4.tar.gz
实测回显:
-rw-r--r-- 1 root root 856461 10月 17 16:04 goaccess-1.9.4.tar.gz
107d5a3cb186e6e7a8ac684a88d21a17884f128cb0bc4a4a53696145bb39373d goaccess-1.9.4.tar.gz
下载慢或不通时加代理:curl -x http://192.168.1.62:7897 -LO https://tar.goaccess.io/goaccess-1.9.4.tar.gz。
5.3 解压与 configure
tar -xzf goaccess-1.9.4.tar.gz && cd goaccess-1.9.4
./configure --enable-utf8 --enable-geoip=mmdb
实测回显(输出节选):
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating po/Makefile.in
config.status: creating src/config.h
config.status: executing depfiles commands
config.status: executing po-directories commands
config.status: creating po/POTFILES
config.status: creating po/Makefile
Your build configuration:
Prefix : /usr/local
Package : goaccess
Version : 1.9.4
Compiler flags : -pthread
Linker flags : -lnsl -lncursesw -lmaxminddb -lpthread
UTF-8 support : yes
Dynamic buffer : no
ASan : no
Geolocation : GeoIP2
Storage method : In-Memory with On-Disk Persistent Storage
TLS/SSL : no
Bugs : hello@goaccess.io
配置摘要逐项解读:
- Prefix /usr/local:安装目标前缀,二进制将位于
/usr/local/bin。 - UTF-8 support: yes:
--enable-utf8生效,中文界面与中文日志路径可正常显示。 - Geolocation: GeoIP2:使用
.mmdb格式地理库(需 5.1 中 libmaxminddb-dev)。 - Storage method:内存聚合 + 可选磁盘持久化(
--persist/--restore)。 - TLS/SSL: no:未加
--with-openssl,WebSocket 不支持 wss 加密;如需 wss 请改用./configure --enable-utf8 --enable-geoip=mmdb --with-openssl(前置包libssl-dev)。
5.4 编译与安装
make -j$(nproc)
make install
实测回显(make 尾部,编译命令行节选):
cc -O2 -DSYSCONFDIR=\"/usr/local/etc\" -Wall -Wextra ... -pthread -rdynamic -o goaccess src/base64.o src/browsers.o src/color.o src/commons.o src/csv.o ... src/geoip2.o -lnsl -lncursesw -lmaxminddb -lpthread
make install 尾部回显:
/usr/bin/install -c -m 644 goaccess.1 '/usr/local/share/man/man1'
⚠️ 注意:make 阶段如报
curses.h: No such file or directory,说明 5.1 的libncursesw5-dev未装成功,重新执行 5.1 后从 configure 步骤重来。
5.5 验证安装
which goaccess
goaccess --version
实测回显:
/usr/local/bin/goaccess
GoAccess - 1.9.4.
For more details visit: https://goaccess.io/
Copyright (C) 2009-2024 by Gerardo Orellana
Build configure arguments:
--enable-utf8
--enable-geoip=mmdb
为什么 now 是 1.9.4? 因为 $PATH 中 /usr/local/bin 排在 /usr/bin 之前,shell 解析 goaccess 命中源码版;apt 版 1.5.5 仍完整保留于 /usr/bin/goaccess,需要时可用全路径调用:
echo $PATH | tr ':' '\n' | grep -nE 'local/bin$|/usr/bin$'
/usr/bin/goaccess --version | head -1
实测回显:
8:/usr/local/sbin
9:/usr/local/bin
11:/usr/bin
GoAccess - 1.5.5.
配置文件位置验证:
ls -la /usr/local/etc/goaccess/
实测回显:
total 40
drwxr-xr-x 2 root root 4096 10月 17 16:14 .
drwxr-xr-x 3 root root 4096 10月 17 16:14 ..
-rw-r--r-- 1 root root 3330 10月 17 16:14 browsers.list
-rw-r--r-- 1 root root 21617 10月 17 16:14 goaccess.conf
-rw-r--r-- 1 root root 1686 10月 17 16:14 podcast.list
功能验证(真实日志分析):
goaccess /opt/data/goaccess-sample/access.log --log-format=COMBINED --output=/tmp/src-test.json
python3 -c 'import json; d=json.load(open("/tmp/src-test.json")); print(d["general"]["total_requests"], d["general"]["unique_visitors"])'
实测回显:
53 5
53 次请求、5 个独立访客与样本一致,安装功能完整。
六、方案对比与选择建议
两条路线都已实测跑通,按下表对号入座:
| 对比项 | 方案 A:apt(1.5.5) | 方案 B:源码(1.9.4) |
|---|---|---|
| 安装耗时 | 约 30 秒(含依赖下载) | 约 2–4 分钟(12 核实测编译 <1 分钟) |
| 版本新旧 | 2022 年的 1.5.5 | 官方最新稳定版 |
| 参数兼容性 | 不识别 --restore(旧名 --load-from-disk) | 全部新参数可用 |
| systemd 配置路径 | 二进制写 /usr/bin/goaccess | 二进制写 /usr/local/bin/goaccess |
| 多版本共存 | 可与源码版并存(全路径区分) | 可与 apt 版并存 |
| 推荐 | 快速验证 / 无公网下载条件(内网源) | 生产推荐:新特性、增量持久化、面板增强 |
选择建议:内网无法访问公网时用方案 A(或提前把源码包拷入内网走方案 B);其余场景一律建议方案 B,避免旧版本的参数差异踩坑。
七、GeoIP 地理数据库配置
GoAccess 的地理位置面板依赖外部 IP 地理库。本节下载并配置 GeoLite2-Country.mmdb,并实测面板生效。
7.1 数据库选型
| 数据库 | 格式 | 内容 | 获取渠道 |
|---|---|---|---|
| GeoLite2-Country / GeoLite2-City | .mmdb(GeoIP2) | 国家或城市级 | MaxMind 官网(需注册免费 license key);GitHub 每日构建社区源 |
| GeoIP Legacy Country / City | .dat | 国家或城市级 | 已停止更新,仅老系统使用 |
推荐使用 GeoIP2(.mmdb):GoAccess 1.9.4 编译参数 --enable-geoip=mmdb 即面向该格式。
7.2 下载数据库
MaxMind 官方下载需要注册账号;社区维护的每日构建仓库(P3TERX/GeoLite.mmdb,数据同源于 GeoLite2)可直接下载,实测走代理获取:
curl -x http://192.168.1.62:7897 -sL -o /opt/data/goaccess-sample/geoip/GeoLite2-Country.mmdb \
"https://github.com/P3TERX/GeoLite.mmdb/releases/download/2026.10.16/GeoLite2-Country.mmdb"
ls -la /opt/data/goaccess-sample/geoip/GeoLite2-Country.mmdb
实测回显:
-rw-r--r-- 1 root root 3407020 10月 17 16:20 /opt/data/goaccess-sample/geoip/GeoLite2-Country.mmdb
⚠️ 注意:该仓库的版本号目录随日期更新(形如
YYYY.MM.DD),请到 Releases 页 https://github.com/P3TERX/GeoLite.mmdb/releases 获取最新下载地址。
7.3 实测地理面板生效
goaccess /opt/data/goaccess-sample/access.log \
--log-format=COMBINED \
--geoip-database=/opt/data/goaccess-sample/geoip/GeoLite2-Country.mmdb \
--output=/tmp/geoip-test.json
python3 -c 'import json; d=json.load(open("/tmp/geoip-test.json")); print("geolocation" in d, [(x["data"], x["hits"]["count"]) for x in d.get("geolocation",{}).get("data",[])])'
实测回显:
True [('Unknown', 50)]
geolocation 面板已出现(True),统计项为 Unknown——因为样本日志中的来源 IP 172.17.0.1 属于内网保留地址,任何地理库都不会给它分配国家,属预期正确结果;换成公网 IP 的日志即可看到国家分布。
⚠️ 注意:geoip-database 指向不存在或损坏的文件时,GoAccess 启动会报错退出;首次配置后务必用上面命令验证面板出现。
八、systemd 常驻:实时报告与定时报告
GoAccess 默认是"运行即结束"的命令行工具,生产使用需要 systemd 把它托管成常驻服务或定时任务。本章给出两个实测可用方案:实时 HTML 服务(方案一)与每小时定时报告(方案二)。
8.1 方案一:实时 HTML 报告服务
先理解实时机制:--real-time-html 启用后,GoAccess 内置 WebSocket 服务器(默认端口 7890)把统计结果实时推给浏览器中的 report.html 页面。数据更新依赖输入流持续有新日志——直接以文件参数运行时,读到文件末尾(EOF)后不会再追踪文件增长(实测:进程 fd 表中没有日志文件句柄,追加新行后报告数字不变)。因此实时常驻的正确姿势是 tail -F 管道输入:
tail -F -n0 /var/log/nginx/access.log | goaccess --log-format=COMBINED \
--real-time-html --port=7890 --output=/var/www/html/goaccess/report.html -
实测验证(用 53 行样本日志模拟实时流,前端先喂全量、4 秒后追加 1 行新日志):
T+3s: total_requests": 53
T+7s: total_requests": 53 realtime-test: 1
报告文件在数据流入后立刻刷新(T+3s 已含全部 53 条),随后追加的新行也即时可见。
systemd 单元文件:
mkdir -p /var/www/html/goaccess
cat > /etc/systemd/system/goaccess-rt.service <<'EOF'
[Unit]
Description=GoAccess real-time web log analyzer
After=network.target nginx.service
[Service]
Type=simple
ExecStart=/bin/sh -c 'exec tail -F -n0 /var/log/nginx/access.log | exec /usr/local/bin/goaccess --log-format=COMBINED --real-time-html --port=7890 --output=/var/www/html/goaccess/report.html -'
Restart=always
RestartSec=3
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable --now goaccess-rt.service
验证服务与端口:
systemctl is-active goaccess-rt.service
ss -tlnp | grep 7890
预期回显(实测同构):
active
LISTEN 0 4096 0.0.0.0:7890 0.0.0.0:* users:(("goaccess",pid=2294384,fd=8))
GoAccess 日志中出现 WebSocket服务器已准备接收来自客户的连接 即推送通道就绪。
浏览器访问:report.html 由 nginx 托管(把 /var/www/html/goaccess/ 加入 nginx 站点 root,或直接用 python3 -m http.server --directory /var/www/html/goaccess 8090 临时提供)。页面打开后通过 ws://<服务器IP>:7890 连接实时数据。
⚠️ 注意:7890 是 WebSocket 专用端口,不是 HTTP 端口——用浏览器直接访问
http://服务器:7890/会得到 400(实测回显report.html HTTP 400),属预期行为;报告页面本身由 --output 写出的 report.html 承担,需另行由 nginx 或其他静态服务器托管。⚠️ 注意:若
systemctl status反复重启且日志出现Unable to set bind: Address already in use.,说明 7890 已被旧 GoAccess 进程占用,先pkill -x goaccess清理再重启服务。
8.2 方案二:每小时定时生成静态报告
不需要 7×24 实时大屏时,用 systemd timer 每小时生成一份静态 HTML 更省资源,并可配合 --persist/--restore 让数据跨周期累积:
mkdir -p /var/www/html/goaccess /var/lib/goaccess
cat > /etc/systemd/system/goaccess-report.service <<'EOF'
[Unit]
Description=GoAccess daily HTML report generator
After=network.target
[Service]
Type=oneshot
ExecStart=/usr/local/bin/goaccess /var/log/nginx/access.log --log-format=COMBINED --output=/var/www/html/goaccess/report.html --persist --db-path=/var/lib/goaccess
EOF
cat > /etc/systemd/system/goaccess-report.timer <<'EOF'
[Unit]
Description=Run GoAccess report hourly
[Timer]
OnCalendar=hourly
Persistent=true
[Install]
WantedBy=timers.target
EOF
systemctl daemon-reload
systemctl enable --now goaccess-report.timer
systemctl start goaccess-report.service
实测回显:
Created symlink /etc/systemd/system/timers.target.wants/goaccess-report.timer → /etc/systemd/system/goaccess-report.timer.
NEXT LEFT LAST PASSED UNIT ACTIVATES
Sat 2026-10-17 17:00:00 CST 16min left n/a n/a goaccess-report.timer goaccess-report.service
1 timers listed.
服务执行状态与产物验证:
systemctl status goaccess-report.service --no-pager -l | head -10
ls -la /var/www/html/goaccess/
实测回显:
● goaccess-report.service - GoAccess daily HTML report generator
Loaded: loaded (/etc/systemd/system/goaccess-report.service; static)
Active: inactive (dead) since Sat 2026-10-17 16:43:50 CST; 15ms ago
Process: 2310852 ExecStart=/usr/local/bin/goaccess /opt/data/goaccess-sample/access.log --log-format=COMBINED --output=/var/www/html/goaccess/report.html --persist --db-path=/var/lib/goaccess (code=exited, status=0/SUCCESS)
Main PID: 2310852 (code=exited, status=0/SUCCESS)
total 728
-rw-r--r-- 1 root root 735009 10月 17 16:43 report.html
status=0/SUCCESS 与 735009 字节的 report.html 确认任务执行成功;/var/lib/goaccess/ 下同时生成 151 个 .db 持久化文件,下次触发时配合 --restore 即可累积历史(在 service 的 ExecStart 中追加 --restore 即可,见第十章升级注意事项)。
九、常见问题(FAQ)
以下问题均在本文实测环境中真实遇到过,附定位与解决过程。
Q1:直接 goaccess /var/log/nginx/access.log --real-time-html ... 后,新日志出现但报告数字不变?
定位:这是文件直读模式的固有行为——GoAccess 读到 EOF 后不再监控文件增长(实测用 ls -l /proc/<pid>/fd 查看该进程,文件描述符表中没有日志文件句柄)。解决:改用管道流式输入 tail -F -n0 /var/log/nginx/access.log | goaccess --log-format=COMBINED --output=... -(见 8.1),实测数据流入后报告秒级刷新。
Q2:报错 Unable to set bind: Address already in use. 后进程退出?
定位:--real-time-html 的 WebSocket 端口(默认 7890)已被占用,多见于旧实例未退出或重复启动(实测残留进程 pid=2303899 占用 7890 导致新实例启动失败)。解决:
ss -tlnp | grep 7890
pkill -x goaccess
systemctl restart goaccess-rt.service
或换端口:--port=7891。
Q3:报错 goaccess: unrecognized option '--load-from-disk'?
定位:1.9 版本起参数更名,--load-from-disk 改为 --restore(--persist 不变)。解决:1.9.4 上使用 --restore;1.5.5 等 1.8 及以下版本仍用 --load-from-disk。
Q4:报错 Token '' doesn't match specifier '%h',提示格式错误?
定位:log-format 与日志行不匹配,或读入的是空文件/空流(实测当输入文件内容为空时首个 %h 匹配到空字符串即报此错)。解决:先用 head -3 /path/access.log 确认文件有内容且首行为完整日志行,再核对 --log-format 与真实格式(nginx 默认为 COMBINED);必要时用 --num-tests=1 只测 1 行快速定位第一个不匹配字段。
Q5:apt 版与源码版同时存在,goaccess 命令运行的到底是哪个?
定位:which goaccess 的结果即实际执行的版本(/usr/local/bin/goaccess = 源码版,/usr/bin/goaccess = apt 版),PATH 中 /usr/local/bin 优先。解决:需要明确版本时用全路径调用;卸载其中一版见第十章。
Q6:GeoIP 数据库下载 404 或极慢?
定位:MaxMind 官方下载需注册 license key;部分免费直链目录结构随日期变化(实测 dbip-country-lite-2026-10.mmdb 直链返回 404 HTML,153 字节)。解决:从 GitHub 社区每日构建仓库获取(见 7.2),下载后核对文件大小应在 MB 级(实测 GeoLite2-Country.mmdb 为 3407020 字节),并用 7.3 命令验证 geolocation 面板出现。
十、升级与卸载
10.1 apt 版升级与回退
apt-get update && apt-get install --only-upgrade goaccess
goaccess --version | head -1
Ubuntu 22.04 仓库中 1.5.5 为最终版,仓库线不会再有新版本;需要新版本请走源码方案。回退固定版本:
apt-get install -y goaccess=1:1.5.5-1
10.2 源码版升级
下载新版源码包,重复第五章 configure → make → make install 即可原地覆盖升级(配置文件会被新版示例覆盖,升级前备份 /usr/local/etc/goaccess/goaccess.conf):
cp /usr/local/etc/goaccess/goaccess.conf /root/goaccess.conf.bak
cd /opt/data/src/goaccess-1.9.4 && make uninstall && make install
goaccess --version | head -1
实测回显:
GoAccess - 1.9.4.
⚠️ 注意:跨大版本升级(如 1.5 → 1.9)持久化数据库文件格式有变化,升级后首次建议清空
--db-path重新--persist,避免新旧.db混用。
10.3 卸载
源码版卸载(Makefile 提供标准 uninstall 目标,实测清单如下):
cd /opt/data/src/goaccess-1.9.4 && make uninstall
实测回显:
( cd '/usr/local/bin' && rm -f goaccess )
( cd '/usr/local/etc/goaccess' && rm -f goaccess.conf browsers.list podcast.list )
( cd '/usr/local/share/man/man1' && rm -f goaccess.1 )
apt 版卸载:
apt-get remove -y goaccess && apt-get autoremove -y
清理 systemd 单元(按第八章部署过的):
systemctl disable --now goaccess-rt.service goaccess-report.timer
rm /etc/systemd/system/goaccess-rt.service /etc/systemd/system/goaccess-report.service /etc/systemd/system/goaccess-report.timer
systemctl daemon-reload
验证卸载干净:
which goaccess; ls /usr/local/etc/goaccess 2>&1; ls /etc/goaccess 2>&1
预期回显(两版均已卸载时):
goaccess not found
ls: cannot access '/usr/local/etc/goaccess': No such file or directory
ls: cannot access '/etc/goaccess': No such file or directory
十一、参考链接
- GoAccess 官网下载页(源码包):https://tar.goaccess.io/
- GoAccess GitHub Releases:https://github.com/allinurl/goaccess/releases
- 官方安装文档:https://goaccess.io/download
- GeoLite2 免费数据库(MaxMind):https://dev.maxmind.com/geoip/docs/databases/
- GeoLite2 社区每日构建仓库:https://github.com/P3TERX/GeoLite.mmdb
- goaccess(1) 手册页:https://man.archlinux.org/man/goaccess.1