全部產品
Search
文件中心

Managed Service for Prometheus:通過Webhook自訂警示通知人

更新時間:Jul 06, 2024

建立通知策略時,您可以將警示通知發送到自訂的Webhook地址。警示管理支援對第三方通知對象發送Webhook警示,本文以飛書為例,介紹如何建立Webhook警示。

步驟一:擷取Webhook地址

  1. 開啟並登入飛書。

  2. 單擊+表徵圖,然後單擊建立群組,建立一個用於發送警示的群組。

  3. 單擊群組設定表徵圖,然後單擊群機器人頁簽。

  4. 群機器人頁簽單擊添加機器人

    飛書添加機器人

  5. 添加機器人面板選擇Custom Bot

    飛書-自訂機器人

  6. 在配置頁設定顯示名稱描述,然後單擊添加

    飛書-設定機器人

  7. 添加情況地區單擊複製連結,然後單擊完成

    飛書-Webhook

步驟二:建立Webhook連絡人

  1. 登入Prometheus控制台,在左側導覽列選擇警示管理 > 通知對象

  2. 單擊Webhook整合頁簽,然後單擊右上方的建立Webhook,並在建立Webhook面板配置如下參數。

    參數

    說明

    Webhook名稱

    自訂Webhook名稱。

    要求方法

    佈建要求方法為Post或Get,並輸入以HTTP或HTTPS開頭的URL,URL不可超過100個字元。

    此例中選擇Post,並將步驟一:擷取Webhook地址中儲存的Webhook地址粘貼至右側文字框。

    Header、Param

    設定Header和Param,不可超過200個字元。

    單擊+添加,可以添加其他Header資訊或Param資訊。預設要求標頭為Content-Type: text/plain; charset=UTF-8,Header和Param個數總數不能超過6個。

    此例中設定以下兩個Header:

    • Arms-Content-Type : json

    • Content-Type : application/json

    如果您選擇要求方法為Post,您還需要配置以下參數

    通知模板

    警示觸發時發送的通知模板,可使用$content預留位置輸出通知內容,不可超過500個字元。更多資訊,請參見配置通知模板和Webhook模板

    通知模板如下:

    {
    "警示名稱":"{{ .commonLabels.alertname }}{{if .commonLabels.clustername }}",
    "叢集名稱":"{{ .commonLabels.clustername }} {{ end }}{{if eq "app" .commonLabels._aliyun_arms_involvedObject_kind }}",
    "應用程式名稱":"{{ .commonLabels._aliyun_arms_involvedObject_name }} {{ end }}",
    "通知策略":"{{ .dispatchRuleName }}",
    "警示時間":"{{ .startTime }}",
    "警示內容":"{{ for .alerts }} {{ .annotations.message }} {{ end }}"
    }

    此處以飛書為例可以設定如下文字格式設定:

    {
      "msg_type": "text",
      "content": {
        "text": "警示名稱: {{ .commonLabels.alertname }}\n{{if .commonLabels.clustername }}叢集名稱: {{ .commonLabels.clustername }}\n{{ end }}{{if eq "app" .commonLabels._aliyun_arms_involvedObject_kind }}應用程式名稱: {{ .commonLabels._aliyun_arms_involvedObject_name }}\n{{ end }}通知策略: {{ .dispatchRuleName }} \n警示時間: {{ .startTime }} \n警示內容: {{ for .alerts }} {{ .annotations.message }}\n {{ end }}"
      }
    }

    恢複模板

    警示恢複時發送的通知模板,可使用$content預留位置輸出通知內容,不可超過500個字元。更多資訊,請參見配置通知模板和Webhook模板

    恢複模板如下:

    {
    "警示名稱":"{{ .commonLabels.alertname }}{{if .commonLabels.clustername }}",
    "叢集名稱":"{{ .commonLabels.clustername }} {{ end }}{{if eq "app" .commonLabels._aliyun_arms_involvedObject_kind }}",
    "應用程式名稱":"{{ .commonLabels._aliyun_arms_involvedObject_name }} {{ end }}",
    "通知策略":"{{ .dispatchRuleName }}",
    "恢復":"{{ .endTime }}",
    "警示內容":"{{ for .alerts }} {{ .annotations.message }} {{ end }}"
    }

    此處以飛書為例可以設定如下文字格式設定:

    {
      "msg_type": "text",
      "content": {
        "text": "警示名稱: {{ .commonLabels.alertname }}\n{{if .commonLabels.clustername }}叢集名稱: {{ .commonLabels.clustername }}\n{{ end }}{{if eq "app" .commonLabels._aliyun_arms_involvedObject_kind }}應用程式名稱: {{ .commonLabels._aliyun_arms_involvedObject_name }}\n{{ end }}恢復: {{ .startTime }} \n通知策略: {{ .dispatchRuleName }} \n恢複警示內容: {{ for .alerts }} {{ .annotations.message }}\n {{ end }}"
      }
    }
  3. (可選)單擊發送測試,驗證配置是否成功。

  4. 單擊確定

步驟三:設定通知策略

建立或編輯通知策略,選擇通知對象通用Webhook,然後選擇對應的Webhook整合。具體操作,請參見通知策略

說明

Webhook警示的逾時時間為5秒,如果發出請求後5秒內沒有返回,即沒有收到警示資訊,則表示發送失敗。