---
title: "用 Uptime Kuma 監控網站：從部署到收到第一則故障通知"
description: "在 Zenavo 上用範本部署 Uptime Kuma，新增網站與 API 監控，設定 Telegram 或電子郵件通知，驗證故障與恢復提醒，並做好磁碟區備份。"
date: 2026-11-10
language: zh-TW
url: https://zenavo.app/zh-TW/blog/uptime-kuma-monitoring
---

# 用 Uptime Kuma 監控網站：從部署到收到第一則故障通知

網站或服務上線後，與其等使用者來告訴你「打不開了」，不如讓監控在憑證過期或服務停機的第一時間發訊息通知你。

[Uptime Kuma](https://github.com/louislam/uptime-kuma) 是一個輕量、開源的自架監控工具：支援 HTTP(s)、關鍵字、TCP 連接埠、DNS、憑證到期等多種檢查方式，內建狀態頁與數十種通知管道（Telegram、Slack、Discord、電子郵件、Webhook 等）。本文用 Zenavo 的 Uptime Kuma 範本，從部署一路走到收到第一則真實告警。

## 部署在哪裡比較合適

開始之前，先想好要把 Uptime Kuma 裝在哪一台伺服器上：

- **和業務在同一台伺服器**：適合剛起步。某個容器掛了、憑證快過期了，它都能正常發通知；但如果整台伺服器斷網或停機，監控自己也會一起失聯。
- **放在另一台獨立的小伺服器上**：適合正式業務。Uptime Kuma 占用的資源很小，和業務分開部署才能在業務伺服器徹底停機時發出提醒。

## 從範本部署

先在 Zenavo 中[連接一台 Linux 伺服器](https://docs.zenavo.app/zh-TW/servers/add-a-server)，再開啟 [Uptime Kuma 範本](https://zenavo.app/deploy?template=uptime-kuma)，選擇伺服器並部署。

目前範本的設定如下：

| 設定 | 值或用途 |
|---|---|
| 映像檔 | `louislam/uptime-kuma:1` |
| HTTP 連接埠 | `3001` |
| 持久化目錄 | `/app/data`，SQLite 資料庫、監控項目、歷史紀錄和通知憑證都在這裡 |

在 uptime-kuma 服務的 **網路** 頁為 `3001` 連接埠綁定網域，例如 `status.example.com`，在 DNS 新增指向伺服器的 A 記錄，等待 HTTPS 生效。步驟見[網域文件](https://docs.zenavo.app/zh-TW/networking/domains)。

**網域生效後立即開啟網站建立管理員帳號。** 第一個開啟頁面的人可以直接設定管理員使用者名稱和密碼，請儘快自己完成這一步。

## 新增第一條監控

登入後點擊左上角 **新增監控項目（Add New Monitor）**。常見設定建議：

| 設定項目 | 建議 |
|---|---|
| 監控類型 | 一般網頁或 API 選 **HTTP(s)**；檢查回傳內容是否包含特定文字選 **HTTP(s) - 關鍵字** |
| 名稱 | 寫清楚環境與用途，例如 `正式站 - 首頁` 或 `API - /healthz` |
| URL | 使用者實際造訪的完整 `https://` 網址 |
| 心跳間隔 | `60` 秒 |
| 重試次數 | 設為 `2` 或 `3` 次，避免網路偶發抖動一下就半夜把你吵醒 |
| 憑證到期通知 | 開啟，提前 7–14 天提醒續期異常 |

如果你的應用程式依賴資料庫，除了監控靜態首頁，建議再加一條專門檢查 `/healthz` 等健康狀態端點的監控，確認後端與資料庫連線也正常。

## 設定通知，並做一次真實演練

在右上角頭像選單開啟 **設定 → 通知（Notifications）**，或直接在編輯監控項目時點擊 **設定通知**：

1. 選擇你常用的管道（例如 Telegram、Webhook、SMTP 郵件），填入對應的 Token 或帳號資訊。
2. 點擊 **測試（Test）**，確認手機或信箱收到一則測試訊息。
3. 打開 **預設啟用（Default enabled）**，或在具體監控項目裡勾選這個通知管道，然後**儲存監控項目**（很多人點了測試收到訊息，卻忘了把它勾到監控項目上並儲存）。

為了確認真正出故障時能收到提醒，用一個測試服務演練一次：

1. 為一個不對外承接流量的測試服務新增監控，等待狀態變成綠色的 **Up**。
2. 在 Zenavo 裡暫停這個測試服務，等待 1–3 分鐘（取決於你設定的間隔與重試次數），確認監控變成紅色的 **Down**，且手機收到故障通知。
3. 重新啟動測試服務，確認收到恢復（Up）通知。

## 公開狀態頁（選用）

如果你想做一個像 `status.example.com/status/main` 這樣給使用者看的狀態頁，點頂部列的 **狀態頁面（Status Pages）** 新增一個，挑出適合公開的服務放進去。內部管理後台、資料庫連接埠與不希望暴露的服務名稱不要放上公開狀態頁。

## 備份與升級

監控項目、通知金鑰與可用率歷史都在 `/app/data` 磁碟區裡。在 uptime-kuma 服務的 **備份與還原** 中可以備份這個磁碟區：

1. 停止專案（磁碟區備份需要專案處於停止狀態）。
2. 建立備份，完成後重新啟動專案。
3. 下載一份備份妥善保存（裡面包含你的通知 Webhook / Bot Token）。詳見[備份與還原](https://docs.zenavo.app/zh-TW/operations/backups)。

範本使用的是 `louislam/uptime-kuma:1`（固定在 v1 大版本）。如果要升級到後續大版本，務必先讀 Uptime Kuma 的[發行說明](https://github.com/louislam/uptime-kuma/releases)並先備份 `/app/data`；跨大版本遷移資料庫後，直接把映像檔改回舊版本通常無法回退，需要還原升級前的備份。

## 常見問題

**點了「測試通知」能收到，服務掛了卻沒收到提醒？**
開啟該監控項目的編輯頁，看右側 **通知** 清單裡有沒有把剛才設好的通知管道勾上，勾上後點底部的 **儲存**。

**需要掛載宿主機的 Docker Socket 嗎？**
不需要。透過 HTTP(s) 和 TCP 連接埠就能檢查絕大部分服務，不掛載 `docker.sock` 更安全。監控同一個 Zenavo 專案裡的其他服務時，也可以填私有網路網址（如 `http://api.zenavo.internal:3000/healthz`）。

**經常收到誤報怎麼辦？**
把監控項目裡的 **重試次數（Retries）** 從 0 調到 2–3 次，並把逾時時間適當放寬，過濾掉單次網路抖動。

從 [Uptime Kuma 範本](https://zenavo.app/deploy?template=uptime-kuma)開始：綁定網域、建立管理員，設好通知並用測試服務演練一次停機與恢復，你的監控才算真正就位。
