自架 Google Analytics 替代方案:Umami 和 Plausible 怎麼選、怎麼部署
比較兩款開源、不使用 Cookie 的網站流量分析工具 Umami 與 Plausible,再用 Zenavo 部署到自己的伺服器,保護好第一個帳號、加上追蹤碼、確認資料進來並做好備份。
本文亦提供 English、简体中文、日本語、Español 和 Bahasa Indonesia。
大多數網站只想知道幾件事:今天來了多少訪客、從哪裡來、看了哪些頁面。Google Analytics 能回答這些問題,但設定複雜,資料放在第三方,通常還得搭配 Cookie 提示橫幅。
Umami 和 Plausible 是兩款開源的網站流量分析工具,儀表板簡潔,預設不使用 Cookie,資料存在你自己的資料庫裡。Zenavo 為兩者都準備了範本,幾分鐘內就能部署到你租用或自有的伺服器上。
先選一個
| Umami | Plausible 社群版 | |
|---|---|---|
| 組成服務 | Umami + PostgreSQL | Plausible + PostgreSQL + ClickHouse |
| 記憶體 | 小,可以和其他應用共用一台小伺服器 | 範本標示約 2 GB |
| 適合 | 個人網站、多個小網站、想要最少維護 | 流量較大,或喜歡 Plausible 的報表 |
| 首次登入 | 預設管理員帳號,要立刻改密碼 | 註冊第一個帳號 |
| 電子郵件 | 不需要 | 邀請成員、重設密碼需要設定 SMTP |
拿不定主意時,先用 Umami:它更輕量,備份和搬移都只涉及一個 PostgreSQL。等流量大到 PostgreSQL 吃不消,再考慮以 ClickHouse 為基礎的 Plausible。
兩者都不使用 Cookie,但是否仍需要隱私權聲明或使用者同意,取決於你所在地區的法律和你蒐集的內容,請自行確認。部分廣告封鎖工具也會擋下這類腳本,所以數字會比實際造訪略低。
部署 Umami
先在 Zenavo 連接一台 Linux 伺服器,再打開 Umami 範本,選擇伺服器並部署。範本會建立兩個服務:
- postgresql:PostgreSQL 17,資料在
/var/lib/postgresql/data磁碟區,密碼自動產生; - umami:
ghcr.io/umami-software/umami:postgresql-latest,HTTP 連接埠3000,透過DATABASE_URL連線資料庫,APP_SECRET自動產生。
在 umami 服務的 Networking 頁為 3000 連接埠綁定網域,例如 stats.example.com,設定 DNS 並等待 HTTPS 生效(見網域與 HTTPS)。
網域一生效就登入。 Umami 的預設管理員是 admin,密碼是 umami。請馬上到 Settings → Profile 修改密碼,並在 Security 中開啟雙重驗證。在你改密碼之前,任何人找到這個網址都能用預設密碼登入。
接著在 Settings → Websites 新增你的網站,複製畫面上的追蹤碼。
部署 Plausible
打開 Plausible 範本。部署前會要求填寫 Site URL,也就是你之後開啟 Plausible 的完整網址,例如 https://stats.example.com。範本會建立三個服務:
- postgresql:存放帳號和網站設定;
- clickhouse:存放造訪事件,範本已為小型伺服器調低了它的執行緒和日誌;
- plausible:社群版
v3.1.0,HTTP 連接埠8000,啟動時會自動建立並遷移資料庫。
部署後,為 plausible 服務綁定同一個網域。Site URL 和網域不一致時,登入和腳本網址都會出錯;要更改網址,就修改 BASE_URL 變數並重新部署。
ClickHouse 需要支援 SSE 4.2(x86)或 NEON(ARM)的 CPU。常見的雲端伺服器都符合,非常舊的機器可能無法啟動。
開啟網站,註冊第一個帳號。Plausible 社群版預設 DISABLE_REGISTRATION=invite_only:第一個帳號之後,新成員只能透過邀請加入。
邀請成員和重設密碼都需要寄信。在 plausible 服務的 Variables 中加入 SMTP 設定,例如 MAILER_EMAIL、SMTP_HOST_ADDR、SMTP_HOST_PORT、SMTP_USER_NAME 和 SMTP_USER_PWD,然後重新部署。各項說明見 Plausible 的設定文件。SMTP 密碼只填在變數裡,不要放進程式碼儲存庫。
登入後點 Add a website,填入要追蹤的網域,複製畫面上的追蹤碼。
安裝追蹤碼並確認有效
把複製的 <script> 放進每個頁面的 <head>。用 Next.js、Vue 等框架時,加在共用的版面配置裡;用 WordPress、Ghost 等 CMS 時,放進佈景主題或網站設定中的頁首程式碼欄位。
用手機或無痕視窗開啟你的網站,這次造訪應該在幾秒內出現在 Umami 的 Realtime 或 Plausible 的即時訪客數中。如果什麼都沒出現:
- 在瀏覽器開發者工具的 Network 面板確認腳本請求回傳 200;
- 關掉廣告封鎖工具再試一次;
- 確認網站的網域和你在 Umami 或 Plausible 中新增的網站一致。
備份
所有統計資料都在資料庫裡。Umami 只需備份 postgresql 服務;Plausible 的帳號在 postgresql,造訪事件在 clickhouse 的磁碟區,兩者都要保存。
PostgreSQL 可以直接在資料庫服務的 Backup & Restore 頁備份。ClickHouse 是磁碟區,備份時要先停止專案。重要的資料,請下載一份備份自行保存,並在新專案中還原一次,確認備份真的可用。詳見備份與還原。
常見問題
能匯入 Google Analytics 的歷史資料嗎?
Plausible 社群版可以匯入 Google Analytics 4 的歷史資料,前提是先在 Google Cloud 建立 OAuth 憑證,並把 GOOGLE_CLIENT_ID 和 GOOGLE_CLIENT_SECRET 加進 plausible 服務的變數,步驟見 Plausible 的匯入說明。Umami 的部分,請以它目前的文件為準。
一個 Umami 能追蹤多個網站嗎? 可以。每個網站在 Websites 中分別新增,各自有自己的追蹤碼。
流量分析服務掛了,會影響我的網站嗎? 不會。腳本載入失敗不會讓頁面無法顯示,只是這段期間的造訪不會被記錄。
Plausible 一直無法完成啟動? 查看 clickhouse 和 plausible 服務的日誌。通常是伺服器記憶體不足,或 CPU 不支援 ClickHouse 需要的指令集。
從 Umami 範本或 Plausible 範本開始:先保護好管理員帳號,再安裝追蹤碼、確認資料進來,最後做好備份。
這是 coding agent 讀到的內容,網址是 https://zenavo.app/zh-TW/blog/umami-vs-plausible.md。
無法載入 Markdown,請直接開啟: https://zenavo.app/zh-TW/blog/umami-vs-plausible.md