Atlas を構成して、プログラムによるプロセシングのためにアラート通知を HTTP POST リクエストとしてウェブフック エンドポイントに送信できます。ウェブフックを使用すると、Atlas アラートをカスタムモニタリングシステム、インシデントマネジメントプラットフォーム、またはオートメーションワークフローと統合できます。
必要なアクセス権
Atlas を Webhook と統合するには、プロジェクトの Organization Owner または Project Owner アクセス権が必要です。
Webhook 統合の構成
Atlas で、Project Settings ページに移動します。
まだ表示されていない場合は、希望するプロジェクトを含む組織を選択しますナビゲーション バーのOrganizationsメニュー
まだ表示されていない場合は、ナビゲーション バーのProjectsメニューから目的のプロジェクトを選択します。
サイドバーで、 アイコンを Project Overview の横にあるをクリックします。
[ Project Settings ]ページが表示されます。
(任意)ウェブフックテンプレートをカスタマイズします。
FreeMarker テンプレートを使用して、リクエスト ヘッダーとボディ コンテンツをカスタマイズできます。
Webhook Headers Template フィールドに FreeMarker テンプレートを入力して、ウェブフック リクエストとともに送信される HTTP ヘッダーをカスタマイズします。
Webhook Body Template フィールドに FreeMarker テンプレートを入力して、リクエストボディの構造をカスタマイズします。
テンプレートを構成した場合、その後に Webhook 統合を表示または編集すると、テンプレートは ****** で隠されて表示されます。抽出されたテンプレートは新しい値で上書きできます。
Atlas は構成を保存するときに フリーマークの構文を検証します。テンプレートに 無効な構文が含まれている場合、フォームには インライン検証エラー が表示されます。
アラートをウェブフックに送信するには、アラート通知を構成します。詳しくは、「アラート設定の構成」を参照してください。
リクエストヘッダー
Atlas は、各ウェブフック リクエストに次の HTTP ヘッダーを含めます。
ヘッダー | 説明 |
|---|---|
| アラートの状態を示します。可能な値:
|
| (任意)、Webhook Secret フィールドでシークレットを指定すると、Atlas はこのヘッダーを含めます。リクエスト本文の Base64 エンコードされた HMAC-SHA-1 署名が含まれています。Atlas は提供されたシークレットを使用して署名を生成します。このヘッダーを使用して、ウェブフック リクエストが Atlas から発信されたことを確認します。 |
リクエスト本文
リクエスト ボディには、Atlas Administration API アラート リソース と同じ形式を使用する JSON ドキュメントが含まれています。ペイロードには、次のような主要なフィールドが含まれています。
id: アラートの一意の識別子です。eventTypeName: アラートをトリガーするイベントの種類。created: アラートが作成されたタイムスタンプ。status: アラートの現在の状態(例:OPEN、CLOSED)。humanReadable: アラートの人間が読み取り可能な説明。このフィールドには、プロジェクト名と組織名が "プロジェクト: [プロジェクト名] 組織: [組織名]" の形式で含まれ、その他のアラート詳細も含まれます。
フィールドの完全なリストについては、Atlas Administration API の「すべてのプロジェクト アラートを取得」ドキュメントを参照してください。
例 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 はシークレットを認証ヘッダーまたは Bearer token として直接送信しません。
ウェブフックエンドポイントで認証が必要な場合は、次のいずれかの方法を使用して独自に取り扱う必要があります。
クエリパラメータ: Webhook URLにクエリパラメータとして認証情報を含めます。例:
https://example.com/webhook?token=your-auth-tokenIP アクセス リスト: Webhook エンドポイントとなる接続されたデバイスを構成して、Atlas IP アドレスからのみリクエストを受け入れるようにします。この構成により、Atlas のみがエンドポイントとなる接続されたデバイスにリクエストを送信できるようになります。
リバース プロキシまたは API ゲートウェイ: リバース プロキシまたは API ゲートウェイを使用して、リクエストをウェブフック エンドポイントとなる接続されたデバイスに転送する前に認証を取り扱います。
Webhook リクエストの確認
ウェブフックリクエストがAtlasから発信されたものであることを確認するには、X-MMS-Signature ヘッダーを検証します。
制限
ウェブフック統合を使用する場合は、次の制約事項を考慮してください。
アラートの重要度は含まれません
Webhook ペイロードには、Atlas で構成したアラートの重大度レベルは含まれません。構成された重大度を検索するには、Webhook ペイロードの alertConfigId を使用して、Atlas Administration API の Get One Alert Configuration エンドポイントとなる接続されたデバイスに追加の呼び出しを行います。
手動テストアラートなし
Atlasには、テストアラートを手動でtriggerする方法はありません。Webhookのエンドポイントとなる接続されたデバイスをテストするには、次のような、triggerされやすい条件のアラートを一時的に設定できます。
テスト クラスターのディスク空間が少ない場合のしきい。
複数の接続を開くことで trigger できる接続数のスレッショル。
テストレプリカセットにおけるレプリケーションラグのしきい値。
ウェブフックがアラートを正しく受信していることを確認した後、テスト アラート構成を削除できます。
ファイアウォール構成
ファイアウォールで IP アクセス リストの構成が必要な場合は、Atlas が Webhook エンドポイントと通信できるように、Atlas IP アドレスからのアクセスを許可します。
Webhook配信の問題のトラブルシューティング
ウェブフックがアラートを受信しない場合: