GoAccess 最新版自編譯與使用記錄:從原始碼安裝到即時 HTML 報表

按最新官方倉庫整理 GoAccess 自編譯與使用過程,側重 Ubuntu 或 Debian 下從原始碼安裝最新版、驗證版本、生成 HTML 報表與即時查看的完整命令。

時間點按 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 -

例如只看 5xx3xx

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

只讀取已持久化資料:

1
goaccess --restore

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 這兩個參數先跑通,後面基本就是圍著日誌路徑、輸出檔案和埠號在改。

记录并分享
使用 Hugo 建立
主題 StackJimmy 設計