當使用者擁有多個跨地區的Prometheus執行個體,並且需要為其中多個Prometheus執行個體建立相同的Prometheus警示規則時,可以使用Prometheus警示模板功能。本文介紹如何建立並管理Prometheus警示規則模板。
背景資訊
對於多個跨地區的Prometheus執行個體,當需要為這些Prometheus執行個體建立警示規則時,如果每個Prometheus執行個體都單獨建立,工作量較大並且難以同步管理。為瞭解決這個問題,可觀測監控 Prometheus 版提供了警示規則模板功能,可以協助使用者快速為多個Prometheus執行個體建立警示規則,並且可以統一管理,降低使用者管理多個Prometheus執行個體警示規則的成本。
Prometheus警示規則模板的主要功能
- 建立Prometheus警示規則模板
- 編輯Prometheus警示規則模板
- 應用模板
- Prometheus執行個體選擇模式
- 標籤控制器模式
- 刪除Prometheus警示規則模板
- 查看通過模板建立的警示規則
- 大量啟動警示規則
- 大量停止警示規則
- 大量刪除警示規則
- 批量應用模板
- 大量刪除模板
建立Prometheus警示規則模板
- 登入ARMS控制台。
- 在左側導覽列,選擇 。
- 在頁面右上方單擊建立Prometheus警示規則模板。
- 在建立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執行個體選擇模式
- 在控制台的Prometheus警示規則模板頁面,單擊需要應用的警示規則模板右側的應用模板。
- 在應用模板頁面的Prometheus執行個體選擇模式頁簽,選擇Prometheus執行個體,然後單擊確認。說明 您可以通過Prometheus執行個體名稱、地區和Prometheus執行個體類型篩選需要使用該警示模板的Prometheus執行個體。
- 在彈出的提示框中選擇是否更新已建立的警示規則,然後單擊確認。ARMS將會使用當前警示規則模板在選中的Prometheus執行個體中建立警示規則。
- 未選中更新已經建立的警示規則:如果選中的Prometheus執行個體已經存在通過當前警示模板建立的警示規則,那麼在建立警示規則時將會提示已經使用此模板建立過警示規則,不進行更新,此時警示規則將不會更新。
- 選中更新已經建立的警示規則:如果選中的Prometheus執行個體已經存在通過當前警示模板建立的警示規則,那麼此時會根據最新的警示模板內容更新Prometheus警示規則。重要 如果對應的警示規則單獨修改過,並且保留了警示規則與模板的聯絡,那麼單獨修改的內容會將被警示規則模板覆蓋而丟失。
標籤控制器模式
利用Container Service為叢集添加的標籤,在標籤控制器模式頁簽通過標籤匹配的方式篩選合格叢集,每個模板可以單獨配置,配置後就會直接為符合標籤匹配條件的Prometheus執行個體建立警示規則。
Prometheus警示規則模板會根據標籤動態更新警示規則:
- 當模板發生變化時,滿足標籤匹配條件的叢集對應的警示規則會根據模板自動更新。
- 修改通過標籤控制器模式建立的警示規則時,如果保留了警示規則和模板之間的映射關係,警示規則會被自動覆蓋。
- 當Container Service叢集的標籤發生變化時,與叢集對應的Prometheus執行個體標籤也會變化,Prometheus警示模板也會根據標籤匹配條件動態刪除或建立警示規則。
- 在Container Service管理主控台為叢集添加標籤。
- 在左側導覽列單擊叢集。
- 在叢集列表頁面,將滑鼠懸浮於目的地組群名稱右側的表徵圖上,然後單擊編輯標籤。
- 在編輯標籤對話方塊中添加叢集標籤,然後單擊確定。
- 在控制台的Prometheus警示規則模板頁面,單擊需要應用的警示規則模板右側的應用模板。
- 在應用模板頁面,單擊標籤控制器模式頁簽,設定匹配的標籤和匹配運算式。
刪除模板
當Prometheus警示模板不需要使用時,可以刪除Prometheus警示模板。刪除模板時,您可以根據需要,選擇是否保留由此警示模板建立的警示規則。
- 在控制台的Prometheus警示規則模板頁面,單擊目標警示規則模板右側的刪除。
- 在彈出的提示對話方塊中選擇是否同時刪除從模板建立的警示規則,然後單擊確認。
- 選中同時刪除從模板建立的警示規則:將會刪除與模板相關聯的Prometheus警示規則。如果通過模板建立的Prometheus警示規則被手動編輯過,並且儲存時選擇了不保留模板與規則的映射關係,則對應規則不會被刪除。
- 為選中同時刪除從模板建立的警示規則:通過模板建立的Prometheus警示規則將會保留。
查看通過模板建立的警示規則
您可以查看並批量管理通過模板建立的警示規則。
- 在控制台的Prometheus警示規則模板頁面,單擊目標警示規則模板右側的查看目標建立規則。
- 在從模板建立的警示規則頁面批量管理警示規則。
- 大量啟動警示:選中需要啟動的警示規則,然後單擊大量啟動警示。
- 大量停止警示:選中需要停止的警示規則,然後單擊大量停止警示。
- 大量刪除警示:選中需要刪除的警示規則,然後單擊大量刪除警示。
注意事項
編輯通過Prometheus警示規則模板建立的Prometheus警示規則後,在儲存時需要選擇是否保留模板與規則的映射關係。
- 保留此警示規則與警示規則模板的映射關係:保留映射關係後,如果在應用對應警示規則模板時選擇了當前規則對應的Prometheus執行個體,並且選擇了強制更新時,本次編輯內容可能會丟失。
- 解除此警示規則與警示規則模板的映射關係:解除映射關係後,此警示規則會被視為獨立規則。建議修改警示規則名稱,否則使用對應警示規則模板再次應用到該Prometheus執行個體時,會因為警示規則名稱重複而導致建立失敗。