时间点按 2026-04-29 整理,当前官方 README 里给出的最新稳定版是 1.10.2。
1. 先装编译依赖
1
2
3
|
sudo apt-get update
sudo apt-get install -y build-essential wget tar \
libncurses-dev libmaxminddb-dev libssl-dev zlib1g-dev
|
2. 下载最新版源码包
1
2
3
4
|
cd /usr/local/src
sudo wget https://tar.goaccess.io/goaccess-1.10.2.tar.gz
sudo tar -xzvf goaccess-1.10.2.tar.gz
cd goaccess-1.10.2
|
3. 配置编译参数
1
|
sudo ./configure --enable-utf8 --enable-geoip=mmdb --with-zlib
|
如果你还想给实时 HTML 报表配 TLS,也可以改成:
1
|
sudo ./configure --enable-utf8 --enable-geoip=mmdb --with-zlib --with-openssl
|
4. 编译并安装
1
2
|
sudo make
sudo make install
|
5. 确认版本
1
2
|
goaccess --version
which goaccess
|
6. 直接看终端报表
Nginx 或 Apache 常见 combined 日志可以先这样跑:
1
|
goaccess /var/log/nginx/access.log --log-format=COMBINED
|
如果日志路径是 Apache:
1
|
goaccess /var/log/apache2/access.log --log-format=COMBINED
|
7. 生成静态 HTML 报表
1
2
3
4
|
goaccess /var/log/nginx/access.log \
--log-format=COMBINED \
-a \
-o /usr/share/nginx/html/goaccess-report.html
|
输出到当前目录也可以:
1
2
3
4
|
goaccess /var/log/nginx/access.log \
--log-format=COMBINED \
-a \
-o report.html
|
8. 生成实时 HTML 报表
1
2
3
4
5
|
goaccess /var/log/nginx/access.log \
--log-format=COMBINED \
-a \
-o /usr/share/nginx/html/goaccess-report.html \
--real-time-html
|
如果要改端口:
1
2
3
4
5
6
|
goaccess /var/log/nginx/access.log \
--log-format=COMBINED \
-a \
-o /usr/share/nginx/html/goaccess-report.html \
--real-time-html \
--port=7891
|
如果只绑定本机:
1
2
3
4
5
6
|
goaccess /var/log/nginx/access.log \
--log-format=COMBINED \
-a \
-o /usr/share/nginx/html/goaccess-report.html \
--real-time-html \
--addr=127.0.0.1
|
9. 持续追日志
1
|
tail -f /var/log/nginx/access.log | goaccess --log-format=COMBINED -
|
从文件开头开始并保持实时:
1
2
3
4
|
tail -f -n +0 /var/log/nginx/access.log | goaccess \
--log-format=COMBINED \
-o report.html \
--real-time-html -
|
10. 只看某类请求
例如只看带 firefox 的请求:
1
2
|
tail -f /var/log/nginx/access.log | grep -i --line-buffered 'firefox' | goaccess \
--log-format=COMBINED -
|
例如只看 5xx 和 3xx:
1
2
3
|
tail -f -n +0 /var/log/nginx/access.log | awk '$9~/3[0-9]{2}|5[0-9]{2}/' | goaccess \
--log-format=COMBINED \
-o out.html -
|
11. 多个日志一起分析
1
|
goaccess /var/log/nginx/access.log /var/log/nginx/access.log.1 --log-format=COMBINED
|
压缩和未压缩一起读:
1
|
zcat --force /var/log/nginx/access.log* | goaccess --log-format=COMBINED -
|
12. 开多线程
1
2
3
4
|
goaccess /var/log/nginx/access.log \
--log-format=COMBINED \
-o report.html \
-j 4
|
加大 chunk:
1
2
3
4
5
|
goaccess /var/log/nginx/access.log \
--log-format=COMBINED \
-o report.html \
-j 4 \
--chunk-size=8192
|
13. 增量处理
先持久化一份旧日志:
1
|
goaccess /var/log/nginx/access.log.1 --log-format=COMBINED --persist
|
再追加当前日志:
1
|
goaccess /var/log/nginx/access.log --log-format=COMBINED --restore --persist
|
只读取已持久化数据:
14. 我自己会先跑的一组命令
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
sudo apt-get update
sudo apt-get install -y build-essential wget tar \
libncurses-dev libmaxminddb-dev libssl-dev zlib1g-dev
cd /usr/local/src
sudo wget https://tar.goaccess.io/goaccess-1.10.2.tar.gz
sudo tar -xzvf goaccess-1.10.2.tar.gz
cd goaccess-1.10.2
sudo ./configure --enable-utf8 --enable-geoip=mmdb --with-zlib --with-openssl
sudo make
sudo make install
goaccess --version
goaccess /var/log/nginx/access.log \
--log-format=COMBINED \
-a \
-o /usr/share/nginx/html/goaccess-report.html \
--real-time-html
|
就这样。
如果你的目标很明确,其实只要把最新版源码编译好,再把 --log-format=COMBINED 和 --real-time-html 这两个参数先跑通,后面基本就是围着日志路径、输出文件和端口在改。