建立和管理 Grafana 警示規則 - Amazon Managed Grafana

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

建立和管理 Grafana 警示規則

本文件主題是針對支援 Grafana 8.x 版的 Grafana 工作區所設計。

如需支援 Grafana 10.x 版的 Grafana 工作區,請參閱。在 Grafana 第 10 版工作

如需支援 Grafana 9.x 版的 Grafana 工作區,請參閱。在 Grafana 第 9 版中工作

警示規則是決定是否啟動警示的一組評估準則。此規則包含一或多個查詢與運算式、條件、評估頻率,以及選擇性地符合條件的持續時間。

當查詢和運算式選取要評估的資料集時,條件會設定警示必須符合或超過以建立警示的臨界值。間隔指定警示規則的評估頻率。配置時,持續時間表示必須滿足條件的時間長度。這些規則還可以定義在沒有數據的情況下警報行為。

下列各節說明建立及管理不同類型的 Grafana 警示規則。

建立皮質或洛基管理警示規則

使用 Grafana,您可以建立外部皮層或 Loki 執行個體的警示規則。

注意

Cortex 是 Amazon 託管服務用於 Prometheus 和 Prometheus 數據源的時間序列數據庫。

先決條件

  • 確認您具有對 Prometheus 資料來源的寫入權限。否則,您將無法建立或更新 Cortex 管理的警示規則。

  • 對於皮質和 Loki 數據源,通過配置其各自的服務來啟用標尺 API。

    • Lokilocal 規則儲存類型 (Loki 資料來源的預設值) 僅支援檢視規則。若要編輯規則,請設定其他儲存區類型之一。

    • 皮質 — 使用遺留的/api/prom前綴,而不是/prometheus。Prometheus 資料來源同時支援皮質和 Prometheus,而 Grafana 預期查詢 API 和統治者 API 都位於相同的 URL 下。您無法為量尺 API 提供個別的 URL。

注意

如果您不想管理特定 Loki 或 Prometheus 資料來源的警示規則,請移至其設定並清除透過警示 UI 管理警示核取方塊。

若要新增皮質或 Loki 管理的警示規則
  1. 在 Grafana 主控台的 Grafana 選單中,選擇警示 (鈴鐺) 圖示以開啟列出現有示的示頁面。

  2. 選擇 [新增警示規則]。

  3. 步驟 1 中,新增規則名稱、類型和儲存位置,如下所示:

    • 規則名稱中,新增描述性名稱。此名稱會顯示在警示規則清單中。它也是從此規則建立的每個警示執行個體的alertname標籤。

    • 規則類型下拉式清單中,選取 Cortex/Loki 管理警示。

    • 「選取資料來源」下拉式清單中,選取「Prometheus」或「洛基」資料來源。

    • 命名空間下拉清單中,選取現有的規則命名空間。否則,請選擇「新增」,然後輸入名稱以建立名稱。命名空間可以包含一或多個規則群組,而且只有組織用途。如需詳細資訊,請參閱 皮質或 Loki 規則群組和命名空間

    • 從「群組」下拉式清單中,選取所選命名空間內的現有群組。否則,請選擇「新增」,然後輸入名稱以建立名稱。新建立的規則會附加到群組的結尾。群組中的規則會以固定間隔順序執行,且評估時間相同。

  4. 步驟 2 中,新增要評估的查詢。

    這個值可以是 PromQL 或 LogQL 運算式。如果評估結果至少有一個值大於 0 的序列,則規則會啟動警示。系統會針對每個序列建立警示。

  5. 步驟 3 中,新增條件。

    在條件的 [針對] 文字方塊中,指定條件必須為真的持續時間,才會啟動警示。如果您指定5m,則條件必須成立五分鐘,才會啟動警示。

    注意

    符合條件之後,警示就會進入Pending狀態。如果條件在指定的持續時間內保持作用中狀態,則警示會轉換為Firing狀態。如果不再滿足,它將恢復為狀Normal態。

  6. 步驟 4 中,新增與規則相關聯的其他中繼資料。

    • 新增說明和摘要以自訂警示訊息。請使用中的指導方針警示規則的註釋和標籤

    • 新增工作流程簿 URL、面板、儀表板和警示 ID。

    • 新增自訂標籤。

  7. 選擇「預覽警示」以評估規則並查看規則會產生哪些警示。它會顯示警示清單,其中包含每個警示的狀態和值。

  8. 選擇儲存以儲存規則,或選擇儲存並結束以儲存規則並返回「示」頁面。

創建皮質或洛基管理記錄規則

您可以建立和管理外部皮質或 Loki 執行個體的錄製規則。記錄規則會預先計算經常需要的運算式或計算成本較高的運算式,並將結果儲存為新的時間序列集。查詢此新時間序列的速度更快,尤其是對儀表板而言,因為每次重新整理儀表板時都會查詢相同的運算式。

先決條件

對於皮質和 Loki 數據源,通過配置其各自的服務來啟用標尺 API。

  • Lokilocal 規則儲存類型 (Loki 資料來源的預設值) 僅支援檢視規則。若要編輯規則,請設定其他儲存區類型之一。

  • 皮質 — 當配置 Grafana Prometheus 數據源以指向皮質時,請使用舊式前綴,而不是。/api/prom /prometheusPrometheus 資料來源同時支援皮質和 Prometheus,而 Grafana 預期查詢 API 和統治者 API 都位於相同的 URL 下。您無法為量尺 API 提供個別的 URL。

注意

如果您不想管理特定 Loki 或 Prometheus 資料來源的警示規則,請移至其設定並清除透過警示 UI 管理警示核取方塊。

若要新增皮質或洛基管理的錄製規則
  1. 在 Grafana 主控台的 Grafana 選單中,選擇警示 (鈴鐺) 圖示以開啟列出現有示的示頁面。

  2. 選擇 [新增警示規則]。

  3. 步驟 1 中,新增規則名稱、類型和儲存位置,如下所示。

    • 規則名稱中,新增描述性名稱。此名稱會顯示在警示規則清單中。它也是從此規則建立的每個警示執行個體的alertname標籤。

    • 規則類型下拉式清單中,選取 Cortex/Loki 管理警示。

    • 「選取資料來源」下拉式清單中,選取「Prometheus」或「洛基」資料來源。

    • 命名空間下拉清單中,選取現有的規則命名空間。否則,請選擇「新增」,然後輸入名稱以建立名稱。命名空間可以包含一或多個規則群組,而且只有組織用途。如需詳細資訊,請參閱 皮質或 Loki 規則群組和命名空間

    • 從「群組」下拉式清單中,選取所選命名空間內的現有群組。否則,請選擇「新增」,然後輸入名稱以建立名稱。新建立的規則會附加到群組的結尾。群組中的規則會以固定間隔順序執行,且評估時間相同。

  4. 步驟 2 中,新增要評估的查詢。

    這個值可以是 PromQL 或 LogQL 運算式。如果評估結果至少有一個值大於 0 的序列,則規則會啟動警示。系統會針對每個序列建立警示。

  5. 步驟 3 中,新增與規則相關聯的其他中繼資料。

    • 新增說明和摘要以自訂警示訊息。請使用中的指導方針警示規則的註釋和標籤

    • 新增工作流程簿 URL、面板、儀表板和警示 ID。

    • 新增自訂標籤。

  6. 選擇儲存以儲存規則,或選擇儲存並結束以儲存規則並返回「示」頁面。

建立 Grafana 管理的警示規則

Grafana 允許您創建查詢一個或多個數據源的警報規則,減少或轉換結果,並將其相互比較或修復閾值。處理這些資訊後,Grafana 會將通知傳送至聯絡人點。

注意

在使用 Grafana 警示時建立 Grafana 管理警示規則,會在符合規則時傳送多個通知。某些聯絡點提供者可能具有可設定的選項來消除通知的重複資料。

若要新增 Grafana 受管理規則
  1. 在 Grafana 主控台的 Grafana 選單中,選擇警示 (鈴鐺) 圖示以開啟列出現有示的示頁面。

  2. 選擇 [新增警示規則]。

  3. 步驟 1 中,新增規則名稱、類型和儲存位置,如下所示:

    • 規則名稱中,新增描述性名稱。此名稱會顯示在警示規則清單中。它也是從此規則建立的每個警示執行個體的alertname標籤。

    • 從 [規則類型] 下拉式清單中,選取 [註 Grafana 管理警示]。

    • 從「資料夾」下拉式清單中,選取要儲存規則的資料夾。如果您未選取資料夾,則規則會儲存在General資料夾中。若要建立資料夾,請選取下拉式清單,然後輸入新的資料夾名稱。

  4. 步驟 2 中,新增要評估的查詢和運算式。

    • 保留預設名稱,或將游標暫留在上方,然後選擇編輯圖示以變更名稱。

    • 對於查詢,請從下拉式清單中選取資料來源。

    • 新增一或多個查詢或運算式 (如需運算式的詳細資訊,請參閱 Grafana 文件中的運算式)。

    • 針對每個運算式,選取「傳統」條件以建立單一警示規則,或從「數學」、「小」、「重新取樣」選項中選擇,以便為每個序列產生個別的警示。如需這些選項的詳細資訊,請參閱單維和多維規則

    • 選擇 [執行查詢] 以驗證查詢是否成功。

  5. 步驟 3 中,新增條件。

    • 從「條件」下拉式清單中,選取要啟動警示規則的查詢或運算式。

    • 對於「評估間隔」,指定評估頻率。必須是 10 秒的倍數。例如 1m30s

    • 對評估,指定啟動警示之前條件必須為真的持續時間。

      注意

      違反條件後,警示就會進入Pending狀態。如果條件在指定的持續時間內仍然違反,警示會轉換為狀Firing態。如果不再滿足,它將恢復為狀Normal態。

    • [設定無資料和錯誤處理] 中,設定缺少資料時的警示行為。請使用中的指導方針。處理沒有數據或錯誤情況

    • 選擇 [預覽警示] 以檢查此時執行查詢的結果。預覽不排除任何資料和錯誤處理條件。

  6. 步驟 4 中,新增與規則相關聯的其他中繼資料。

    • 新增說明和摘要以自訂警示訊息。請使用中的指導方針警示規則的註釋和標籤

    • 新增工作流程簿 URL、面板、儀表板和警示 ID。

    • 新增自訂標籤。

  7. 選擇儲存以儲存規則,或選擇儲存並結束以儲存規則並返回「示」頁面。

單維和多維規則

對於 Grafana 管理的警示規則,您可以建立具有傳統條件的規則,也可以建立多維規則。

單維規則(經典條件)

使用傳統條件運算式建立規則,以在符合其條件時起始單一警示。對於傳回多個序列的查詢,Grafana 不會追蹤每個系列的警示狀態。因此,即使符合多個系列的警示條件,Grafana 也只會傳送單一警示。

如需有關如何格式化運算式的詳細資訊,請參閱 Grafana 文件中的運算式。

多維度規則

若要為查詢中傳回的每個序列產生個別的警示執行個體,請建立多維規則。

注意

多維規則產生的每個警示執行個體都會計入警示的總配額。當您達到警示配額時,系統不會評估規則。如需多維規則配額的詳細資訊,請參閱達到配額錯誤

若要從單一規則建立多個執行個體Math,請使用Reduce、或Resample運算式建立多維規則。例如,您可以:

  • 為每個查詢新增一個Reduce運算式,以將所選時間範圍內的值彙總為單一值。(使用數值資料的規則不需要)。

  • 新增具有規則條件的Math表示式。如果查詢或 reduce 運算式已傳回 0 (如果規則不應該起始警示),則不需要這樣做;如果應該起始警示,則傳回正數。

    一些範例:

    • $B > 70如果它應該在 B 查詢/表達式大於 70 的情況下啟動警報。

    • $B < $C * 100如果 B 的值小於 C 的值乘以 100,則應啟動警報。如果要比較的查詢在其結果中有多個序列,則如果不同查詢的序列具有相同的標籤,或者一個是另一個標籤的子集,則會比對它們。

注意

Grafana 不支援使用範本變數警示查詢。設定 Alert 時,警示查詢不支援社群頁面範本變數的更多資訊

多維規則的效能考量

每個警示執行個體都會計入警示配額。不會評估建立多於警示配額內容量之執行個體的多維規則,並會傳回配額錯誤。如需詳細資訊,請參閱 達到配額錯誤

多維度警示可能會對 Grafana 工作區的效能產生很大的影響,以及 Grafana 查詢資料來源以評估警示規則時的效能。當您嘗試最佳化監視系統的效能時,下列考量事項可能會有所幫助。

  • 規則評估頻率 — 警示規則的「評估每個」屬性可控制規則評估的頻率。我們建議使用最低的可接受評估頻率。

  • 結果集基數 — 您使用規則建立的警示執行個體數目會影響其效能。假設您正在監視叢集中每個 VM 上每個 API 路徑的 API 回應錯誤。此集的基數是路徑數目乘以虛擬機器數目的基數。您可以減少結果集的基數,例如監視每個虛擬機器的錯誤總數,而不是監視每個虛擬機器的每個路徑。

  • 查詢的複雜性 — 資料來源可以處理和回應的查詢,以便快速消耗更少的資源。雖然這個考量比上面列出的其他考量不那麼重要,但是如果您盡可能減少這些考量因素,查看個別查詢效能可能會有所作為。您也應該注意評估這些規則對資料來源的效能影響。警示查詢通常是監視資料庫所處理的絕大多數查詢,因此影響 Grafana 執行個體的相同載入因素也會影響這些查詢。

達到配額錯誤

您可以在單一工作區中擁有的警示執行個體數量有配額。當您達到該數字時,就無法再在該工作區中建立新的警示規則。使用多維警示時,警示執行個體的數量可能會隨時間而有所不同。

使用警示執行個體時,請務必記住下列事項。

  • 如果您只建立單一維度規則,則每個規則都是單一警示例項。您可以在單一工作區中建立與警示執行個體配額相同數量的規則,而不是更多。

  • 多維規則會建立多個警示執行個體,但在評估後才會知道該數字。例如,如果您建立追蹤 Amazon EC2 執行個體 CPU 使用率的警示規則,則建立該執行個體時可能會有 50 個 EC2 執行個體 (因此 50 個警示執行個體),但是如果您在一週後再新增 10 個 EC2 執行個體,則下一個評估會有 60 個警示執行個體。

    當您建立多維警示時,系統會評估警示執行個體的數目,而且您無法建立立即超過警示執行個體配額的警示執行個體。由於警示執行個體的數量可能會變更,因此每次評估規則時都會檢查您的配額。

  • 在規則評估時,如果規則導致您超出警示執行個體的配額,則在對警示規則進行更新時,系統不會評估該規則,該規則會使警示執行個體的總計數低於服務配額。發生這種情況時,您會收到警示通知,通知您已達到配額 (通知會針對正在評估的規則使用通知原則)。該通知包括帶有值的Error註釋QuotaReachedError

  • 導致QuotaReachedError停止評估的規則。只有在進行更新時才會繼續評估,而且更新後的評估本身不會導致QuotaReachedError. 未評估的規則會在 Grafana 主控台中顯示「達到配額」錯誤。

  • 您可以移除警示規則,或透過編輯多維度警示來減少警示執行個體的警示執行個體 (例如,針對每個虛擬機器發出一個錯誤警示,而非 VM 中每個 API 發出一個錯誤警示),以降低警示執行個體的數目。

  • 若要繼續評估,請更新警示並儲存。您可以將其更新以減少警示例項的數目,或者如果您進行了其他變更以減少警示例項的數目,則可以儲存它而不進行任何變更。如果它可以恢復,它是。如果它導致了另一個QuotaReachedError,則無法保存它。

  • 如果儲存警示並繼續評估而不超過警示配額,則「達到配額」錯誤可能會在 Grafana 主控台中繼續顯示一段時間 (直到評估間隔為止),但是,警示規則評估會開始,並在符合規則閾值時傳送警示。

  • 如需警示配額以及其他配額的詳細資訊,請參閱Amazon Managed Grafana 服務配額

處理沒有數據或錯誤情況

選擇在沒有資料或發生錯誤時如何處理警示行為的選項。

下表列出處理任何資料的選項。

無資料選項 Behavior (行為)

暫無資料

建立警示,其中DatasourceNoData包含警示規則的名稱和 UID,以及未傳回資料做為標籤的資料來源 UID。

提醒

將警示規則狀態設為Alerting

OK

將警示規則狀態設為Normal

下表列出了處理錯誤案例的選項。

錯誤或逾時選項 Behavior (行為)

提醒

將警示規則狀態設為 Alerting

OK

將警示規則狀態設為 Normal

錯誤

建立警示,其中DatasourceError包含警示規則的名稱和 UID,以及未傳回資料做為標籤的資料來源 UID。

警示規則的註釋和標籤

註釋和標籤是與源自警示規則、資料來源回應以及警示規則評估的警示相關聯的索引鍵值配對。它們可以直接用於警報通知,也可以在模板和模板功能中使用,以動態創建通知聯繫人。

註釋

註釋是提供有關警示的其他資訊的索引鍵值配對。您可以使用下列註釋:descriptionsummaryrunbook_url、、alertIddashboardUid、和panelId。這些會顯示在 UI 的規則和警示詳細資料中,並可用於聯絡人點訊息範本。

標籤

標籤是包含警示相關資訊的索引鍵值配對。系統會產生警示的標籤集,並在整個警示評估和通知程序中加入。它們通過以下方式使用。

  • 完整的警示標籤集可唯一識別 Grafana 警示內的警示。

  • Alertmanager 會使用標籤來比對通知原則中靜音和警示群組的警示。

  • 警示 UI 會針對該規則的評估產生的每個警示執行個體顯示標籤。

  • 聯絡點可以存取標籤以動態產生通知,其中包含導致通知之警示特定資訊的通知。

  • 可以將標籤新增至警示規則。這些手動配置的標籤能夠使用模板函數並引用其他標籤。如果標籤之間發生衝突,則在此處添加到警示規則的標籤優先。

展開註解和標示時,可以使用以下樣板變數。

名稱 描述

$labels

來自查詢或條件的標籤。例如,{{ $labels.instance }}{{ $labels.job }}。當規則使用傳統條件時,此選項不可用。

$values

針對此警示規則評估的所有減少運算式和數學運算式的值。例如,{{ $values.A }},以{{ $values.A.Labels }}{{ $values.A.Value }}其中A是運算式refID的。當規則使用傳統條件時,此選項不可用

$value

警示執行個體的值字串。例如 [ var='A' labels={instance=foo} value=10 ]

管理警示規則

警示」頁面會列出警示規則。依預設,規則會依資料來源類型分組。Grafana 區段列出由 Grafana 管理的規則,而皮質/洛基區段列出了 Prometheus 相容資料來源的規則。您可以檢視與 Prometheus 相容資料來源的警示規則,但無法對其進行編輯。

檢視警示規則

使用 Grafana 警報,您可以在一個頁面中查看所有警報。

若要檢視警示詳細資訊
  1. 在 Grafana 主控台的 Grafana 選單中,選擇警示 (鈴鐺) 圖示以開啟示頁面。依預設,規則會依資料來源類型以群組形式顯示。您也可以依每個警示的目前狀態來檢視 (下列文字會詳細說明這些狀態)。

  2. 在 [檢視為] 中,您可以選擇偏好的選項,在群組和狀態檢視之間切換。

  3. 選擇資料列旁邊的箭號,以檢視該資料列的更多詳細資訊。規則的詳細資料包括規則標籤、註釋、資料來源和查詢,以及由規則產生的警示例項清單。

群組檢視

群組檢視顯示按資料夾和洛基或 Prometheus 警示規則分組的 Grafana 警示規則 (按 + 分組)。namespace group這是預設規則清單檢視,用於管理規則。您可以展開每個群組以檢視此群組中的規則清單。進一步展開規則以檢視其詳細資訊。您也可以展開動作按鈕和規則產生的警示,以檢視其詳細資訊。

狀態檢視

狀態檢視會顯示依狀態分組的警示規則。使用此檢視可取得哪些規則處於何種狀態的概觀。您可以展開每個規則以檢視其詳細資料。動作按鈕和此規則產生的任何警示,以及每個警示都可以進一步展開以檢視其詳細資訊。

篩選警示規則

您可以透過數種方式篩選出現在 [警示] 頁面上的示規則。

  • 您可以透過選擇選取資料來源,然後選取要篩選的資料來源,篩選以顯示查詢特定資料來源的規則。

  • 您可以在「依標籤搜尋」中選擇搜尋條件來依標籤篩選。一些範例標準包括environment=productionregion=~US|EU、、severity!=warning

  • 您可以選擇依狀態篩選警示,然後選取要檢視的狀態,來篩選以顯示特定狀態的規則。

編輯或刪除警示規則

只有對儲存規則的資料夾具有「編輯」權限的使用者,才能編輯或刪除 Grafana 管理的警示規則。具有編輯者或管理員角色的使用者可以編輯或刪除外部 Cortex 或 Loki 實例的警示規則。

若要編輯或刪除規則
  1. 展開規則,直到您可以看到「檢視」、「編輯」 和「刪除」的規則控制項。

  2. 選擇 「編輯」 以開啟「建立規則」頁面。使用與建立規則相同的方式進行更新。如需詳細資訊,請參閱建立 Grafana 管理的警示規則或中的指示建立皮質或洛基管理警示規則

  3. 選擇性地選擇「除」以刪除規則。

皮質或 Loki 規則群組和命名空間

您可以組織規則。規則會在規則群組內建立,而規則群組則會組織成命名空間。規則群組中的規則會以固定間隔順序執行。預設間隔為一分鐘。您可以重新命名 Cortex 或 Loki 命名空間和規則群組,以及編輯規則群組評估間隔。

若要編輯規則群組或命名空間
  1. 在 Grafana 主控台的 Grafana 選單中,選擇警示 (鈴鐺) 圖示以開啟示頁面。

  2. 導覽至您要編輯的規則群組或命名空間中的規則。

  3. 選擇「編輯」 (筆) 圖示。

  4. 變更規則群組或命名空間。

    注意

    對於命名空間,您只能編輯名稱。對於規則群組,您可以變更群組中規則的名稱或評估間隔。例如,您可1m以選擇每分鐘評估一次規則,或30s每 30 秒評估一次。

  5. 選擇儲存變更