1. 程式人生 > 其它 >監控告警系統(一)

監控告警系統(一)

什麼是監控告警系統

監控告警系統是一個軟體系統,給使用者提供監控、告警、通知的功能。可以用下圖簡單的描述

 

監控

監控系統採集並存儲監控物件的一個或者多個指標。這裡提到了幾個名詞,稍加解釋:

監控系統:對下采集一個或者多個監控物件的指標資料並存儲,對上暴露介面供上層做應用圖形化展示、告警評估、報表;

監控物件:在網際網路和軟體行業,可能是伺服器、虛擬機器等基礎設施,也可能是apiserver、訊息佇列、資料庫等軟體;

監控指標:監控物件的某一特徵,例如伺服器的CPU利用率、apiserver的RPS等。一般會週期性的採集,採集方式包括但不限於:Agent主動推送到Server、Server從Agent拉取、Agent釋出Server訂閱等方式,其值跟時間相關,類似下面的資料:

 

告警

告警系統根據設定的規則,週期性評估所有規則是否滿足條件,並輸出評估結果。這裡解釋一下幾個概念:

 

告警規則:告警規則是一個或者多個監控指標運算表示式。例如:以一分鐘為評估週期,記憶體使用率峰值大於60%;

評估:對所有的告警規則進行計算;

評估結果:評估的結果有三種情況:

滿足:表示式成立。例如:記憶體使用率峰值>60%;

不滿足:表示式不成立。例如:記憶體使用率峰值<=60%;

資料不足:採集的資料無法支撐表示式的計算。例如最近一分鐘內沒有采集到記憶體使用率的資料

通知

大多數監控告警系統,會把告警評估後的動作併入告警的範疇,動作可以是執行某個操作,但更多的情況是通知某物件,由某物件來執行具體的操作。通知模組負責將告警評估的結果釋出出去,涉及到幾個關鍵部分:

釋出方式:以何種方式釋出?例如:電視牆、大屏、簡訊、企業微信、郵件、電話、報警鈴聲等等

釋出範圍:釋出的範圍?例如:手機或者郵件的收件人列表

為什麼需要監控告警系統

監控告警的作用:

 

 

圖中監控告警系統的使用者包括:

運維人員:人力時代主要的使用者。接受到監控告警系統的通知後處理告警,根據需要檢視監控資料,並恢復監控物件的故障;

研發人員:根據告警、監控報表分析系統問題,指定優化方案,提升監控物件的可用性;

智慧運維繫統:根據告警資訊調整監控物件,調整的方法可能有:

根據負載彈性伸縮

故障隔離

故障恢復等

總結起來包括以下兩個方面:

提升系統可用性

改善使用者體驗

提升系統可用性

從上述公式可以看出,想要提升系統可用性,無外乎兩個辦法:

提升MTBF,即提升系統可靠性,讓系統儘可能長時間穩定執行不出故障。監控告警系統的報表可以幫助研發人員分析系統存在的問題,不斷改進,以提升可靠性;

降低MTTR,即減少故障修復時間,讓故障快速恢復。監控告警系統從兩個方面助力:

發現故障並告知智慧運維繫統自動擴容、自動恢復以應對過載、故障等情況;

對於沒有智慧運維繫統或者智慧運維繫統無法處理的情況及時發現故障並知會相關人修復。

改善使用者體驗

 

 

從上圖可以看出,對於產品的使用者來講,一般包含三種角色:

運維人員,負責所購買產品的執行維護,跟產品研發團隊的運維人員類似,但關注的指標不同;

資源管理員,負責資源的規劃、採購等。需要根據告警、監控的報表調整資源的規劃和佈局,例如某地資源利用率過低則減少該地的資源投入,某地負載過高則增加資源投入;

智慧運維/排程系統,根據資源使用情況智慧調整資源佈局,例如:根據負載彈性伸縮,根據特徵將流量排程到最合適的接入點等。

作為一個使用者,對什麼樣的產品是更為滿意呢?監控告警系統在提升使用者滿意度上又有什麼作用?

使用者對什麼樣的產品是更為滿意。我覺得能讓使用者滿意的產品至少有以下特點:

穩定、安全。這是基本要求;

透明。使用者對產品的知情權,使用該產品能夠給使用者帶來哪些收益,需要使用者付出什麼,有哪些限制等;

可操控。使用者可以根據自身需要進行調整產品的規格和期限。

監控告警系統在提升使用者滿意度上的作用有:

可以提升系統的可用性;

讓使用者清楚的瞭解所購買產品的真實執行情況;

將執行情況(告警、報表等)告知使用者,由使用者決定產品的規格、期限以及分佈情況