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