如何做監控?Google SRE來解密

<strong>監控值班室:@隔壁老王頭 SQL執行耗時時間過長,達到了報警閾值【5000ms】

<strong>隔壁老王頭:@監控值班室 少量報警請忽略,批量關注即可。

<strong>監控值班室:@隔壁老王頭 訂單號【88886666】狀態為處理中,是否需要關注?

<strong>隔壁老王頭:@監控值班室 請忽略,稍後運營會處理。


如果上面的對話,每天都會高頻出現在 QQ、微信之中,你是否會炸毛,尤其是深夜夢正香甜時。


如果上面的報警,你是否會怒火,尤其是當報警郵件撐爆了你的郵箱時。


其實,這就是寧可錯殺一千,不可放過一個的監控系統設計理念,千萬別怒火。


今天,結合《SRE Google運維解密》,嘗試提煉出所有關於監控系統設計的精髓,希望能捕捉到對現有系統有建設性的改進意見。


如何做監控?Google SRE來解密


腦圖整理的很詳細,若圖看不清,想辦法放大,下面開始重點講解。


為什麼要做監控?


在遠程辦公的當下,你所負責的系統,能正常提供服務顯得尤其重要。倘若沒有一套監控機制,猶如系統在線上裸奔,時不時需要靠人肉去判斷系統是不是崩掉了,你肯定忍不了,你肯定會想要是打造一款監控系統。


監控為什麼重要?Google SRE 解密,離開了監控系統,我們就沒法辨別一個服務是不是在正常提供服務;沒有一套設計周全的監控體系,就如同蒙著眼睛狂奔;監控系統是服務運維中不可或缺的一部分。


無論是研發、運維,估計幾乎每天都會發問幾句:什麼東西出故障了?為什麼出故障?


其實,什麼東西出故障了,是問題的現象;為什麼出故障,是問題的原因。例如,網站正在返回 HTTP 500 或者 404,究其原因是數據庫服務器拒絕鏈接;接口響應速度很慢,分析原因是 CPU 被某個排序操作佔滿啦。


監控解決啥問題?Google SRE 解密,監控系統應該解決現象與原因兩個主要問題。


為什麼要監控呢?Google SRE 解密,監控一個系統有多個原因,主要包括如下幾項。

1、分析長期趨勢。例如數據庫目前的數據量,以及增長速度;每日活躍用戶的數量增長的速度等。

2、跨時間範圍的比較。增加節點後,memcache 的緩存命中率是否增加;網站速度是否比上週速度要慢等。

3、報警。當某項東西出現故障了,需要立刻有人修復,或者需要有人儘快查看。

4、監控臺頁面 dashboard。用來回答有關服務的一些基本問題。

5、臨時性的回溯分析。


做監控要搞懂哪些術語?


2020 年計劃在 AIOps 上有所建樹,相關概念性的東西還是要普及,底盤還是要打紮實一些。


如何做監控?Google SRE來解密


有關監控的部分相關術語,腦圖中整理的很詳細了(一定要好好看圖呦),不再贅述。


在這裡,要重點說一下服務質量術語,尤其是當我們想在指標監控上有所嘗試時,這些術語顯得尤其重要。


什麼是服務質量指標呢?服務的某項服務質量的一個具體量化指標,例如系統吞吐量,每秒請求數量;請求延遲,處理請求所消耗的時間。


如何做監控?Google SRE來解密


如圖中整理所示,不同類型的系統,指標也略有不同。例如,用戶可見的服務系統的指標,通常關心可用性、延遲,以及吞吐量;存儲系統的指標則強調延遲、可用性和數據持久性;大數據系統的指標,通常關心吞吐量和端到端的延遲。


Google SRE 建議我們,在設計時,要考慮指標的標準化,構建一套可以重用的指標模板。設計監控系統時一定要追求簡化,指標簡化,直到不能再簡化。


什麼是服務質量目標呢?服務質量目標說的是服務某個指標的目標值或者範圍。


Google SRE 建議我們,在實踐時,應該從思考用戶最關心的方面入手,而非從現在能度量什麼入手;另外,與其選擇指標,再想出對應的目標,不如從想要的目標反向推導出具體的指標。


監控的四個黃金指標


監控系統的四個黃金指標分別是延遲、流量、錯誤和飽和度。


如何做監控?Google SRE來解密


如果我們度量所有這四個黃金指標,同時在某個指標出現故障時,或者對於飽和度來說,快要發生故障時,能發出警報,若能做到這些,服務的監控就基本差不多了。


監控的三類重要輸出


如開篇對話場景對應的系統,設計時採取的便是針對某個特定的情況或者監控值,一旦出現情況或者監控值超過閾值就觸發 E-mail 警報,也就是所謂的最普遍和傳統的報警策略。


SRE 解密:這樣的報警策略並不是非常有效:一個需要人工閱讀郵件和分析警報,來決定目前是否需要採取某種行動的系統,從本質上就是錯誤的。監控系統,不應該依賴人來分析警報信息,而是應該由系統自動分析,僅當需要用戶執行某種操作時,才需要通知用戶。


這或許就是現有很多監控系統可以優化改進之處。另外,一個好的監控系統應該只有下列三種輸出。


如何做監控?Google SRE來解密


Google SRE 建議我們:每當收到緊急警報時,應該立即需要我執行某種操作;每天只能進入緊急狀態幾次,太多就會導致「狼來了」效應;每個緊急警報都應該是關於某個新問題的,不應該彼此重疊。


實踐才是硬道理


十年磨一劍,Google 的監控系統 Borgmon 仍在不斷的改進和完善。


如何做監控?Google SRE來解密


雖然 Borgmon 仍是 Google 內部工具,但是近年來,監控系統也經歷了爆發式增長:Prometheus、Riemann、Heka、Bosun 都是開源軟件中與 Borgmon 理念類似的系統,尤其是 Prometheus。


所以,我們可以利用開源軟件,嘗試落地監控和報警的理念。


好了,本次的分享就到這裡,碼字不易,整理腦圖更不易,建議收藏,如果感覺有點幫助,請多分享。


分享到:


相關文章: