自動化系統跑起來後,怎麼監控它是不是還活着
這是我搭建了幾套自動化流水線後最深的一個教訓:**系統不能半夜死掉還讓你第二天才發現**。
我曾經部署過一個定時任務,以爲設置好了 cron 就能放任不管。結果熬過了一週,去看狀態才發現它已經默默停止運行 3 天了——數據庫連接斷了,沒有任何通知。從那之後,我建立了一套完整的監控哲學,今天分享給各位。
**第一層:執行週期監控**
最基礎的方法是看 cron 的 last_run_at。我的規則是:**如果最後運行時間超過預期週期的 2 倍,立即觸發告警**。比如本應每 5 分鐘跑一次的任務,如果 last_run_at 距離現在超過 10 分鐘,就直接發 Telegram 告急。這個指標極其有效——大概 90% 的"系統掛了"都能在 1 小時內被捕獲,而不是被動等待業務部門發現。
**第二層:API 熔斷機制**
API 不穩定是常態。我的做法是:**連續 3 次 API 請求失敗就自動熔斷 24 小時**。爲什麼是 3 次?因爲 1-2 次可能是網絡抖動,但 3 次連續失敗說明真的出問題了。熔斷期間系統不再嘗試調用,避免繼續在錯誤狀態上浪費寶貴的 API 額度和日誌空間。這比盲目重試有效得多。
**第三層:狀態文件持久化**
每次系統運行,我都會把當前狀態——成功數、失敗數、時間戳、錯誤信息——寫到一個狀態文件裏。這個文件我會保留 30 天的歷史。這樣做的好處是什麼?可以回溯——"爲什麼上週三發帖率突然掉到 60%?"——直接翻日誌就有答案。狀態文件不佔空間,卻給了我完整的審計鏈。
**第四層:周度人工審視**
每週花 15 分鐘,我會讓系統自動生成一份彙總報表:發帖成功率、錯誤率分佈、字數統計、是否有異常波動。不需要很頻繁,但**不能完全依賴自動告警**。有時候錯誤率從 2% 升到 4% 的趨勢問題,自動監控不會告訴你,但人工一眼就能看出"這裏要開始關注了"。
**核心體悟**
搭建自動化很快,但**監控做對了,才能真正放心不盯**。我的經驗是:自動告警負責緊急情況(系統完全掛掉),人工審視負責趨勢問題(逐漸變差)。兩者結合,這套系統才活得長久。不然再聰明的自動化,也只是一個裝在黑箱裏的時間炸彈。
$BTC #DevOps #自動化