すべてのプロダクト
Search
ドキュメントセンター

:Webhook を使用してカスタムアラート通知を送信する

最終更新日:Dec 30, 2024

通知ポリシーを作成する際に、アラート通知をカスタムWebhook URLに送信するように指定できます。Application Real-Time Monitoring Service (ARMS) のアラート管理サブサービスを使用すると、特定のインスタントメッセージングアプリの連絡先にアラート通知を送信できます。このトピックでは、Webhookを使用してLarkに通知を送信する方法について説明します。

ステップ 1: Webhook URL を取得する

コンピューターで Lark チャットボットを構成します。

  1. Lark を開き、ログオンします。

  2. + アイコンをクリックし、新規グループ をクリックして、アラート通知を受信するために使用する Lark グループを作成します。

  3. 設定アイコンをクリックし、次にボットタブをクリックします。

  4. ボット タブで、ボットの追加 をクリックします。

    飞书添加机器人

  5. ボットの追加 ダイアログ ボックスの カスタム ボット セクションで、[追加] をクリックします。

    飞书-自定义机器人

  6. ボット名 および 説明 パラメーターを設定し、追加 をクリックします。

    飞书-设置机器人

  7. コピー (Webhook URL の横) をクリックし、完了をクリックします。

    飞书-Webhook

ステップ 2: 連絡先の Webhook を作成する

  1. ARMS consoleにログオンします。左側のナビゲーションペインで、アラート管理 > 通知オブジェクト を選択します。

  2. [連絡先グループの編集] ダイアログ ボックスで、Webhook タブをクリックし、次に Webhook の追加 をクリックします。

  3. Webhookの作成ダイアログボックスで、次のパラメーターを構成します。次の表に、パラメーターの説明を示します。

    パラメーター

    説明

    Webhook名

    必須。Webhook の名前を入力します。

    POST または GET

    必須。リクエストメソッドを指定し、URL を入力します。URL は 256 文字を超えることはできません。

    この例では、Post を選択し、手順 1: Webhook URL を取得する で保存した webhook URL をフィールドに貼り付けます。

    ヘッダーまたはパラメーター

    オプション。リクエストヘッダーを指定します。リクエストヘッダーは200文字を超えることはできません。追加 をクリックして、ヘッダーまたはパラメーターを追加します。デフォルトのリクエストヘッダーは Content-Type: text/plain; charset=UTF-8 です。ヘッダーとパラメーターの合計数は6を超えることはできません。

    この例では、次の 2 つの ヘッダー を設定します。

    • Arms-Content-Type : json

    • Content-Type : application/json

    通知テンプレート

    オプション。アラートがトリガーされたときに送信するコンテンツを指定します。このパラメーターは、[Post] を選択した場合にのみ表示されます。プレースホルダー $content を使用して通知コンテンツを指定できます。コンテンツは 500 文字を超えることはできません。詳細については、通知テンプレートと Webhook テンプレートの構成を参照してください。

    次の形式で通知内容を指定します。

    {
    // アラート名
    "Alert name":"{{ .commonLabels.alertname }}{{if .commonLabels.clustername }}",
    // クラスタ名
    "Cluster name":"{{ .commonLabels.clustername }} {{ end }}{{if eq "app" .commonLabels._aliyun_arms_involvedObject_kind }}",
    // アプリケーション名
    "Application name":"{{ .commonLabels._aliyun_arms_involvedObject_name }} {{ end }}",
    // 通知ポリシー
    "Notification policy":"{{ .dispatchRuleName }}",
    // アラート時刻
    "Alert time":"{{ .startTime }}",
    // 通知コンテンツ
    "Notification content":"{{ for .alerts }} {{ .annotations.message }} {{ end }}"
    }

    この例では、次のテンプレートが使用されます。

    {
      "msg_type": "text",
      "content": {
        "text": "Alert name: {{ .commonLabels.alertname }}\n{{if .commonLabels.clustername }}Cluster name: {{ .commonLabels.clustername }}\n{{ end }}{{if eq "app" .commonLabels._aliyun_arms_involvedObject_kind }}Application name: {{ .commonLabels._aliyun_arms_involvedObject_name }}\n{{ end }}Notification policy: {{ .dispatchRuleName }} \nAlert time: {{ .startTime }} \nNotification content: {{ for .alerts }} {{ .annotations.message }}\n {{ end }}"
      }
    }

    アラートをクリアするためのテンプレート

    省略可能。アラートが解決されたときに送信するコンテンツを指定します。このパラメーターは、[Post] を選択した場合にのみ表示されます。$content プレースホルダーを使用して通知コンテンツを指定できます。コンテンツは 500 文字を超えることはできません。詳細については、通知テンプレートと Webhook テンプレートの構成を参照してください。

    次の形式で通知コンテンツを指定します。

    {
    // アラート名
    "Alert name":"{{ .commonLabels.alertname }}{{if .commonLabels.clustername }}",
    // クラスタ名
    "Cluster name":"{{ .commonLabels.clustername }} {{ end }}{{if eq "app" .commonLabels._aliyun_arms_involvedObject_kind }}",
    // アプリケーション名
    "Application name":"{{ .commonLabels._aliyun_arms_involvedObject_name }} {{ end }}",
    // 通知ポリシー
    "Notification policy":"{{ .dispatchRuleName }}",
    // アラートが解決された時刻
    "Time when the alert is resolved":"{{ .endTime }}",
    // 通知コンテンツ
    "Notification content":"{{ for .alerts }} {{ .annotations.message }} {{ end }}"
    }

    この例では、次のテンプレートが使用されます。

    {
      "msg_type": "text",
      "content": {
        "text": "Alert name: {{ .commonLabels.alertname }}\n{{if .commonLabels.clustername }}Cluster name: {{ .commonLabels.clustername }}\n{{ end }}{{if eq "app" .commonLabels._aliyun_arms_involvedObject_kind }}Application name: {{ .commonLabels._aliyun_arms_involvedObject_name }}\n{{ end }}Time when the alert is resolved: {{ .startTime }} \nNotification policy: {{ .dispatchRuleName }} \nNotification content: {{ for .alerts }} {{ .annotations.message }}\n {{ end }}"
      }
    }
  4. オプション: テスト をクリックして、構成が有効かどうかを確認します。

  5. OK をクリックします。

ステップ 3: 通知ポリシーを構成する

通知ポリシーを作成または変更するときに、通知オブジェクト パラメーターを ユニバーサル Webhook に設定し、Webhook を選択できます。詳細については、通知ポリシーの作成と管理 を参照してください。

説明

Webhook を使用して送信されるアラート通知のタイムアウト期間は 5 秒です。通知の送信後 5 秒以内に Webhook が応答を受信しない場合、通知の送信は失敗します。