執行持續性的調整以減少無意義的警示

已完成

在此單元中,您將了解您可以實作哪些程序來監視網站可靠性。 您也將了解如何持續調整警示以減少無意義的警示。

監視和警示

監視和警示可讓系統在中斷時告知使用者,或可能告訴他們即將中斷的項目。 如果有人需要調查問題,警示應可提供相關資訊,讓人員得知從何處著手。

當您檢閱現有的警示或撰寫新的警示規則時,請考量下列指導方針,讓您的警示保持相關性,並且讓您的值班同事更輕鬆愉快:

  • 會引起人們注意的警示應該是緊急、重要、動作導向且真實的。
  • 警示應指出您的服務現行或即將發生的問題。
  • 移除干擾警示。 過度監視是比監視還要難解決的問題。
  • 請將問題分類為下列其中一種類別:
    • 可用性和基本功能。
    • 延遲。
    • 正確性。
    • 功能特定問題。
  • 要以較少的人力全面且穩定地捕捉問題,徵兆是較好的方法。
  • 請在以徵兆為基礎的頁面或儀表板中納入以原因為基礎的資訊,但避免直接就原因發出警示。
  • 您的服務堆疊愈深入,您在單一規則中捕捉到的相異問題愈多。 但是,不要深入到無法有效區分現況的程度。
  • 如果要讓待命輪值順暢運作,請使用某個系統來處理需要及時回應、但不具急迫性的問題。

監視您的使用者

使用者的監視也稱為以徵兆為基礎的監視。這與以原因為基礎的監視形成對比。 使用者並不在意您的資料推送是否失敗,他們在意的是其結果是否為最新的。

一般情況下,使用者會在意:

  • 基本可用性和正確性:任何以某種方式中斷核心服務的因素,都應歸類為不可用性。
  • 延遲:頁面應快速載入。
  • 完整性、時效性和持久性:您的使用者資料應該是安全的、應立即傳回,且搜尋索引應是最新的。
  • 運作時間:即使服務暫時無法使用,使用者仍應完全相信服務很快就會恢復運作。
  • 功能:您的使用者在意服務的各項功能是否都能運作。 請監視服務的任何重要層面,即使並非核心功能亦然。

資料庫伺服器無法使用與使用者資料無法使用之間,有著微妙、但重要的差異。 前者是直接原因,後者是徵兆。

以原因為基礎的警示有其效用

有時並沒有任何徵兆可發出警示,但您仍需在發生狀況時收到警示。 記憶體不足即是一例。 您希望在某些現象引起徵兆而演變成問題之前,規則就能通知您。 在此情況下,您可以撰寫會根據此條件發出警示的規則。

不過,在撰寫以原因為基礎的規則時,規則不應針對您在其他情況下可能捕捉到的徵兆,來觸發待命警示。

票證、報告和電子郵件

需盡快 (但非立即) 注意的警示為次要警示。 以下是記錄次要警示以便後續追蹤的一些建議:

  • 錯誤 (bug) 或票證追蹤系統對於這類型的警示可能會有幫助:只要將警示正確放在單一票證或錯誤 (bug) 中,該警示即可開啟錯誤 (bug)。 這些錯誤 (bug) 隨後將進行分級程序,以指派給某人進行後續追蹤。 請務必在這類問題演變成重大問題前加以解決。 請考量您的小組成員可投入多少時間來修正錯誤 (bug)。
  • 每日 (或更頻繁的) 報告可能有其效用:將長時間存留的次要警示 (例如,資料庫已使用 90% 以上) 寫入報告中,以顯示所有作用中警示。 指派某人每日對此報告分級。
  • 每個警示都應透過工作流程系統受到追蹤:這可確保警示會被發現並解決。

一般情況下,請建立可促進回應機制責任歸屬的系統,但其直接人為介入的成本不應過高。

劇本

劇本 (有時稱為 Runbook) 是警示系統的重要部分。 請在劇本中設定一個項目,說明對於捕捉到徵兆的每個警示或警示系列應如何因應。

追蹤和責任

如果有人收到警示,並判定並沒有任何錯誤,這就表示您需要移除規則、將其降級,或以其他方式收集資料。 精確度小於 50% 的警示,會被視為不當警示。 即使是誤判為真的比率只有 10% 的警示,也應重新評估。

每週檢查所有觸發的待命警示,並分析每季的警示統計資料,可協助您找出在著重於個別警示時會忽略掉的模式。

何時應尋求規則的例外狀況?

以下是讓您可能悖離上述指導方針的一些原因:

  • 您有已知原因實際上屬於徵兆中的干擾:例如,如果您的服務有 99.99% 的可用性,但有一個常見事件會導致 0.001% 的要求失敗,您就無法將其視為徵兆發出警示 (因為這屬於干擾),但您可以捕捉導因事件。

  • 您失去資料解析,因此無法在進入點進行監視:例如,您容許某些端點速度緩慢,例如信用卡驗證。 在負載平衡器中,可能會失去這項差異。 您將需要向下切入堆疊,並從具有該差異的最高位置發出警示。

  • 徵兆出現時都為時已晚:例如,您已用盡配額。 您必須及早對他人發出警示,而有時這意味著要找到發出警示的原因。 例如,您的使用量超過 80%,而在過去一小時的成長率下,配額將在四小時內用完。

    不過,您應該也能找到較不緊急的類似原因。 例如,您的配額已使用超過 90%,而在過去一天的成長率下,配額將在四天內用完。 這一組條件會適用於大部分的案例。 然後,您可以用票證、電子郵件警示或每日問題報告的形式來處理問題,而不是警示所代表的最後一次升級。

  • 您的警示設定比其嘗試偵測的問題還要複雜:目標應該是追求簡單、健全、可自我保護的系統。