使用受管理的收集項目評估規則和快訊

本文說明在使用代管收集作業的 Managed Service for Prometheus 部署中,規則和警示評估的設定。

下圖說明在兩個 Google Cloud 專案中使用多個叢集,並同時使用規則和警示評估,以及選用的 GlobalRules 資源:

使用受管理集合的規則和快訊評估功能所進行的部署作業。

如要設定及使用圖表中的部署作業,請注意下列事項:

  • 代管規則評估器會自動部署至執行代管收集的任何叢集。這些評估工具的設定如下:

    • 使用「規則」資源,針對命名空間內的資料執行規則。規則資源必須套用至您要執行規則的每個命名空間。

    • 使用 ClusterRules 資源,針對叢集內的資料執行規則。每個叢集應套用一次 ClusterRules 資源。

  • 所有規則評估作業都會針對全球資料儲存庫 Monarch 執行。

    • 規則資源會自動將規則篩選至安裝規則的專案、位置、叢集和命名空間。
    • ClusterRules 資源會自動將規則篩選至安裝規則的專案、位置和叢集。
    • 所有規則結果都會在評估後寫入 Monarch。
  • 在每個叢集中手動部署 Prometheus AlertManager 例項。您可以編輯 OperatorConfig 資源來設定受管理的規則評估工具,將觸發的快訊規則傳送至本地 AlertManager 例項。通常會在 PagerDuty 等第三方工具中處理靜默、確認和事件管理工作流程。

    您可以使用 Kubernetes 端點資源,將多個叢集的警示管理集中到單一 AlertManager。

上圖也顯示選用的 GlobalRules 資源。請盡量少用 GlobalRules,例如在不同專案中計算全球 SLO 或評估單一 Google Cloud 專案內不同叢集的規則。強烈建議您盡可能使用 Rules 和 ClusterRules,這些資源可提供更高可靠性,且更適合常見的 Kubernetes 部署機制和租用戶模型。

如果您使用 GlobalRules 資源,請參閱下方圖表中的下列事項:

  • 在 Google Cloud 中執行的單一叢集會指定為指標範圍的全球規則評估叢集。這個受管理的規則評估工具已設定為使用 scoping_project_A,其中包含專案 1 和 2。針對 scoping_project_A 執行的規則會自動分散至專案 1 和 2。

    基礎服務帳戶必須具備 scoping_project_A 的 Monitoring Viewer 權限。如要進一步瞭解如何設定這些欄位,請參閱「多專案和全域規則評估」。

  • 如同所有其他叢集,這個規則評估工具會使用 Rules 和 ClusterRules 資源,評估命名空間或叢集範圍內的規則。這些規則會自動篩選至本機專案,在本例中為專案 1。由於 scoping_project_A 包含 Project 1,因此 Rules 和 ClusterRules 設定的規則只會針對本地專案的資料執行,符合預期。

  • 這個叢集也包含 GlobalRules 資源,可針對 scoping_project_A 執行規則。GlobalRules 不會自動篩選,因此會在 scoping_project_A 的所有專案、地點、叢集和命名空間中,執行與寫入內容完全相同的 GlobalRules。

  • 觸發的警示規則會如預期傳送至自架式 AlertManager。

使用 GlobalRules 可能會產生意想不到的效果,這取決於您是否在規則中保留或匯總 project_idlocationclusternamespace 標籤:

  • 如果 GlobalRules 規則保留 project_id 標籤 (使用 by(project_id) 子句),則系統會使用基礎時間序列的原始 project_id 值,將規則結果寫回 Monarch。

    在這種情況下,您必須確保底層服務帳戶具備 scoping_project_A 中每個監控專案的 Monitoring Metric Writer 權限。如果您要將新的監控專案新增至 scoping_project_A,則必須手動為服務帳戶新增權限。

  • 如果 GlobalRules 規則未保留 project_id 標籤 (未使用 by(project_id) 子句),則系統會使用全域規則評估工具執行的叢集 project_id 值,將規則結果寫回 Monarch。

    在這種情況下,您不需要進一步修改基礎服務帳戶。

  • 如果 GlobalRules 保留 location 標籤 (使用 by(location) 子句),則規則結果會使用基礎時序資料來源的每個原始 Google Cloud 區域寫回 Monarch。

    如果 GlobalRules 未保留 location 標籤,資料就會寫回全域規則評估器執行的叢集位置。

除非規則的目的是要匯總這些標籤,否則強烈建議您在規則評估結果中保留 clusternamespace 標籤。否則查詢效能可能會降低,且可能會遇到基數限制。我們強烈建議您不要移除這兩個標籤。