如需統(tǒng)一管理分布在不同地域的多個Prometheus實例的告警規(guī)則,那么您可以使用Prometheus告警規(guī)則模板功能來實現。本文介紹如何創(chuàng)建和管理Prometheus告警規(guī)則模板,確保規(guī)則的一致性和效率。
背景信息
對于多個跨地域的Prometheus實例,當需要為這些Prometheus實例創(chuàng)建告警規(guī)則時,如果每個Prometheus實例都單獨創(chuàng)建,工作量較大并且難以同步管理。為了解決這個問題,可觀測監(jiān)控 Prometheus 版提供了告警規(guī)則模板功能,可以幫助用戶快速為多個Prometheus實例創(chuàng)建告警規(guī)則,并且可以統(tǒng)一管理,降低用戶管理多個Prometheus實例告警規(guī)則的成本。
創(chuàng)建Prometheus告警規(guī)則模板
在左側導航欄中單擊告警規(guī)則模板。
在頁面右上角單擊創(chuàng)建Prometheus告警規(guī)則模板。
在創(chuàng)建Prometheus告警規(guī)則頁面設置以下參數。
您可以選擇通過靜態(tài)閾值或自定義PromQL創(chuàng)建Prometheus告警規(guī)則模板。
靜態(tài)閾值檢查類型提供了系統(tǒng)預設的告警指標,通過選擇已有的告警指標,您可以通過語義化的方式快速創(chuàng)建對應指標項的告警規(guī)則。
如果需要對靜態(tài)閾值中系統(tǒng)預設指標之外的指標進行監(jiān)控,您可以使用自定義PromQL檢測類型來創(chuàng)建告警規(guī)則。
表 1. 靜態(tài)閾值檢查類型
參數
說明
示例
告警規(guī)則模板名稱
告警規(guī)則模板的名稱。
生產集群-容器CPU使用率告警
告警規(guī)則模板描述
非必填。對模板進行描述,可以用于記錄模板的含義、適用場景、備注等。
無
檢測類型
選擇靜態(tài)閾值。
靜態(tài)閾值
告警分組
選擇告警分組。
Kubernetes負載
告警指標
選擇想要配置告警的指標,每個告警分組對應不同的指標。
容器CPU使用率
告警條件
基于告警指標預置內容設置告警事件產生條件。
當容器CPU使用率
大于
80%時,滿足告警條件。篩選條件
根據告警指標,設置當前配置的告警規(guī)則所適用的范圍,即所有符合篩選條件的資源滿足此條告警規(guī)則時,均會產生告警事件。
可選篩選條件包括:
遍歷:告警規(guī)則適用于當前Prometheus實例下的所有資源。篩選條件默認為遍歷。
等于:選擇該條件后,需繼續(xù)輸入具體資源名稱。所創(chuàng)建的告警規(guī)則將僅適用于對應資源。不支持同時填寫多個資源。
不等于:選擇該條件后,需繼續(xù)輸入具體資源名稱。所創(chuàng)建的告警規(guī)則將適用于除該資源之外的其他資源。不支持同時填寫多個資源。
正則匹配:選擇該條件后,按需輸入正則表達式匹配相應的資源名稱。所創(chuàng)建的告警規(guī)則將適用于符合該正則表達式的所有資源。
正則不匹配:選擇該條件后,按需輸入正則表達式匹配相應的資源名稱。所創(chuàng)建的告警規(guī)則將過濾符合該正則表達式的所有資源。
實例IP:遍歷
持續(xù)時間
當告警條件滿足時,直接產生告警事件:任何一個數據點滿足閾值,就會產生告警事件。
當告警條件滿足持續(xù)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 }}%
高級設置
標簽
設置告警標簽,設置的標簽可用作通知策略匹配規(guī)則的選項。
無
注釋
設置告警的注釋。
無
表 2. 自定義PromQL檢測類型
參數
說明
示例
告警規(guī)則模板名稱
告警規(guī)則模板的名稱。
Pod的CPU使用率大于80%
告警規(guī)則模板描述
非必填。對模板進行描述,可以用于記錄模板的含義、適用場景、備注等。
無
檢測類型
設置為自定義PromQL。
自定義PromQL
自定義PromQL語句
使用PromQL語句設置告警規(guī)則表達式。
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
持續(xù)時間
當告警條件滿足時,直接產生告警事件:任何一個數據點滿足閾值,就會產生告警事件。
當告警條件滿足持續(xù)N分鐘時,才產生告警事件:即只有當滿足閾值的時間大于等于N分鐘時,才產生告警事件。
1
告警等級
自定義告警等級。默認告警等級為默認,告警嚴重程度從默認、P4、P3、P2、P1逐級上升。
默認
告警內容
用戶收到的告警信息。您可以使用Go template語法在告警內容中自定義告警參數變量。
命名空間:{{$labels.namespace}}/Pod: {{$labels.pod_name}}/磁盤設備: {{$labels.device}} 使用率超過90%,當前值{{ printf "%.2f" $value }}%
高級設置
標簽
設置告警標簽,設置的標簽可用作通知策略匹配規(guī)則的選項。
無
注釋
設置告警的注釋。
無
應用模板
創(chuàng)建Prometheus告警模板后,您可以通過應用模板來為Prometheus實例創(chuàng)建告警規(guī)則,或者根據現有模板更新Prometheus實例的告警規(guī)則。
在控制臺的Prometheus告警規(guī)則模板頁面,單擊需要應用的告警規(guī)則模板右側的應用模板。
在應用模板頁面的Prometheus實例選擇模式頁簽,選擇Prometheus實例,然后單擊確定。
說明您可以通過Prometheus實例名稱、地域和Prometheus實例類型篩選需要使用該告警模板的Prometheus實例。
在彈出的提示框中選擇是否更新已創(chuàng)建的告警規(guī)則,然后單擊確定。
未選中更新已經創(chuàng)建的告警規(guī)則:如果選中的Prometheus實例已經存在通過當前告警模板創(chuàng)建的告警規(guī)則,那么在創(chuàng)建告警規(guī)則時將會提示已經使用此模板創(chuàng)建過告警規(guī)則,不進行更新,此時告警規(guī)則將不會被更新。
選中更新已經創(chuàng)建的告警規(guī)則:如果選中的Prometheus實例已經存在通過當前告警模板創(chuàng)建的告警規(guī)則,那么此時會根據最新的告警模板內容更新Prometheus告警規(guī)則。
重要如果對應的告警規(guī)則單獨修改過,并且保留了告警規(guī)則與模板的聯系,那么單獨修改的內容會將被告警規(guī)則模板覆蓋而丟失。
刪除模板
當Prometheus告警模板不需要使用時,可以刪除Prometheus告警模板。刪除模板時,您可以按需選擇是否保留由此告警模板創(chuàng)建的告警規(guī)則。
在控制臺的Prometheus告警規(guī)則模板頁面,單擊目標告警規(guī)則模板右側的刪除。
在彈出的提示對話框中選擇是否同時刪除從模板創(chuàng)建的告警規(guī)則,然后單擊確認。
選中同時刪除從模板創(chuàng)建的告警規(guī)則:將會刪除與模板相關聯的Prometheus告警規(guī)則。如果通過模板創(chuàng)建的Prometheus告警規(guī)則被手動編輯過,并且保存時選擇了不保留模板與規(guī)則的映射關系,則對應規(guī)則不會被刪除。
為選中同時刪除從模板創(chuàng)建的告警規(guī)則:通過模板創(chuàng)建的Prometheus告警規(guī)則將會保留。
查看通過模板創(chuàng)建的告警規(guī)則
您可以查看并批量管理通過模板創(chuàng)建的告警規(guī)則。
在控制臺的Prometheus告警規(guī)則模板頁面,單擊目標告警規(guī)則模板右側的查看目標創(chuàng)建規(guī)則。
在從模板創(chuàng)建的告警規(guī)則頁面批量管理告警規(guī)則。
批量啟動告警:選中需要啟動的告警規(guī)則,然后單擊批量啟動告警。
批量停止告警:選中需要停止的告警規(guī)則,然后單擊批量停止告警。
批量刪除告警:選中需要刪除的告警規(guī)則,然后單擊批量刪除告警。
注意事項
編輯通過Prometheus告警規(guī)則模板創(chuàng)建的Prometheus告警規(guī)則后,在保存時需要選擇是否保留模板與規(guī)則的映射關系。
保留此告警規(guī)則與告警規(guī)則模板的映射關系:保留映射關系后,如果在應用對應告警規(guī)則模板時選擇了當前規(guī)則對應的Prometheus實例,并且選擇了強制更新時,本次編輯內容可能會丟失。
解除此告警規(guī)則與告警規(guī)則模板的映射關系:解除映射關系后,此告警規(guī)則會被視為獨立規(guī)則。建議修改告警規(guī)則名稱,否則在使用對應的告警規(guī)則模板再次應用到該Prometheus實例時,會因為告警規(guī)則名稱重復而導致創(chuàng)建失敗。