為什麼需要主動監控

想象這個場景:

你的聯絡表單 API 出了問題,但頁面看起來正常。訪客填完表單點送出,頁面好像成功了,但你實際上沒有收到任何詢問。

這個情況可能持續了 2 週,你不知道,訪客不知道,直到你意識到「這個月怎麼沒有詢問」才開始追查。

主動監控的目的是:在這類問題出現的第一時間通知你,而不是讓它靜靜影響你的業務。

監控的四個層面

1. 正常運行時間監控(Uptime Monitoring)

監控你的網站是否可以正常訪問。

當你的 Vercel / Railway 服務出現問題、DNS 設定有誤、或域名過期,uptime 監控會在幾分鐘內通知你。

工具:

Uptime Robot(免費方案:監控最多 50 個 URL,每 5 分鐘一次檢查)

Better Uptime(免費方案功能較豐富)

設定方式:輸入你的網站 URL,設定通知方式(Email / Slack / LINE),當網站無法訪問時立即收到警報。

2. JavaScript 錯誤監控

監控前端 JavaScript 的運行時錯誤(Runtime Errors),這些錯誤通常不會顯示給用戶,但影響網站功能。

工具:

Sentry(最主流的錯誤監控工具,有免費方案):在你的 Next.js 應用中安裝 @sentry/nextjs,Sentry 會自動收集所有未處理的 JavaScript 錯誤,包含完整的 Stack Trace 和用戶操作路徑。

LogRocket(同時有錯誤監控和 Session Recording 功能)

3. API 端點監控

如果你的官網有 API 路由(聯絡表單、問卷送出等),監控這些端點是否正常回應。

方法一:用 Uptime Robot 設定「關鍵字監控」——定期 Ping 你的 API,檢查回應中是否包含預期的關鍵字。

方法二:撰寫端對端(E2E)測試並定期執行——模擬真實用戶送出聯絡表單,確認整個流程正常。

4. 效能監控

監控網站重要頁面的載入速度和 Core Web Vitals 是否保持在合理水準。

工具:

Vercel Analytics(如果你用 Vercel 部署,免費提供 Core Web Vitals 監控)

Google Search Console 的「頁面體驗」報告(免費,但有延遲)

WebPageTest API(可以定期跑速度測試)

Sentry 配置 Next.js 的基本步驟

安裝:npm install @sentry/nextjs

執行配置嚮導:npx @sentry/wizard@latest -i nextjs

這個嚮導會自動建立 sentry.client.config.ts、sentry.server.config.ts 和 sentry.edge.config.ts 等設定檔,以及更新 next.config.ts。

重要設定:

設定 tracesSampleRate(效能追蹤的採樣率)——生產環境通常設 0.1(10% 的請求追蹤),避免免費方案額度耗盡過快。

設定 ignoreErrors 排除不需要追蹤的錯誤(例如瀏覽器插件引發的錯誤)。

警報設定策略

不是所有警報都一樣重要,避免「警報疲勞」(Alert Fatigue):

立即通知(最高優先):

  • 網站完全無法訪問
  • 聯絡表單 API 錯誤
  • 增幅顯著的 JavaScript 錯誤

定期報告(中等優先):

  • 每天 / 每週的效能報告
  • 新出現的警告(Warning)錯誤

忽略(不值得追蹤):

  • 第三方腳本(GA4、聊天插件)的報錯
  • 某些特定瀏覽器插件引發的錯誤

在 Sentry 的設定中,可以建立「Issue Alerts」並配置觸發條件,只在重要的錯誤達到一定門檻時才通知,避免每個小錯誤都發 Email。

測試你的監控系統

設定好監控之後,要測試它是否真的有效:

在開發環境中手動觸發一個錯誤(例如在 Sentry 配置後,呼叫 Sentry.captureException(new Error('測試錯誤'))),確認 Sentry 有正確收集。

暫時讓你的 URL 無法訪問(例如關閉 dev server),確認 Uptime Robot 有發送通知。

監控系統本身也需要被確認是有效的。