iT邦幫忙

2025 iThome 鐵人賽

DAY 22
0

在前幾天的鐵人賽文章中,我們學會了如何讓 n8n 被動地處理資料(如彙整報告、回應指令)。今天,我們要更進一步,讓 n8n 主動地為我們工作,化身為一位全年無休、忠心耿耿的網站守護者。

每個 IT 人最擔心的惡夢之一,莫過於自己的個人博客、公司官網或重要的 API 服務在無人知曉的情況下掛點。雖然市面上有許多優秀的監控服務(如 UptimeRobot),但它們要嘛收費,要嘛功能受限。

今天,我們就來用 n8n 親手打造一個完全免費、功能強大的網站健康檢查系統。

我們的目標: 建立一個 n8n 工作流,每 5 分鐘自動檢查一次指定的網站。如果網站無法正常訪問(例如,HTTP 狀態碼不是 200),就立即透過 Discord 發出緊急警報。

一、核心工作流架構 (四個節點,超簡單)
這個監控系統的核心邏輯非常直觀,只需要四個節點就能串連起來:

A[Schedule: 每5分鐘觸發一次] --> B[HTTP Request: 檢查網站狀態];
B --> C{IF: 判斷狀態碼是否正常};
C -- 否 (不等於200) --> D[Discord: 發送警報];
C -- 是 (等於200) --> E[結束];

二、節點詳細設定 (手把手教學)

  1. Schedule 節點:設定監控頻率
    這是我們監控系統的心跳,決定了多久檢查一次網站。

操作方法:從節點面板中拖拉出 Schedule 節點。

主要參數:

Mode: 選擇 Cron。這是最高級的排程模式,可以讓你定義非常精確的時間。

Cron Expression: 輸入 */5 * * * *。

這串神秘代碼的意思是:「每 5 分鐘執行一次」。你也可以根據需求調整,例如 */1 * * * * 代表每分鐘。

  1. HTTP Request 節點:探測你的網站
    這個節點是我們的「偵察兵」,負責實際去訪問網站並帶回情報。

操作方法:新增 HTTP Request 節點。

主要參數:

URL: 輸入你要監控的網站網址,例如 https://ithelp.ithome.com.tw/

點擊 Options → Add option,加入以下兩個關鍵設定:

勾選 Full Response:這樣我們才能獲取完整的 HTTP 回應,包含最重要的「狀態碼 (statusCode)」。

勾選 Continue on Fail:務必開啟此選項! 如果不開,一旦網站超時或返回 500 錯誤,整個 n8n 流程就會直接報錯中止,我們就收不到警報了。開啟後,即使請求失敗,流程依然會繼續,讓我們有機會處理錯誤狀態。

  1. IF 節點:判斷網站是否健康
    這個節點是我們的大腦,負責判斷偵察兵帶回來的情報是否代表「出事了」。

操作方法:新增 IF 節點。

設定條件:

Value 1: {{$json.statusCode}} (從上一個 HTTP Request 節點取得狀態碼)。

Operation: 選擇 Not Equal。

Value 2: 200。

這個條件的意思是:「如果狀態碼不等於 200」,就代表網站可能出問題了(例如 404 Not Found、500 Server Error、503 Service Unavailable)。符合此條件的資料會從 true 的出口流出。

  1. Discord 節點:發送緊急警報
    最後,當 IF 節點判斷網站異常時,我們需要一個大聲公來通知我們。

操作方法:新增 Discord 節點,並將它連接到 IF 節點的 true 輸出端。

主要參數:

Credential: 選擇你的 Discord Bot 憑證。

Channel ID: 選擇你要接收警報的頻道。

Content: 設計一則清楚的警報訊息,例如:

text
🔴 緊急警報!
網站 {{ $json.request.url }} 可能已掛點!
狀態碼:{{ $json.statusCode }}
請立即檢查!
@everyone
你可以在訊息中使用 @everyone 或 @here 來標記頻道中的所有人,確保警報不會被忽略。

三、進階玩法:不只警報,還要記錄!
一個專業的監控系統不只會警報,還會留下紀錄。我們可以簡單地在流程中加入 Google Sheets 節點,打造一個簡易的 Uptime 歷史紀錄。

操作方法:在 IF 節點之後,無論是 true 還是 false 的路徑,都接上一個 Google Sheets 節點。

功能:將每次檢查的時間、URL、狀態碼、甚至回應時間 ($json.duration) 都記錄到試算表中。

價值:一段時間後,你就可以用這些數據來分析網站的穩定性,或是製作一個簡易的 Uptime 狀態頁面。

四、總結與展望
恭喜你!只用了四個簡單的節點,你就完成了一個 24 小時不間斷的網站監控系統。這個流程雖然簡單,卻極具實用價值,完美體現了 n8n 作為 IT 人瑞士刀的強大之處。

以此為基礎,你還可以繼續發想更多可能性:

監控多個網站:在開頭用一個 Code 節點定義一個網址列表,然後讓後續流程一一檢查。

追蹤回應時間:在 IF 節點中加入「回應時間大於 2000ms」的條件,實現網站性能監控。


上一篇
Day 21 :n8n「最速自動化」懶人包
下一篇
Day 23:你的個人情報中心!n8n 打造 RSS 多重監控與 Discord Webhook 推播
系列文
「解放自動化新利器!深入了解 n8n 如何助你輕鬆打造專屬工作流程」23
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言