全部產品
Search
文件中心

Managed Service for Prometheus:通過PrometheusRule建立警示規則

更新時間:Aug 08, 2024

本文介紹如何在可觀測監控 Prometheus 版中使用PrometheusRule建立警示規則。

背景資訊

PrometheusRule是Prometheus Operator中用於控制警示的CRD(Custom Resource Definition)。 一個PrometheusRule定義了一組Prometheus的Alerting Rules或者Recording Rules。在一個安裝了Prometheus Operator的Kubernetes中,使用者可以通過建立PrometheusRule來建立警示。作為Monitoring as Code的一種實現方式,非常適合用於搭建GitOps類的研發營運體系。

可觀測監控 Prometheus 版中,您也可以使用PrometheusRule來建立警示規則。可觀測監控 Prometheus 版不僅提供了互動更好的可視化頁面來管理Prometheus執行個體的警示,也相容了Prometheus Operator中通過PrometheusRule建立警示的使用方式。

使用說明

可觀測監控 Prometheus 版支援以下兩種方式使用PrometheusRule來建立和控制警示規則。

  • 方式一:通過將PrometheusRule匯入為警示規則模板可以可視化完成警示的大量建立和更新,這種方式適合習慣使用白屏化操作的使用者,您可以在阿里雲控制台高效的完成大批量警示規則的管理。具體操作,請參見方式一:將PrometheusRule匯入到警示規則模板

  • 方式二:通過開啟可觀測監控 Prometheus 版外掛程式自動同步PrometheusRule規則,可以保持開源的警示配置使用方式。這種方式適合習慣開源使用方式的使用者,方便打造Monitoring As Code的營運體系。具體操作,請參見方式二:開啟外掛程式同步PrometheusRule警示規則

說明

預設情況下,通過可觀測監控 Prometheus 版不會讀取建立在Kubernetes中的PrometheusRule規則,因此您可以根據業務需求使用任意一種方式通過PrometheusRule規則來建立和控制警示。

方式一:將PrometheusRule匯入到警示規則模板

優勢

可觀測監控 Prometheus 版提供了Prometheus警示規則模板功能來解決多地區多叢集的警示配置效率問題。一次配置Prometheus警示規則模板即可實現在全球範圍內多次應用到不同的叢集,極大降低了警示的配置工作量,提高了配置效率。

可觀測監控 Prometheus 版提供了將PrometheusRule大量匯入為警示模板的能力,通過一次性將警示規則匯入到阿里雲控制台,避免多叢集重複多次建立PrometheusRule。

操作步驟

  1. 登入Prometheus控制台

  2. 在左側導覽列單擊警示規則模板

  3. Prometheus警示規則模板頁面左下角,單擊大量匯入模板

  4. 匯入對話方塊,將PrometheusRule中的spec內容粘貼至當前輸入框,然後單擊匯入警示規則模板

    樣本:下圖中表徵圖①地區為當前樣本PrometheusRule中的spec內容:qt

    您需要將上述的spec內容(表徵圖①)粘貼至匯入對話方塊中,然後單擊匯入警示規則模板,如下圖所示:ar

    匯入成功後,勾選匯入的警示規則模板,在Prometheus警示規則模板頁面左下角單擊批量應用模板,即可批量應用模板到Prometheus警示規則。

方式二:開啟可觀測監控 Prometheus 版外掛程式同步PrometheusRule警示規則

應用情境

  • 若您使用了諸如GitOps等系統,且仍然希望可以通過Monitoring As Code的方式來配置警示規則。

  • 對於已接入可觀測監控 Prometheus 版的ACK叢集(ACS不適用),且您希望通過PrometheusRule建立警示。

操作步驟

  1. 登入Container Service管理主控台,在左側導覽列選擇叢集

  2. 叢集列表頁面,單擊目的地組群操作列下的應用管理

  3. 無狀態頁面,選擇命名空間為arms-prom,找到名稱列中以arms-prom開頭的Deployment,例如arms-prom-ack-arms-prometheus(表徵圖①),然後單擊右側操作列下的編輯(表徵圖②)。

    qu

  4. 編輯頁面的生命週期地區,配置啟動執行參數,即在參數文字框中添加--alert=true(表徵圖①),然後在編輯頁面右上方,單擊更新

    dr

    可觀測監控 Prometheus 版外掛程式完成更新後,等待3~5分鐘,即可在可觀測監控 Prometheus 版控制台的警示規則列表頁面查看到所有警示的狀態顯示為啟動

重要

當您的叢集開啟了PrometheusRule自動同步之後,不建議在可觀測監控 Prometheus 版控制台修改同步上來的警示規則。因為這樣做往往會導致非預期的行為發生,比如修改名稱或者刪除警示規則這些操作都是無法在控制台實現的。除此之外當您在可觀測監控 Prometheus 版控制台修改這些規則也會導致Monitoring As Code的機制遭到破壞(即被修改的規則無法同步到外部諸如GitOps等營運系統)。

後續操作

當您開啟可觀測監控 Prometheus 版外掛程式的alert開關後,可觀測監控 Prometheus 版外掛程式會在arms-prom命名空間下建立一組內建的警示規則,如下圖所示。關於這些自動建立的內建警示規則的具體說明,請參見Prometheus警示規則image

如果您不想使用這些警示規則,可以通過修改defaultAlert參數關閉可觀測監控 Prometheus 版外掛程式內建的警示規則。具體操作步驟如下:

說明

控制預設警示自動建立的參數為defaultAlert,當其取值為true時表示自動建立預設的警示;當其取值為false時表示不自動建立預設的警示。

  1. 可觀測監控 Prometheus 版外掛程式的defaultAlert設定為false

    1. 登入Container Service管理主控台,在左側導覽列選擇叢集

    2. 叢集列表頁面,單擊目的地組群操作列下的應用管理

    3. 無狀態頁面,選擇命名空間為arms-prom,找到名稱列中以arms-prom開頭的Deployment,然後單擊右側操作列下的編輯

    4. 編輯頁面的生命週期地區,配置啟動執行的參數,即在參數文字框中添加--defaultAlert=false,然後在編輯頁面右上方,單擊更新

    說明

    可觀測監控 Prometheus 版外掛程式完成更新後,等待3~5分鐘,可觀測監控 Prometheus 版將不再為該叢集建立預設警示。

  2. 可選:刪除預設警示規則。

    1. 登入Prometheus控制台

    2. 在左側導覽列單擊執行個體列表,進入可觀測監控 Prometheus 版的執行個體列表頁面。

    3. 單擊目標K8s叢集的Prometheus執行個體名稱。

    4. 在左側導覽列,單擊警示規則。在Prometheus警示規則頁面,單擊需要刪除的警示規則操作列下的刪除,並在彈出的對話方塊中單擊確認