談談系統監控應該怎麼做

  • 2019 年 10 月 4 日
  • 筆記

什麼樣的系統才算成功的呢?很顯然,能讓系統關聯方滿意的系統才算是成功的,想要做好這點,必須做好監控。監控是系統的眼睛,它能讓我們及時發現問題,不至於被動地等着用戶來反饋,但是監控不能過多過雜。否則,當真的發生異常時反而會使重要的信息石沉大海,不管是在告警列表裡還是在系統日記中。

一個系統關聯方可能有外部用戶、運營人員、研發、運維、客服等等,想讓他們能滿意,我們可以以總分總的思想方針盡量做到下面幾點,總分總的意思就是將目標分成子目標,每個子目標的實現方法、驗證方法可能是有交集的。剛剛說的關鍵點如下,保證外部用戶隨時可以看到非錯誤頁面、操作總是可用的,保證運營人員關心的數據是無安全問題的、流轉是實時的、計算是準確的,保證運維關心的應用服務、數據庫是正常的,保證客服反饋給產品或者運營的問題能夠準確及時得到響應。

我們有很多方法能驗證自己的系統能否讓系統關聯方都滿意。其一,可以通過可用率監控驗證我們是否能提供一個高可用的平台,這個可用率監控針對點可以是概括性的,也可以針對某個URL頁面訪問進行監控,還可以針對重要流程節點都進行監控。不過隨着微服務架構的盛行,一個完整流程功能可能分別部署到不同的節點上,那我們就需要有一個大屏監控,保證能及時發現節點問題。其二,可以通過調用次數(成交量)監控驗證功能是否總是可用的,驗證依賴上游出現問題時托底方案是否生效。其三,前面有說到數據要具備安全性、實時性、準確性,那我們可以實現具備審批流、對賬、補賬的系統,通過檢查正確度、準確度驗證這些功能是否生效。當然,性能監控也是不可或缺的。

不過我不得不潑冷水,想要實現讓關聯方都滿意的系統很難,但是我們可以使用歸納法查漏補缺慢慢實現這個遠大的目標,當出現問題時,同問題反饋方積極溝通,了解清楚復現步驟,然後進行工單分析處理,最後再做問題復盤。