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