プログラムによる処理のためにHTTP POST リクエストとして Webhook エンドポイントにアラート通知を送信するよう Atlas を構成できます。 Webhook を使用すると、Atlas アラートをカスタム モニタリング システム、インシデント マネジメント プラットフォーム、またはオートメーションワークフローと統合できます。
必要なアクセス権
Atlas を Webhook と統合するには、プロジェクトへのOrganization Owner またはProject Owner アクセス権が必要です。
Webhook 統合を構成する
Atlas で、Project Settings ページに移動します。
まだ表示されていない場合は、希望するプロジェクトを含む組織を選択しますナビゲーション バーのOrganizationsメニュー
まだ表示されていない場合は、ナビゲーション バーのProjectsメニューから目的のプロジェクトを選択します。
サイドバーで、 アイコンを Project Overview の横にあるをクリックします。
[ Project Settings ]ページが表示されます。
Webhook にアラートを送信するには、アラート通知を構成します。詳しくは、「 アラート設定の構成 」を参照してください。
リクエスト ヘッダー
Atlas には、 Webhookリクエストごとに次のHTTPヘッダーが含まれています。
ヘッダー | 説明 |
|---|---|
| アラート状態を示します。可能な値は次のとおりです。
|
| (任意)Webhook Secret フィールドにシークレットを指定する場合、Atlas にはこのヘッダーが含まれます。リクエスト本文の base64 でエンコードされた HMAC -SHA-1 署名が含まれます。 Atlas は提供されたシークレットを使用して署名を作成します。このヘッダーを使用して、WebhookリクエストがAtlas から発生したことを確認します。 |
リクエスト本文
リクエストボディには、 Atlas Administration APIアラートリソースと同じ形式を使用するJSONドキュメントが含まれています。ペイロードには、次のようなキー フィールドが含まれます。
id:アラートの一意の識別子。eventTypeName:アラートをトリガーしたイベントのタイプ。created:アラートが作成されたときのタイムスタンプ。status:アラートの現在のステータス(例:OPEN、CLOSED)。humanReadable:アラートの人間が判読可能な説明 。このフィールドには、「Project: [プロジェクト名] Organization: [org名]」形式のプロジェクト名と組織名、および他のアラートの詳細が含まれます。
フィールドの完全なリストについては、 Atlas Administration API がすべてのプロジェクト アラートを取得する ドキュメントを参照してください。
Webhook ペイロードの例
次の例は、ディスク容量アラートの Webhook ペイロードのサンプルを示しています。
{ "id": "5d1b6f8e8c2e4e2d3c4a5b6c", "groupId": "5d1b6f8e8c2e4e2d3c4a5b6d", "eventTypeName": "OUTSIDE_METRIC_THRESHOLD", "status": "OPEN", "created": "2024-01-15T10:30:00Z", "updated": "2024-01-15T10:30:00Z", "lastNotified": "2024-01-15T10:30:00Z", "humanReadable": "Disk space used on data partition is 95.2%. Project: MyProject Organization: MyOrganization", "metricName": "DISK_PARTITION_SPACE_USED_DATA", "currentValue": { "number": 95.2, "units": "RAW" } }
Webhook リクエストの認証
Webhook Secretフィールドには、Atlas がリクエスト検証用の X-MMS-Signature ヘッダーを生成するためにのみ使用するシークレットが保存されます。 Atlas は、認証ヘッダーまたはベアラー トークンとしてシークレットを直接送信しません。
Webhook エンドポイントに認証が必要な場合は、次のいずれかの方法を使用して個別に処理する必要があります。
クエリ パラメータ: クエリ パラメータとして の認証情報を含めます。例:Webhook URL
https://example.com/webhook?token=your-auth-tokenIPアクセス リスト: Atlas IPアドレスからのリクエストのみを受け入れるように Webhook エンドポイントを設定します。この構成により、Atlas のみがエンドポイントにリクエストを送信できるようになります。
逆プロキシまたはAPIゲートウェイ: Webhook エンドポイントにリクエストを転送する前に認証を処理するリバース プロキシまたはAPIゲートウェイを使用します。
Webhook リクエストの検証
WebhookリクエストがAtlas から発生したことを確認するには、X-MMS-Signature ヘッダーを検証します。
制限
Webhook 統合を使用する場合は、次の制限を考慮してください。
アラート重大度は含まれていません
Webhook ペイロードには、Atlas alertConfigIdで設定したアラート重大度レベルは含まれません。構成された重大度を取得するには、Webhook ペイロードの を使用して Atlas Administration API Get One Alert Configuration エンドポイントへの追加の呼び出しを行います。
手動テスト アラートなし
Atlas には、テスト アラートを手動でトリガーする方法は提供されていません。 Webhook エンドポイントをテストするには、次のような簡単にトリガーできる条件でアラートを一時的に設定します。
テスト クラスター上の低ディスク容量しきい値。
複数の接続を開くことでトリガーできる接続数のしきい値。
テストレプリカセットでのレプリケーションラグのしきい値。
Webhook がアラートを正しく受信したことを確認した後、テストアラート構成を削除できます。
ファイアウォール構成
ファイアウォールでIP アクセス リストを構成する必要がある場合は、Atlas IPアドレスからのアクセスを許可して、Atlas が Webhook エンドポイントと通信できるようにします。
Webhook 配信の問題のトラブルシューティング
Webhook がアラートを受信しない場合: