全部產品
Search
文件中心

Application Real-Time Monitoring Service:整合自建Prometheus警示

更新時間:Jul 06, 2024

本文介紹如何在ARMS警示管理中接入自建Prometheus的警示事件。

背景資訊

開源Prometheus支援將警示上報到Alertmanager中,通過配置Promethues.yaml檔案中的<alertmanager_config>可以將警示上報到雲端的警示中心,更多資訊,請參考[alertmanager_config]

ARMS警示管理提供了與開源完全相容的Alertmanager警示通知能力,通過整合Prometheus可以將自建Prometheus警示上報到ARMS警示管理中。

步驟一:建立整合並接入自建Prometheus

  1. 登入ARMS控制台,在左側導覽列選擇警示管理 > 整合
  2. 警示整合頁簽單擊Prometheus

  3. 建立Prometheus整合對話方塊輸入Prometheus整合的名稱、描述和警示事件自動回復時間,然後單擊儲存

    說明 警示事件自動回復時間:當警示事件在設定的時間內都沒有再觸發,警示事件將會自動回復。
  4. 根據不同的Prometheus執行個體選擇接入Prometheus的方法,然後單擊確定

    使用Prometheus-Operator管理的Prometheus執行個體

    1. 在本地建立arms-alertmanager-config.yaml檔案,然後將以下內容粘貼到建立的檔案中。

      - scheme: https
        bearer_token: ******
        static_configs:
          - targets: ['alerts.aliyuncs.com']
      說明

      請在控制台擷取bearer_token的值。

    2. 通過arms-alertmanager-config.yaml檔案建立名為arms-am-config的secret。

      kubectl create secret generic arms-am-config --from-file=arms-alertmanager-config.yaml
    3. 在本地建立prometheus-patch.yaml檔案,然後將以下內容粘貼到建立的檔案中。

      spec:
        additionalAlertManagerConfigs:
          key: arms-alertmanager-config.yaml
          name: arms-am-config
    4. 執行以下命令擷取Prometheus對象。

      kubectl get prometheus

      返回樣本:

      NAME                                                VERSION   REPLCAS   AGE
      prometheus-operator-160879-prometheus               v2.18.2   1         4d1h
    5. 執行以下命令將prometheus-patch.yaml檔案更新到Prometheus對象中。

      kubectl patch prometheus prometheus-operator-160879-prometheus --patch "$(cat prometheus-patch.yaml)" --type=merge

    其他方式自行搭建的Prometheus執行個體

    1. 修改prometheus.yaml設定檔。

      此處以2.35版本Prometheus為例添加配置如下,更多版本的配置格式,請參見Prometheus官方文檔

      alerting:
        alertmanagers:
        - api_version: v1
          authorization:
            type: Bearer
            credentials: ${token}
          scheme: https
          static_configs:
          - targets: ["alerts.aliyuncs.com"]
      說明

      請在控制台擷取bearer_token的值。

    2. 在瀏覽器中訪問Prometheus的配置頁面,檢查prometheus.yaml檔案是否已修改。

    其他類Prometheus可觀測系統整合ARMS警示

    Thanos通過thanos rule命令的參數--alertmanagers.config指定alertmanager設定檔,參照上文填寫上述整合的地址和Token,配置詳情請參見Thanos文檔

    VictoriaMetric通過./bin/vmalert命令的參數-notifier.config指定notifier設定檔,參照上文填寫上述整合的地址和Token,配置詳情請參見VictoriaMetric文檔

(可選)步驟二:編輯整合

ARMS警示管理預設了自建Prometheus警示源與ARMS警示管理之間欄位的映射,您也可以根據需要在編輯整合頁面新增或修改欄位的映射關係。

  1. 警示整合頁簽單擊目的地組成右側操作列的編輯
  2. 事件映射地區左側單擊發送測試資料
  3. 發送測試資料對話方塊,輸入第三方警示源的JSON格式的警示內容,然後單擊發送
    說明
    • 如果顯示上傳成功,但未建置事件,請根據未經處理資料配置事件映射規則!,表示警示源與ARMS警示事件的欄位沒有映射,實際發送資料會被儲存在左側記錄框中,以便配置映射時可以直接選取對應警示源欄位。
    • 如果顯示上傳成功!,則表明對應的警示內容已上報至警示事件歷史頁面。更多資訊,請參見查看警示事件歷史
  4. 發送測試資料對話方塊單擊關閉
  5. 事件映射地區左側單擊並展開需要建立映射的警示資料。
  6. 事件映射地區右側配置警示源欄位與ARMS警示的映射。

    1. 可選:選擇根節點地區選取項目是否使用批處理。
      當警示資料存在數組節點時,可以指定目標數組節點作為根節點,將對應根節點下的資料進行批處理。

      選擇使用批處理後,選擇需要批處理的數組節點作為根節點。

      說明 當警示資料存在多個數組節點時,ARMS警示管理僅支援選擇其中一個數組節點進行批處理。
    2. 將源欄位對應到目標欄位地區將警示源欄位對應到ARMS警示欄位上。
      單擊映射表徵圖,可以修改欄位對應方式。
      • 直接:警示源指定欄位直接映射為ARMS中對應的警示欄位。
      • 串聯:將多個警示源欄位通過指定分隔字元串聯為一個欄位,然後將這一個欄位對應為ARMS中對應的警示欄位。分隔字元僅支援特殊字元。
      • 條件:當警示欄位值滿足指定條件後,設定的欄位才會映射到ARMS目標欄位上。
      • 映射表:設定警示源的警示等級與ARMS中的警示等級的映射,僅警示等級(severity)欄位需要設定映射表。

      ARMS警示欄位說明:

      ARMS警示欄位說明
      警示名稱(alertname)自訂警示的名稱。
      警示等級(severity)設定警示等級的映射欄位。該欄位需要設定警示等級映射表,且映射方式必須設定為直接映射。
      警示描述(message)警示事件的詳細資料,用於警示通知。最多支援15000字元。
      警示樣本值(value)監控指標的樣本值。
      警示圖片(imageUrl)指標折線圖URL,用於映射Grafana指標折線圖。
      檢查項(check)警示檢查項。例如:CPU、JVM、Application Crash、Deployment。
      來源(source)警示事件的來源。
      分類(class)警示事件的物件類型,例如:主機。
      服務(service)與業務相關的來源服務,例如:Login Service。
      開始時間(startat)事件開始時間的時間戳記。
      結束時間(endat)事件結束時間的時間戳記。
      事件位址(generatorUrl)事件詳細資料地址。
  7. 設定事件去重。
    為了減少重複資料,系統使用相關欄位作為去重依據。ARMS警示管理支援預覽事件映射地區中的歷史事件數目據的去重分組結果,您可根據需要調整去重欄位。
    說明 事件去重僅針對未恢複狀態下的事件。
    1. 編輯整合頁面的事件去重地區選取項目需要去重的欄位。
      當選擇的欄位的值相同時,對應的多個事件將會合并為一個警示通知。
    2. 單擊去重測試,可以預覽去重後的警示分組。
      說明 去重測試針對的是事件映射左側地區中上傳的最近10條測試資料。
  8. 配置完成後,單擊儲存

查看警示事件

  1. 在控制台左側導覽列選擇警示管理 > 警示事件歷史
  2. 警示事件歷史頁面單擊目標事件,可以查看警示事件的詳細資料。更多資訊,請參見查看警示事件歷史

管理整合

警示管理 > 整合頁面的警示整合頁簽,對於已經建立的整合,您可以進行以下操作:

  • 查看整合:如果您需要查看整合的詳細資料,單擊目的地組成所在行,在整合詳情頁面查看整合的詳細資料。
  • 更新密鑰:如果您需要修改整合的密鑰,在目的地組成右側操作列選擇更多 > 更新密鑰,在彈出的對話方塊中單擊確認

    重要

    更新密鑰後,請重新設定自建Prometheus,具體操作,請參見配置Prometheus

  • 編輯:如果您需要修改整合資訊,在目的地組成右側操作列單擊編輯,在整合詳情頁面修改整合資訊,然後單擊儲存
  • 啟用或禁用:如果您需要啟用或禁用目的地組成,在目的地組成右側操作列單擊禁用啟用
  • 刪除:如果您需要刪除整合,在目的地組成右側操作列單擊刪除,在彈出的對話方塊中單擊確認
  • 添加事件流:如果您需要為指定整合添加對應的事件處理流,在目的地組成右側操作列單擊添加事件流。具體操作,請參見事件處理流
  • 建立通知策略:如果您需要為指定整合添加對應的通知策略,在目的地組成右側操作列單擊建立通知策略。具體操作,請參見通知策略

後續步驟

您可以通過設定通知策略將上報的警示事件產生警示並發送警示通知,具體操作,請參見通知策略。經過通知策略指派後產生的警示可以在警示發送歷史頁面查看警示的詳細資料,更多資訊,請參見查看警示發送歷史