iT邦幫忙

0

Day 29:長期維運之道:效能優化、定期清理執行日誌與安全防護策略

n8n
  • 分享至 

  • xImage
  •  

昨天把 n8n 搬上雲端 VPS 並掛上專屬網域後,整個系統終於有了 24 小時不打烊的家。但把服務丟到公網上跑,如果不做基本的維護保養,過了一兩個月往往會發現硬碟默默被塞爆、伺服器反應越來越遲鈍,甚至可能遇到外部惡意掃描。今天我們來替這台長期長跑的雲端伺服器補上最後一層護甲,做好效能調校、日誌清理與安全防護。

第一站:根治硬碟殺手——修剪執行紀錄(Executions Pruning)
很多人的 n8n 跑著跑著突然當機,十之八九都是因為資料庫被執行紀錄塞爆了。預設情況下,每一條工作流只要跑過一次,裡面的輸入、輸出資料甚至抓下來的檔案內容都會被完整寫進資料庫備查。如果頻繁跑排程或高頻抓取,一個月累積幾十萬筆記錄完全不是開玩笑的。我們可以在 Docker Compose 的環境變數裡加上三行設定:把 EXECUTIONS_DATA_PRUNE 設為 true 開啟自動清理、設定 EXECUTIONS_DATA_MAX_AGE 保留最近七天(168 小時)即可,並將 EXECUTIONS_DATA_PRUNE_MAX_COUNT 限制在合理的筆數上限。這樣系統每隔一段時間就會把過期的陳年紀錄安靜清掉,硬碟空間再也不會無故告急。

第二站:依需求調整執行紀錄的儲存等級
有些工作流非常單純,比如每五分鐘檢查一次網頁狀態,如果每一次「什麼都沒發生」的成功執行都原封不動存進資料庫,其實毫無意義。在 n8n 裡,可以針對個別工作流的設定分頁(Settings),把「Save successful production executions」關閉,改為只記錄失敗的執行(Save failed production executions)。這樣只有在真正噴錯出事時才留下日誌給我們排查,平常跑順的例行公事直接放行不寫庫,資料庫讀寫壓力瞬間減輕大半。

第三站:安全防護第一道牆——防火牆與連接埠隔離
服務掛在公網,最忌諱把內部資料庫或除錯連接埠大喇喇暴露在外面。在 VPS 上一定要啟用 UFW 防火牆,對外只開放必要的連接埠:SSH 遠端連線埠(建議改成非預設的自訂埠號)以及網頁標準的 80 和 443 埠。至於 n8n 容器內部的預設 5678 埠,只需要交給同一個 Docker 內部網路裡的反向代理伺服器(如 Caddy 或 Nginx)轉發,絕對不要直接開放給外網訪問。

第四站:防暴力破解與憑證安全
在登入安全層面,務必開啟 n8n 內建的用戶認證機制,並且密碼強度要拉滿,必要時可以配合反向代理伺服器掛上 Basic Auth 或 Cloudflare Zero Trust 雙重驗證。另外,平時在工作流裡用到的各類 API Key、密碼或連線 Token,絕對不要直接硬寫在 Code 節點或文字欄位中,一定要乖乖建在「Credentials」憑證管理模組裡,利用 n8n 的內建加密金鑰妥善保護。

把這些維運細節打點妥當後,你的自動化管家才算是真正具備了工業級的穩定性,放著讓它自轉幾個月都不用擔心掉鏈子。明天就是 30 天鐵人挑戰的完結篇,我們將回顧這整整一個月的學習里程碑,並整理出一份專屬於數位分身的未來擴充藍圖。


*提醒邦友,使用第三方服務/API 時,請務必評估資安風險與隱私保護
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言