全部產品
Search
文件中心

Application Real-Time Monitoring Service:Prometheus警示規則模板

更新時間:Jul 06, 2024

當使用者擁有多個跨地區的Prometheus執行個體,並且需要為其中多個Prometheus執行個體建立相同的Prometheus警示規則時,可以使用Prometheus警示模板功能。本文介紹如何建立並管理Prometheus警示規則模板。

背景資訊

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

Prometheus警示規則模板的主要功能

  • 建立Prometheus警示規則模板
  • 編輯Prometheus警示規則模板
  • 應用模板
    • Prometheus執行個體選擇模式
    • 標籤控制器模式
  • 刪除Prometheus警示規則模板
  • 查看通過模板建立的警示規則
    • 大量啟動警示規則
    • 大量停止警示規則
    • 大量刪除警示規則
  • 批量應用模板
  • 大量刪除模板

建立Prometheus警示規則模板

  1. 登入ARMS控制台
  2. 在左側導覽列,選擇Prometheus監控 > Prometheus警示規則模板
  3. 在頁面右上方單擊建立Prometheus警示規則模板
  4. 建立Prometheus警示規則版面設定以下參數。
    您可以選擇通過靜態閾值或自訂PromQL建立Prometheus警示規則模板。
    • 靜態閾值檢查類型提供了系統預設的警示指標,通過選擇已有的警示指標,您可以通過語義化的方式快速建立對應指標項的警示規則。
    • 如果需要對靜態閾值中系統預設指標之外的指標進行監控,您可以使用自訂PromQL檢測類型來建立警示規則。
    表 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 }}%
    進階設定
    警示檢查周期設定警示檢查周期,系統預設是1分鐘一次。由於有些警示不需要1分鐘檢查一次。,因此您可以自行設定警示檢查周期以降低警示檢查的頻率。1
    標籤設定警示標籤,設定的標籤可用作通知策略匹配規則的選項。
    注釋設定警示的注釋。
    表 2. 自訂PromQL檢測類型
    參數說明樣本
    警示規則模板名稱警示規則模板的名稱。Pod的CPU使用率大於8%
    警示規則模板描述非必填。對模板進行描述,可以用於記錄模板的含義、適用情境、備忘等。
    檢測類型設定為自訂PromQL自訂PromQL
    警示分組選擇警示分組。Prometheus
    參考警示指標選擇需要參考的警示指標。
    自訂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 }}%
    進階設定
    警示檢查周期設定警示檢查周期,系統預設是1分鐘一次。由於有些警示不需要1分鐘檢查一次。,因此您可以自行設定警示檢查周期以降低警示檢查的頻率。1
    標籤設定警示標籤,設定的標籤可用作通知策略匹配規則的選項。
    注釋設定警示的注釋。

應用模板

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

Prometheus警示模板目前提供兩種模板應用模式。

Prometheus執行個體選擇模式

  1. 在控制台的Prometheus警示規則模板頁面,單擊需要應用的警示規則模板右側的應用模板
  2. 應用模板頁面的Prometheus執行個體選擇模式頁簽,選擇Prometheus執行個體,然後單擊確認
    說明 您可以通過Prometheus執行個體名稱、地區和Prometheus執行個體類型篩選需要使用該警示模板的Prometheus執行個體。
  3. 在彈出的提示框中選擇是否更新已建立的警示規則,然後單擊確認
    ARMS將會使用當前警示規則模板在選中的Prometheus執行個體中建立警示規則。
    • 未選中更新已經建立的警示規則:如果選中的Prometheus執行個體已經存在通過當前警示模板建立的警示規則,那麼在建立警示規則時將會提示已經使用此模板建立過警示規則,不進行更新,此時警示規則將不會更新。
    • 選中更新已經建立的警示規則:如果選中的Prometheus執行個體已經存在通過當前警示模板建立的警示規則,那麼此時會根據最新的警示模板內容更新Prometheus警示規則。
      重要 如果對應的警示規則單獨修改過,並且保留了警示規則與模板的聯絡,那麼單獨修改的內容會將被警示規則模板覆蓋而丟失。

標籤控制器模式

利用Container Service為叢集添加的標籤,在標籤控制器模式頁簽通過標籤匹配的方式篩選合格叢集,每個模板可以單獨配置,配置後就會直接為符合標籤匹配條件的Prometheus執行個體建立警示規則。

Prometheus警示規則模板會根據標籤動態更新警示規則:

  • 當模板發生變化時,滿足標籤匹配條件的叢集對應的警示規則會根據模板自動更新。
  • 修改通過標籤控制器模式建立的警示規則時,如果保留了警示規則和模板之間的映射關係,警示規則會被自動覆蓋。
  • 當Container Service叢集的標籤發生變化時,與叢集對應的Prometheus執行個體標籤也會變化,Prometheus警示模板也會根據標籤匹配條件動態刪除或建立警示規則。
  1. Container Service管理主控台為叢集添加標籤。
    1. 在左側導覽列單擊叢集
    2. 叢集列表頁面,將滑鼠懸浮於目的地組群名稱右側的標籤表徵圖上,然後單擊編輯標籤
    3. 編輯標籤對話方塊中添加叢集標籤,然後單擊確定
      添加叢集標籤
  2. 在控制台的Prometheus警示規則模板頁面,單擊需要應用的警示規則模板右側的應用模板
  3. 應用模板頁面,單擊標籤控制器模式頁簽,設定匹配的標籤和匹配運算式。

刪除模板

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

  1. 在控制台的Prometheus警示規則模板頁面,單擊目標警示規則模板右側的刪除
  2. 在彈出的提示對話方塊中選擇是否同時刪除從模板建立的警示規則,然後單擊確認
    • 選中同時刪除從模板建立的警示規則:將會刪除與模板相關聯的Prometheus警示規則。如果通過模板建立的Prometheus警示規則被手動編輯過,並且儲存時選擇了不保留模板與規則的映射關係,則對應規則不會被刪除。
    • 為選中同時刪除從模板建立的警示規則:通過模板建立的Prometheus警示規則將會保留。

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

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

  1. 在控制台的Prometheus警示規則模板頁面,單擊目標警示規則模板右側的查看目標建立規則
  2. 從模板建立的警示規則頁面批量管理警示規則。
    • 大量啟動警示:選中需要啟動的警示規則,然後單擊大量啟動警示
    • 大量停止警示:選中需要停止的警示規則,然後單擊大量停止警示
    • 大量刪除警示:選中需要刪除的警示規則,然後單擊大量刪除警示

注意事項

編輯通過Prometheus警示規則模板建立的Prometheus警示規則後,在儲存時需要選擇是否保留模板與規則的映射關係。
  • 保留此警示規則與警示規則模板的映射關係:保留映射關係後,如果在應用對應警示規則模板時選擇了當前規則對應的Prometheus執行個體,並且選擇了強制更新時,本次編輯內容可能會丟失。
  • 解除此警示規則與警示規則模板的映射關係:解除映射關係後,此警示規則會被視為獨立規則。建議修改警示規則名稱,否則使用對應警示規則模板再次應用到該Prometheus執行個體時,會因為警示規則名稱重複而導致建立失敗。