全部產品
Search
文件中心

Managed Service for Prometheus:Prometheus警示規則模板

更新時間:Jul 06, 2024

如需統一管理分布在不同地區的多個Prometheus執行個體的警示規則,那麼您可以使用Prometheus警示規則模板功能來實現。本文介紹如何建立和管理Prometheus警示規則模板,確保規則的一致性和效率。

背景資訊

對於多個跨地區的Prometheus執行個體,當需要為這些Prometheus執行個體建立警示規則時,如果每個Prometheus執行個體都單獨建立,工作量較大並且難以同步管理。為瞭解決這個問題,可觀測監控 Prometheus 版提供了警示規則模板功能,可以協助使用者快速為多個Prometheus執行個體建立警示規則,並且可以統一管理,降低使用者管理多個Prometheus執行個體警示規則的成本。

建立Prometheus警示規則模板

  1. 登入Prometheus控制台
  2. 在左側導覽列中單擊警示規則模板

  3. 在頁面右上方單擊建立Prometheus警示規則模板

  4. 建立Prometheus警示規則版面設定以下參數。

    您可以選擇通過靜態閾值或自訂PromQL建立Prometheus警示規則模板。

    • 靜態閾值檢查類型提供了系統預設的警示指標,通過選擇已有的警示指標,您可以通過語義化的方式快速建立對應指標項的警示規則。

    • 如果需要對靜態閾值中系統預設指標之外的指標進行監控,您可以使用自訂PromQL檢測類型來建立警示規則。

    image

    表 1. 靜態閾值檢查類型

    參數

    說明

    樣本

    警示規則模板名稱

    警示規則模板的名稱。

    生產叢集-容器CPU使用率警示

    警示規則模板描述

    非必填。對模板進行描述,可以用於記錄模板的含義、適用情境、備忘等。

    檢測類型

    選擇靜態閾值

    靜態閾值

    警示分組

    選擇警示分組。

    Kubernetes負載

    警示指標

    選擇想要配置警示的指標,每個警示分組對應不同的指標。

    容器CPU使用率

    警示條件

    基於警示指標預置內容設定警示事件產生條件。

    當容器CPU使用率大於80%時,滿足警示條件。

    篩選條件

    根據警示指標,設定當前配置的警示規則所適用的範圍,即所有符合篩選條件的資源滿足此條警示規則時,均會產生警示事件。

    可選篩選條件包括:

    • 遍曆:警示規則適用於當前Prometheus執行個體下的所有資源。篩選條件預設為遍曆。

    • 等於:選擇該條件後,需繼續輸入具體資源名稱。所建立的警示規則將僅適用於對應資源。不支援同時填寫多個資源。

    • 不等於:選擇該條件後,需繼續輸入具體資源名稱。所建立的警示規則將適用於除該資源之外的其他資源。不支援同時填寫多個資源。

    • 正則匹配:選擇該條件後,按需輸入Regex匹配相應的資源名稱。所建立的警示規則將適用於符合該Regex的所有資源。

    • 正則不匹配:選擇該條件後,按需輸入Regex匹配相應的資源名稱。所建立的警示規則將過濾符合該Regex的所有資源。

    執行個體IP:遍曆

    期間

    • 當警示條件滿足時,直接產生警示事件:任何一個資料點滿足閾值,就會產生警示事件。

    • 當警示條件滿足持續N分鐘時,才產生警示事件:即只有當滿足閾值的時間大於等於N分鐘時,才產生警示事件。

    1

    警示等級

    自訂警示等級。預設警示等級為預設,警示嚴重程度從預設、P4、P3、P2、P1逐級上升。

    預設

    警示內容

    使用者收到的警示資訊。您可以使用Go template文法在警示內容中自訂警示參數變數。

    命名空間:{{$labels.namespace}} / Pod: {{$labels.pod_name}} / 容器:{{$labels.container}} CPU使用率{{$labels.metrics_params_opt_label_value}} {{$labels.metrics_params_value}}%, 當前值{{ printf "%.2f" $value }}%

    進階設定

    標籤

    設定警示標籤,設定的標籤可用作通知策略匹配規則的選項。

    注釋

    設定警示的注釋。

    表 2. 自訂PromQL檢測類型

    參數

    說明

    樣本

    警示規則模板名稱

    Pod的CPU使用率大於80%

    警示規則模板描述

    非必填。對模板進行描述,可以用於記錄模板的含義、適用情境、備忘等。

    檢測類型

    設定為自訂PromQL

    自訂PromQL

    自訂PromQL語句

    使用PromQL語句設定警示規則運算式。

    max(container_fs_usage_bytes{pod!="", namespace!="arms-prom",namespace!="monitoring"}) by (pod_name, namespace, device)/max(container_fs_limit_bytes{pod!=""}) by (pod_name,namespace, device) * 100 > 90

    期間

    • 當警示條件滿足時,直接產生警示事件:任何一個資料點滿足閾值,就會產生警示事件。

    • 當警示條件滿足持續N分鐘時,才產生警示事件:即只有當滿足閾值的時間大於等於N分鐘時,才產生警示事件。

    1

    警示等級

    自訂警示等級。預設警示等級為預設,警示嚴重程度從預設、P4、P3、P2、P1逐級上升。

    預設

    警示內容

    使用者收到的警示資訊。您可以使用Go template文法在警示內容中自訂警示參數變數。

    命名空間:{{$labels.namespace}}/Pod: {{$labels.pod_name}}/磁碟裝置: {{$labels.device}} 使用率超過90%,當前值{{ printf "%.2f" $value }}%

    進階設定

    標籤

    設定警示標籤,設定的標籤可用作通知策略匹配規則的選項。

    注釋

    設定警示的注釋。

應用模板

建立Prometheus警示模板後,您可以通過應用模板來為Prometheus執行個體建立警示規則,或者根據現有模板更新Prometheus執行個體的警示規則。

  1. 在控制台的Prometheus警示規則模板頁面,單擊需要應用的警示規則模板右側的應用模板

  2. 應用模板頁面的Prometheus執行個體選擇模式頁簽,選擇Prometheus執行個體,然後單擊確定

    說明

    您可以通過Prometheus執行個體名稱、地區和Prometheus執行個體類型篩選需要使用該警示模板的Prometheus執行個體。

  3. 在彈出的提示框中選擇是否更新已建立的警示規則,然後單擊確定

    ARMS將會使用當前警示規則模板在選中的Prometheus執行個體中建立警示規則。

    • 未選中更新已經建立的警示規則:如果選中的Prometheus執行個體已經存在通過當前警示模板建立的警示規則,那麼在建立警示規則時將會提示已經使用此模板建立過警示規則,不進行更新,此時警示規則將不會被更新。

    • 選中更新已經建立的警示規則:如果選中的Prometheus執行個體已經存在通過當前警示模板建立的警示規則,那麼此時會根據最新的警示模板內容更新Prometheus警示規則。

      重要

      如果對應的警示規則單獨修改過,並且保留了警示規則與模板的聯絡,那麼單獨修改的內容會將被警示規則模板覆蓋而丟失。

刪除模板

Prometheus警示模板不需要使用時,可以刪除Prometheus警示模板。刪除模板時,您可以按需選擇是否保留由此警示模板建立的警示規則。

  1. 在控制台的Prometheus警示規則模板頁面,單擊目標警示規則模板右側的刪除

  2. 在彈出的提示對話方塊中選擇是否同時刪除從模板建立的警示規則,然後單擊確認

    • 選中同時刪除從模板建立的警示規則:將會刪除與模板相關聯的Prometheus警示規則。如果通過模板建立的Prometheus警示規則被手動編輯過,並且儲存時選擇了不保留模板與規則的映射關係,則對應規則不會被刪除。

    • 為選中同時刪除從模板建立的警示規則:通過模板建立的Prometheus警示規則將會保留。

查看通過模板建立的警示規則

您可以查看並批量管理通過模板建立的警示規則。

  1. 在控制台的Prometheus警示規則模板頁面,單擊目標警示規則模板右側的查看目標建立規則

  2. 從模板建立的警示規則頁面批量管理警示規則。

    • 大量啟動警示:選中需要啟動的警示規則,然後單擊大量啟動警示

    • 大量停止警示:選中需要停止的警示規則,然後單擊大量停止警示

    • 大量刪除警示:選中需要刪除的警示規則,然後單擊大量刪除警示

注意事項

編輯通過Prometheus警示規則模板建立的Prometheus警示規則後,在儲存時需要選擇是否保留模板與規則的映射關係。

  • 保留此警示規則與警示規則模板的映射關係:保留映射關係後,如果在應用對應警示規則模板時選擇了當前規則對應的Prometheus執行個體,並且選擇了強制更新時,本次編輯內容可能會丟失。

  • 解除此警示規則與警示規則模板的映射關係:解除映射關係後,此警示規則會被視為獨立規則。建議修改警示規則名稱,否則在使用對應的警示規則模板再次應用到該Prometheus執行個體時,會因為警示規則名稱重複而導致建立失敗。