Webhook サービスを使用すると、Simple Log Service (SLS) で受信者リストを維持する代わりに、アラート通知の受信者を動的に決定できます。
ユースケース
SLS でユーザーまたはユーザーグループを作成し、アクションポリシーで選択してアラート通知を受信させることができます。ただし、このアプローチは、次のようなすべてのシナリオに適しているとは限りません:
-
サードパーティのユーザー管理システムとの統合:一部の組織では独自のユーザー管理システムを使用しており、ユーザー情報を SLS とリアルタイムで同期し続けることは困難な場合があります。SLS のユーザーモデルとユーザーグループモデルは、組織の既存の構造と完全に一致しない可能性があります。
-
動的な連絡先への通知:システムに多くのサービスがあり、サービスごとに異なる受信者にアラートを送信する必要がある場合、アクションポリシーで個別のブランチを設定すると、メンテナンスのオーバーヘッドが増加します。
仕組み
動的受信者機能では、アラートがトリガーされたときに SLS が呼び出す Webhook サービスを用意します。Webhook は受信者の連絡先情報を返すため、SLS で受信者リストを維持する必要はありません。
-
動的受信者
-
静的受信者
設定
アクションポリシーで、[受信者タイプ] を [動的受信者] に設定し、次のパラメーターを構成します。
|
パラメーター |
説明 |
|
[受信者タイプ] |
[動的受信者] を選択します。 |
|
[受信者コールバック URL] |
お使いの Webhook サービス の URL です。詳細については、「API 仕様」をご参照ください。次の制限があります:
重要
動的受信者 Webhook は、標準のアラート通知 Webhook と同じ呼び出し規約に従います。アクセスを制御するには、IP アドレスホワイトリストまたはカスタム HTTP ヘッダーを設定できます。詳細については、「アクセス制御の設定」をご参照ください。 |
|
[リクエストヘッダー] |
SLS が受信者コールバック URL にリクエストを送信する際に含まれるリクエストヘッダーです。 デフォルトでは、SLS は Content-Type: application/json リクエストヘッダーを追加します。Content-Type を別の値に設定しても効果はありません。 |
API 仕様
リクエスト
-
リクエストメソッド: POST
-
リクエストヘッダー:
-
カスタムリクエストヘッダー。
-
デフォルトのリクエストヘッダー: Content-Type: application/json。
-
-
リクエストペイロードのサンプル
alerts フィールドは、最大 10 個の相関アラートを含む配列です。パラメーターの詳細については、「アラートテンプレートの変数 (新規)」をご参照ください。お使いの Webhook サービスは、このデータを使用して受信者を決定し、その連絡先情報を SLS に返します。
{ "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", // リージョン "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
文字列
いいえ
国番号です。省略した場合のデフォルト値は 86 です。
phone
文字列
いいえ
SMS、音声、DingTalk、企業 Wechat の通知に使用されます。メール通知には不要です。
email
文字列
いいえ
メール通知にのみ使用されます。他のチャネルには不要です。