通知ポリシーを作成する際に、アラート通知をカスタム Webhook URL に送信するように指定できます。Alibaba Cloud Managed Service for Prometheus では、特定のインスタントメッセージングアプリの連絡先にアラート通知を送信できます。このトピックでは、Webhook を使用して Lark に通知を送信する方法について説明します。
手順 1: Webhook URL を取得する
Lark を開き、ログオンします。
+ アイコンをクリックし、グループを追加をクリックして、アラート通知を受信するために使用する Lark グループを作成します。
Lark グループの右側にある設定アイコンをクリックし、BOT タブをクリックします。
BOT タブで、BOT を追加をクリックします。
BOT を追加ダイアログボックスで、カスタム BOT セクションの追加をクリックします。
BOT 名 パラメーターと 説明 パラメーターを設定し、追加をクリックします。
コピーWebhook URL保存
手順 2: Webhook を作成する
Managed Service for Prometheus コンソール にログオンします。左側のナビゲーションペインで、 を選択します。
連絡先グループの編集ダイアログボックスで、Webhook タブをクリックし、Webhook を作成をクリックします。Webhook を作成ダイアログボックスで、パラメーターを設定します。次の表にパラメーターを示します。
パラメーター
説明
Webhook 名
Webhook の名前を入力します。
リクエストメソッド
リクエストメソッドを指定し、HTTP または HTTPS URL を入力します。リクエストメソッドは POST または GET に設定でき、URL は 100 文字を超えることはできません。
この例では、Post を選択し、手順 1: Webhook URL を取得する で保存した Webhook URL をフィールドに貼り付けます。
ヘッダーとパラメーター
リクエストヘッダーとパラメーターを指定します。最大 200 文字までサポートされています。
追加をクリックして、ヘッダーまたはパラメーターを追加します。デフォルトのリクエストヘッダーは
Content-Type: text/plain; charset=UTF-8
です。ヘッダーとパラメーターの合計数は 6 を超えることはできません。この例では、次のヘッダーを設定します。
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 Triggered At: {{ .startTime }} \nAlert Message: {{ for .alerts }} {{ .annotations.message }}\n {{ end }}" } }
アラートをクリアするためのテンプレート
アラートが解決されたときに送信するコンテンツを指定します。$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 }}", "Alert 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 }}Alert Cleared At: {{ .startTime }} \nNotification Policy: {{ .dispatchRuleName }} \nAlert Message: {{ for .alerts }} {{ .annotations.message }}\n {{ end }}" } }
オプション: テストをクリックして、設定が有効かどうかを確認します。
OK をクリックします。
手順 3: 通知ポリシーを設定する
通知ポリシーを作成または変更する際に、通知オブジェクト パラメーターを ユニバーサル Webhook に設定し、Webhook を選択できます。詳細については、通知ポリシーを作成および管理する を参照してください。
Webhook を使用して送信されるアラート通知のタイムアウト期間は 5 秒です。通知の送信後 5 秒以内に Webhook が応答を受信しない場合、通知の送信は失敗します。