1. 程式人生 > >基礎設施與應用監控之指標、監控和報警簡介

基礎設施與應用監控之指標、監控和報警簡介

概述

瞭解基礎設施和系統的狀態對於確保服務的可靠性和穩定性至關重要。有關部署的執行狀況和效能的資訊不僅可以幫助您的團隊對問題做出反應,而且還可以讓他們放心地進行更改。獲得這種洞察力的最佳方法之一是使用強大的監控系統,該系統收集指標,視覺化資料,並在事情出現故障時向操作員發出警報。

在本文中,我們將討論什麼是指標,監控和警報。我們將討論它們為何重要,一般情況下你需要關注哪些型別的指標以及您可能希望跟蹤的資料型別。同時我們將在此過程中介紹一些關鍵術語。

什麼是指標,監控和警報?

指標,監控和警報都是相互關聯的概念,它們共同構成了監控系統的基礎。他們能夠提供對系統執行狀況的可見性,幫助您瞭解系統使用或行為的趨勢,並瞭解您所做的更改的影響。如果指標超出預期範圍,系統可以傳送通知以提示操作員檢視,然後可以提供幫助資訊以確定可能的原因。

在本節中,我們將介紹這些概念以及它們如何組合在一起。

什麼是指標以及我們為什麼收集它們?

指標表示可以在整個系統中觀察和收集的資源使用情況的原始資料。這些資料可能是作業系統提供的使用情況摘要,也可能是與系統元件的特定功能相關的更高級別的資料型別,例如每秒提供的請求數或Web伺服器池中的運算元。某些指標與總容量相關,而其他指標則表示為操作元件的“繁忙”速率(呼叫頻率)。

通常,最簡單的指標是您的作業系統已經公開的表示底層物理資源使用的指標。例如磁碟空間,CPU負載,記憶體使用等,這些資料都是可用,可立即提供價值,並且無需額外工作即可轉發到監控系統。許多Web伺服器,資料庫伺服器和其他軟體也提供了自己的指標,這些指標也可以直接傳給監控系統。

而對於其他元件,尤其是您自己的應用程式,您可能必須新增程式碼或介面以公開您關注的指標資料。收集和公開指標有時被稱為向您的服務新增工具。

度量指標非常有用,因為它們可以深入瞭解系統的行為和執行狀況,尤其是在彙總分析時。它們代表監控系統使用的原材料,用於構建環境的整體檢視,自動響應變更,並在需要時提醒人員。度量指標是用於瞭解歷史趨勢,關聯各種因素以及衡量績效,消費或錯誤率變化的基本值。

什麼是監控?

雖然指標代表系統中的資料,但監控是收集,彙總和分析這些值的過程,用以提高對元件特徵和行為的瞭解。來自環境各個部分的資料被收集到監視系統中,該系統負責儲存,聚合,視覺化以及在數值滿足特定要求時啟動自動響應。

通常,指標和監控之間的差異反映了資料和資訊之間的差異。資料由原始的,未處理的事實組成,而資訊則通過分析和組織資料來構建,以構建提供有價值的上下文。監控採用指標資料,對其進行聚合,並以各種方式呈現,以便人們可以從各個部分的集合中洞察系統的執行情況。

監控系統實現了許多相關功能。他們的首要責任是接受和儲存傳入的資料和歷史資料。雖然表示當前時間點的值很有用,但檢視與過去值相關的數字幾乎總是更有幫助,可以提供有關變化和趨勢的參考。這意味著監控系統應能夠在一段時間內管理資料,這可能涉及對舊資料進行取樣或聚合。

其次,監控系統通常提供資料的視覺化。雖然度量指標可以作為單獨的值來顯示和理解,但是當資訊以視覺上有意義的方式組織時,人們可以更好地識別趨勢並理解系統元件是如何組合在一起。監控系統通常使用可配置的圖表和儀表板,可通過瀏覽顯示器來理解複雜變數或系統內變化的相互作用。

監控系統提供的附加功能是組織和關聯來自各種輸入的資料。為了使指標有用,管理員需要能夠識別不同資源之間和伺服器元件之間的模式。例如,如果應用程式遇到錯誤率高峰,則管理員應該能夠使用監控系統來發現該事件是否與相關資源的容量耗盡有關。

最後,監控系統通常用作定義和啟用警報的平臺,我們將在下面討論。

什麼是警報?

警報是監控系統的響應元件,它根據度量指標值的更改來執行操作。警報由兩個部分組成:基於度量的條件或閾值,以及當值超出可接受條件時要執行的操作。

雖然監控系統對於主動解釋和調查非常有用,但完整監控系統的主要優點之一是讓管理員脫離系統。通過警報,您可以定義有效管理,同時依靠軟體的被動監控來監控不斷變化的情況。

雖然通知責任方是警報的最常見行動,但也可以根據閾值違規觸發一些程式性響應。例如,可以使用自動擴充套件應用程式層的指令碼來響應指示您需要更多CPU來處理當前負載的警報。雖然這不是嚴格的警報,因為它不會產生通知,但通常也可以使用相同的監控系統機制來啟動這些過程。

但是,警報的主要目的仍然是引起人們對系統當前狀態的關注。自動化響應是確保僅在需要知識淵博的人員考慮的情況下觸發通知的重要機制。警報本身應包含有關錯誤的資訊以及查詢其他資訊的位置。然後,響應警報的個人可以使用監視系統和相關工具(如日誌檔案)來調查問題的原因並實施緩解策略。

即使是中等複雜性的基礎設施也需要區分警報嚴重程度,以便可以使用適合問題規模的方法通知負責的團隊或個人。例如,儲存利用率的升高可能需要工作單或電子郵件,而面向客戶端的錯誤率或無響應的增加可能需要向待命的工作人員傳送訊息。

什麼型別的資訊是重要的需要跟蹤的?

您監控的值和跟蹤的資訊可能會隨著基礎架構的發展而變化。由於系統通常以層次結構執行,更復雜的層構建在更原始的基礎架構之上,因此在規劃監控策略時考慮這些不同級別的可用度量標準會很有用。

基於主機的指標

原始指標層次結構的底部是基於主機的指標。這些將涉及評估單個機器的執行狀況或效能,而忽視其應用程式堆疊和服務。這些主要包括作業系統或硬體的使用或效能,例如:

  • CPU
  • 記憶體
  • 磁碟空間
  • 程序

這些可以讓您瞭解可能影響單臺計算機保持穩定或執行工作的能力的因素。

應用程式指標

您可能希望檢視的下一類指標是應用程式指標。這些指標涉及依賴於主機級資源(如服務或應用程式)的處理或工作單元。要檢視的特定型別的度量指標取決於服務提供的內容,它具有與之互動的其他元件一定的依賴關係。此級別的度量標準是應用程式的執行狀況,效能或負載的指標:

  • 錯誤和成功率
  • 服務失敗並重新啟動次數
  • 響應的效能和延遲情況
  • 資源使用情況

這些指標有助於確定應用程式是否正常執行並且具有高效率。

網路連線指標

對於大多數型別的基礎設施,網路連線指標將是另一個值得探索的資料集。這些是面向外部可用性的重要指標,對於確保跨越多臺計算機的任何系統,可以被其他計算機能正常訪問服務也是必不可少的。與我們到目前為止討論過的其他指標一樣,應該檢查網路的整體功能正確性以及通過檢視以下內容來提供必要效能的能力:

  • 連線
  • 錯誤率和丟包率
  • 延遲
  • 頻寬利用率

監控網路層可以幫助您提高內部和外部服務的可用性和響應能力。

伺服器叢集指標

在處理水平擴充套件的基礎架構時,您需要為伺服器叢集新增某些指標。雖然有關單個伺服器的指標很有用,但大規模的服務更多地體現為一組計算機執行工作並對請求做出充分響應的能力。這種型別的度量在很多方面只是應用程式和伺服器度量的更高級別推斷,但在這種情況下,資源是同構伺服器而不是機器級元件。您可能想要跟蹤的一些資料是:

  • 叢集池資源使用情況
  • 縮放調整指標
  • 降級的例項

收集總結伺服器集合執行狀況的資料對於瞭解系統處理負載和響應具有非常重要的作用。

外部依賴指標

您可能希望新增到系統的其他指標是與外部依賴關係相關的指標。通常,服務通過提供狀態頁面或API來發現服務中斷,但在您自己的系統中跟蹤這些內容以及您與服務的實際互動可以幫助您識別可能影響您運營的提供商問題。可能適用於此級別跟蹤的某些指標包括:

  • 服務狀態和可用性
  • 成功率和錯誤率
  • 執行率和運營成本
  • 資源枯竭

還有許多其他型別的指標可以幫助收集。不同側重點的重要資訊可以幫助您確定對預測或識別問題,成為最有用的指標。請記住,較高級別上最有價值的指標可能是由較低層提供的資源。

影響您選擇監控的因素

影響您選擇收集和採取行動的一些因素包括:

  • 可用於跟蹤的資源:根據您的人力資源,基礎架構和預算,您必須將您所跟蹤的範圍限制為您能夠負擔得起併合理管理的範圍。
  • 應用程式的複雜性和目的:應用程式或系統的複雜性會對您選擇跟蹤的內容產生很大影響。可能對某些軟體至關重要的專案在其他軟體中可能並不重要。
  • 部署環境:雖然強大的監控對於生產系統來說是最重要的,但是分段系統和測試系統也可以從監控中受益,儘管嚴重性,粒度和測量的總體指標可能存在差異。
  • 度量標準有用的可能性:影響某些事物是否被衡量的最重要因素之一是它有可能在未來發揮作用。跟蹤的每個附加度量標準都會增加系統的複雜性並佔用資源。資料的必要性也可能隨時間而變化,需要定期重新評估。
  • 穩定性的基本要素:簡單地說,穩定性和正常執行時間可能不是某些型別的個人或早期專案的優先事項。

影響您決策的因素取決於您的可用資源,專案的成熟度以及您所需的服務水平。

指標,監控和警報系統的重要性質

雖然每個監控應用程式或服務都有其優點和缺點,但最佳選擇通常具有一些重要的特性。下面評估監測系統時要考慮的一些更重要的特徵。

獨立於大多數其他基礎設施

監控系統的最基本要求之一是在其他服務之外。雖然將服務組合在一起有時很有用,但監控系統的核心職責,診斷問題的有用性以及與監控系統的關係意味著監控系統的獨立可訪問性非常重要。您的監控系統將不可避免地對其監控的系統產生一些影響,但您應該儘量減少這種影響,以減少跟蹤對效能的影響,並在發生其他系統問題時提高監控的可靠性。

可靠,值得信賴

另一個基本要求是可靠性。由於監控系統負責收集,儲存和提供對高價值資訊的訪問,因此您必須相信它能夠每天正常執行。丟失的指標,服務中斷和不可靠的警報都會對您有效管理能力產生直接的有害影響。這不僅適用於核心軟體可靠性,也適用於您啟用的配置,因為不準確的警報等錯誤可能會導致系統失去信任。

易於使用的摘要和詳細資訊檢視

顯示高階摘要並按需提供更多詳細資訊的能力是確保指標資料對操作員有用且可操作的重要特徵。以可立即理解的方式呈現最常見資料的儀表板可幫助使用者一目瞭然地瞭解系統狀態。可以為不同的工作職能或感興趣的領域建立許多不同的儀表板檢視。

同樣重要的是能夠從摘要顯示中向下鑽取以顯示與當前任務最相關的資訊。動態調整圖表的比例,切換不必要的指標以及覆蓋來自多個系統的資訊對於使工具以互動方式用於調查或根本原因分析至關重要。

維護歷史資料的有效策略

當監控系統具有豐富的資料歷史記錄,可以幫助建立長時間線上的趨勢,模式和一致性時,它是最有用的。理想情況下,所有資訊都將以其原始粒度無限期保留。成本和資源限制有時可能需要以較低的解析度儲存較舊的資料。監控系統具有以全粒度和取樣格式處理資料的靈活性,為如何處理不斷增加的資料量提供了更廣泛的選擇。

一個有用的相關功能是能夠輕鬆匯入現有資料集。如果降低歷史指標的資訊密度不是一個有吸引力的選擇,那麼將舊資料匯入到長期儲存可能是更好的選擇。在這種情況下,您不需要在系統中維護舊資料,但是當您希望分析或使用它時,您需要能夠批量重新載入它。

能夠關聯不同來源的因素

監控系統負責提供整個基礎架構的整體檢視,因此它需要能夠顯示相關資訊,即使它來自不同的系統或具有不同的特徵。管理員應該能夠將來自其系統的不同部分的資訊粘合在一起,以瞭解整個基礎架構中的潛在互動和整體狀態。確保在整個系統中配置時間同步是能夠可靠地關聯來自不同系統的資料的先決條件。

易於開始跟蹤新指標或基礎架構

為了使您的監控系統準確地表示您的系統,您需要能夠隨著機器和基礎設施的變化進行調整。新增額外機器時的最小摩擦力將有助於您這樣做。同樣重要的是能夠在不破壞與其相關的收集資料的情況下輕鬆移除退役機器。系統應使這些操作儘可能簡單,以鼓勵將監視設定為例項配置或報廢過程的一部分。

相關的能力很重要,可以輕鬆設定監控系統以跟蹤全新的指標。這取決於核心監視配置中度量標準的定義方式,以及可用於將度量標準資料傳送到系統的機制的種類和質量。定義新指標通常比新增其他計算機更復雜,但降低新增或調整指標的複雜性將有助於您的團隊在適當的時間範圍內響應不斷變化的需求。

靈活而強大的警報

要評估的監控系統最重要的一個方面是其警報功能。除了非常嚴格的可靠性要求之外,警報系統還需要足夠靈活,以通過多種媒介通知操作員,並且功能強大,能夠構成周到,可操作的通知觸發器。許多系統通過提供與現有尋呼服務或信使應用程式的整合,將實際向其他方傳遞通知的責任推遲。這最大限度地減少了警報功能的責任,並且通常提供更靈活的選項,因為外掛只需要使用外部API。

但是,監控系統無法推遲的部分是定義警報引數。警報是根據超出可接受範圍的值定義的,但定義可能需要一些細微差別以避免過度警報。例如,瞬間尖峰通常不是問題,但持續升高的負載可能需要操作員注意。能夠清楚地定義警報的引數是構成健壯,可靠的一組警報條件的要求。

附加術語

在探索監控生態系統時,您將開始遇到一組共享術語,這些術語經常用於討論監控系統的特性,正在處理的資料以及需要考慮的不同權衡。雖然並非詳盡無遺,但下面的列表可以幫助您瞭解一些您最有可能遇到的術語。

  • 可觀察性:雖然沒有嚴格定義,但可觀察性是一個通用術語,用於描述與提高對系統的認識和可見性相關的過程和技術。這可以包括監控,指標,視覺化,跟蹤和日誌分析。
  • 資源:在監控和軟體系統的環境中,資源是任何可耗盡或有限的依賴。根據所討論的系統的特徵,被認為是資源的內容可能有很大差異。
  • 延遲:延遲是衡量完成操作所需時間的指標。依賴於元件的可以衡量的處理、響應或傳遞時間。
  • 吞吐量:吞吐量表示系統可以處理的最大處理速率。這可能取決於軟體或硬體設計。通常,理論吞吐量與實際觀察到的吞吐量之間存在重要區別。
  • 績效:績效是衡量系統完成工作效率的一般指標。效能是一個總稱,通常包含吞吐量,延遲或資源消耗等工作因素。
  • 飽和度:飽和度是衡量所用容量的指標。完全飽和表示當前正在使用100%的容量。
  • 視覺化:視覺化是以一種格式化呈現度量資料的過程,該格式允許通過圖形或圖表進行快速,直觀的解釋。
  • 日誌聚合:日誌聚合是編譯,組織和索引日誌檔案的行為,以便於管理,搜尋和分析。雖然與監控分開,但聚合日誌可與監控系統結合使用,以識別原因並調查故障。
  • 資料點:資料點是單個指標的單次測量。
  • 資料集:資料集是度量標準的資料點集合。
  • 單位:單位是測量值的上下文。單位定義測量的大小,範圍或數量以瞭解範圍並允許比較。
  • 百分比單位:百分比單位是作為有限整體的一部分的測量值。百分比單位表示一個值在總量中的佔有多少。
  • 速率單位:速率單位表示在一段固定時間內度量的大小。
  • 時間序列:時間序列資料是一系列表示隨時間變化的資料點。大多數指標最好用時間序列表示,因為單個數據點通常表示特定時間的值,結果系列點用於顯示隨時間的變化。
  • 取樣率:取樣率是對代表性資料點的採集頻率的測量,而不是連續採集。更高的取樣率更準確地表示測量的行為,但需要更多的資源來處理額外的資料點。
  • 解析度:解析度是指構成資料集的資料點的密度。在相同時間範圍內具有更高解析度的集合表示更高的取樣率和對相同行為的更細粒度的檢視。
  • 儀表:儀表是跟蹤軟體行為和效能的能力。這是通過向軟體新增程式碼和配置來輸出資料然後由監控系統使用來實現的。
  • 觀察者效應:觀察者效應是監測系統本身對所觀察現象的影響。由於監測佔用資源,因此衡量行為和績效的行為將改變所產生的價值。監控系統試圖避免增加不必要的開銷以最小化這種影響。
  • 過度監控:當配置的指標和警報數量與其有用性成反比時,就會發生過度監控。過度監控可能會對基礎架構造成壓力,使查詢相關資料變得困難,並導致團隊失去對其監控和警報系統的信任。
  • 警報疲勞:警報疲勞是由於頻繁,不可靠或不正確的優先順序警報導致的人類對敏感性的反應。警報疲勞可能導致操作員忽略嚴重問題,並且通常表明警報條件需要重新評估。
  • 閾值:警報時,閾值是可接受值和不可接受值之間的邊界,如果超出則觸發警報。警報通常配置為在值超過閾值一段時間時觸發,以避免傳送臨時峰值警報。
  • 分位數:分位數是用於根據數值將資料集分成不同組的分界點。分位數用於將值放入表示資料群的片段的“桶”中。通常,這用於將常見值與異常值分開,以更好地理解代表性和極端情況的構成。
  • 趨勢:趨勢是一組值指示的大致方向。在確定被跟蹤元件的一般狀態時,趨勢比單個值更可靠。
  • 白盒監控:白盒監控是一個術語,用於描述依賴於對被測元件內部狀態的訪問的監控。白盒監控可以提供對系統狀態的詳細瞭解,有助於識別問題的原因。
  • 黑盒監控:黑盒監控是監控,通過僅檢視其輸入,輸出和行為來觀察系統或元件的外部狀態。這種型別的監控可以與使用者對系統的體驗密切配合,但對於找出問題的原因則沒那麼有用。

結論

收集指標,監控元件和配置警報是設定和管理生產基礎架構的重要部分。它們能夠分辨您系統中發生的事情,需要注意哪些資源,以及導致速度減慢或中斷的原因是什麼。雖然設計和實施監控設定可能是一項挑戰,但這方面的投資可以幫助您的團隊確定工作的優先順序,將監督責任委派給自動化系統,並瞭解基礎架構和軟體對您的穩定性和效能的影響。