Simple Log Service は、動的受信者機能を提供します。この機能を使用すると、Webhook を使用してアラート通知の動的受信者を設定できます。
シナリオ
Simple Log Service アラートシステムでユーザーまたはユーザーグループを作成し、アクションポリシーでそれらを指定してアラート通知を受信できます。ただし、この方法は、次のような特定の特殊なシナリオのニーズを満たせない場合があります。
サードパーティのユーザー管理システムへの接続: 一部の企業は、自己管理型のユーザー管理システムを保有しています。このような場合、ユーザー管理システムのユーザー情報の更新は、Simple Log Service のアラートシステムにリアルタイムで同期されません。企業の組織構造は、企業で作成されたユーザーとユーザーグループによって異なります。したがって、Simple Log Service が提供するユーザーおよびユーザーグループモデルは、すべての企業に適用できるわけではありません。
動的受信者へのアラート通知の送信: システムに複数のサービスがあり、各サービスのアラート通知を異なる受信者に送信する必要がある場合は、アクションポリシーの動的配信メカニズムを使用して複数のアクショングループを設定する必要があります。これにより、メンテナンスコストが増加します。
仕組み
上記のシナリオでは、動的受信者機能を使用してアラート通知の受信者を指定できます。動的受信者機能を使用する場合は、Webhook URL を指定する必要があります。Simple Log Service は、アラート通知を送信する前に Webhook を呼び出します。次に、Webhook サービスはアラート通知の受信者に関する情報を返します。この方法では、Simple Log Service のアラートシステムで受信者を管理する必要はありません。
動的受信者
静的受信者
動的受信者の設定
アクションポリシーを作成する場合は、[受信者タイプ] パラメーターを [動的受信者] に設定します。次に、その他のパラメーターを設定します。次の表にパラメーターを示します。詳細については、「アクションポリシーの作成」をご参照ください。
パラメーター | 説明 |
[受信者タイプ] | [動的受信者] を選択します。 |
[受信者コールバック URL] | Webhook URL を入力します。詳細については、「Webhook の仕様」をご参照ください。Webhook URL には次の制限があります。
重要 動的受信者の Webhook は、アラート通知の Webhook と同じ方法で呼び出されます。Webhook のアクセスの制御を設定する場合は、IP アドレスのホワイトリストまたは HTTP リクエストヘッダーを設定します。詳細については、「アクセス許可を確認する方法」をご参照ください。 |
[リクエストヘッダー] | Simple Log Service が指定された Webhook URL にリクエストを送信するときに追加する必要があるリクエストヘッダーを入力します。 デフォルトでは、Content-Type: application/json リクエストヘッダーが追加されます。Content-Type パラメーターを別の値に設定した場合、リクエストヘッダーは有効になりません。 |
Webhook の仕様
リクエスト情報
リクエストメソッド: POST
リクエストヘッダー:
カスタムリクエストヘッダー。
デフォルトのリクエストヘッダー: Content-Type: application/json。
リクエスト例:
alerts フィールドの値は、セットにマージされたアラートの配列です。アラートセットには最大 10 個のアラートを含めることができます。詳細については、「アラートテンプレートの変数 (新バージョン)」をご参照ください。Webhook サービスは、リクエストを受信した後、リクエストに基づいて受信者を決定し、受信者に関する情報を Simple Log Service に返します。
{ "alerts": [ { "alert_id": "test-alert-1", // アラートの一意の ID "alert_instance_id": "jid-**********-a578-441e-8d25-42e92aef506c", // インスタンス ID "alert_name": "Test Alert 1", // アラートルール名 "alert_time": 1646808904, // 現在の評価時間 "alert_type": "sls_alert", // アラートタイプ "aliuid": "123****3424", // Alibaba Cloud アカウント ID // アノテーション情報 "annotations": { "desc": "Test alert triggered", // 説明 "title": "Test Title" // アノテーション }, // アラートをトリガーしたデータ "fire_results": [ {"message": "error occurs"} ], "fire_results_count": 1, // アラートをトリガーしたデータエントリの総数 "fire_time": 1646808904, // 初回トリガー時間 // タグ情報 "labels": { "app": "nginx", // アプリケーションタグ "env": "prod", // 環境タグ "team": "sre" // 担当チーム }, "next_eval_interval": 60, // 次の評価間隔 (秒) "project": "demo-alert", // アラートルールが属するプロジェクト "region": "cn-hangzhou", // リージョン ID "resolve_time": 0, // アラートの回復時間 (アラートステータスが firing の場合は値は 0 です。アラートステータスが resolved の場合は、特定の回復時間です。) "severity": 8, // アラートの重大度 (10: 致命的; 8: 高; 6: 中; 4: 低; 2: レポートのみ) "status": "firing" // アラートステータス (firing: アラートがトリガーされました; resolved: 回復通知) } ] }
レスポンス情報
状態コード: 200
レスポンスヘッダー: Content-Type: application/json レスポンスヘッダーを含める必要があります。
レスポンス例:
{ "receivers": [{ "code": "86", "phone": "137****34", "email": "****@example.com" }] }フィールド
タイプ
必須
説明
code
文字列
いいえ
レスポンスにこのフィールドが含まれていない場合、Simple Log Service はデフォルトコード 86 を使用します。
phone
文字列
いいえ
このフィールドは、通知方法 パラメーターを SMS メッセージ、音声通話、DingTalk、または Enterprise WeChat に設定した場合にのみ有効です。通知方法 パラメーターをメールに設定した場合は、このフィールドを無視します。
email
文字列
いいえ
このフィールドは、通知方法 パラメーターをメールに設定した場合にのみ有効です。通知方法 パラメーターを別の値に設定した場合は、このフィールドを無視します。