AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。

Cloud ManagerでWebhookと統合する

Cloud Manager を設定して、アラート通知をプログラムでプロセシングするための HTTP 書き込み リクエストとしてウェブフック エンドポイントとなる接続されたデバイスに送信するようにできます。Webhooks により、Cloud Manager アラートをカスタムモニタリングシステム、インシデントマネジメントプラットフォーム、またはオートメーションワークフローと統合できます。

Cloud Manager を Webhook と統合するには、プロジェクトに対する Project Monitoring Admin アクセス権が必要です。

1
  1. まだ表示されていない場合は、希望するプロジェクトを含む組織を選択しますナビゲーション バーのOrganizationsメニュー

  2. まだ表示されていない場合は、ナビゲーション バーのProjectsメニューから目的のプロジェクトを選択します。

  3. サイドバーで、Project Settings をクリックします。

    [ Project Settings ]ページが表示されます。

2

サイドバーで、 Settings見出しの下のIntegrationsをクリックします。

プロジェクト統合ページが表示されます。

3
4

Webhook URL フィールドで、Cloud Manager がアラート通知を送信するエンドポイントとなる接続されたデバイスの URL を入力します。

5

Webhook Secret フィールドにシークレットキーを入力します。Cloud Manager はこのシークレットを使用して、リクエスト検証用の X-MMS-Signature ヘッダーを生成します。

6

アラートをウェブフックに送信するには、アラート通知を構成します。詳しくは、「アラート設定の構成」を参照してください。

Cloud Manager は、各 Webhook リクエストに以下の HTTP ヘッダーを含めます。

Cloud Manager は、さまざまなアラート状態を区別するためにX-MMS-Eventというリクエスト ヘッダーを追加します。 このヘッダーに指定できる値は次のとおりです。

alert.open

アラートは先ほど開かれています。

alert.close

アラートは解決されました。

alert.update

以前に開かれたアラートはまだ開いています。

alert.acknowledge

アラートは確認されました。

alert.cancel

アラートは無効になり、キャンセルされました。

alert.inform

「プライマリ選択」など、特定の時点のイベントである情報アラートを表します。

Webhook Secret フィールドでキーを指定する場合、MongoDB Cloud Manager は X-MMS-Signature リクエストヘッダーを追加します。このヘッダーには、リクエスト本文の Base64 エンコードされた HMAC-SHA-1 署名が含まれています。MongoDB Cloud Manager は提供されたシークレットを用いて署名を生成します。

リクエスト ボディには、Cloud Manager API アラート リソース と同じ形式を使用する JSON ドキュメントが含まれています。ペイロードには、次のようなキーフィールドが含まれています。

  • id: アラートの一意の識別子です。

  • eventTypeName: アラートをトリガーするイベントの種類。

  • created: アラートが作成されたタイムスタンプ。

  • status: アラートの現在のステータス(例: OPEN、CLOSED)。

  • humanReadable: アラートの人間が判読可能な説明。

フィールドの完全なリストについては、Get One アラート エンドポイントとなる接続されたデバイスのドキュメントを参照してください。

次の例は、メトリクスしきい値アラートのサンプル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%.", "metricName": "DISK_PARTITION_SPACE_USED_DATA", "currentValue": { "number": 95.2, "units": "RAW" }}

ウェブフック通知の webhookHeadersTemplate および webhookBodyTemplate フィールドを設定することで、ウェブフック リクエスト ヘッダーとボディコンテンツをカスタマイズできます。各テンプレートは ${field} 補間をサポートしています。Cloud Manager は、通知を送信するときに、各 ${field} プレースホルダーをアラート ドキュメントの一致するフィールドの値で置き換えます。

アラート ドキュメントが返すフィールド(${eventTypeName}、${clusterName}、${status}、${created} など)はすべて補間できます。補間できるフィールドの完全なリストについては、アラートの取得エンドポイントとなる接続されたデバイスの応答フィールドを参照してください。

例えば、ボディ テンプレート {"event": "${eventTypeName}", "cluster": "${clusterName}"} は、Cloud Manager がリクエストを送信する前に、各プレースホルダーをアラート値でレンダーします。

レンダリングされたボディは有効な JSON である必要があり、Content-Type: application/json ヘッダーとともに送信されます。レンダリングされたヘッダーは、各ヘッダー名をその値にマップする JSON オブジェクトである必要があります。Cloud Manager は、webhook シークレットまたは署名ヘッダーをテンプレートに公開しません。また、API 応答では、テンプレート フィールドの両方を隠します。

テンプレートのレンダーに失敗した場合、サイズ制限を超えた場合、または無効な出力が生成された場合、Cloud Managerは代わりにデフォルトのペイロードとヘッダーを送信し、通知を配信します。

アラートを保存する前にレンダーされた出力をプレビューするには、サンプル アラート データに対してテンプレートをレンダーする Post test message to webhook ボタンをクリックします。

Webhook Secret フィールドには、リクエストの検証のために X-MMS-Signature ヘッダーを生成する目的でのみ Cloud Manager が使用するシークレットが保存されます。Cloud Manager は、シークレットを認証ヘッダーや Bearer token として直接送信することはありません。

ウェブフックエンドポイントで認証が必要な場合は、次のいずれかの方法を使用して独自に取り扱う必要があります。

  • クエリパラメータ: Webhook URLにクエリパラメータとして認証情報を含めます。例: https://example.com/webhook?token=your-auth-token

  • IP アクセス リスト: Cloud Manager の IP アドレスからのリクエストのみを受け入れるように webhook エンドポイントとなる接続されたデバイスを構成します。この構成により、Cloud Manager のみがエンドポイントとなる接続されたデバイスにリクエストを送信できるようになります。

  • リバースプロキシまたはAPIゲートウェイ: リクエストを webhook エンドポイントとなる接続されたデバイスに転送する前に、認証を取り扱うリバースプロキシまたはAPIゲートウェイを使用します。

Webhook リクエストが Cloud Manager から発信されたことを確認するには、X-MMS-Signature ヘッダーを検証します。

1
2
3

一致する場合、リクエストは正規です。

ウェブフック統合を使用する場合は、次の制約事項を考慮してください。

Webhookペイロードには、Cloud Managerで構成したアラートの重大度レベルは含まれていません。構成された重大度を検索するには、WebhookペイロードのalertConfigIdを使用して、Get One アラート Configurationエンドポイントとなる接続されたデバイスを呼び出します。

Cloud Managerには、テストアラートを手動でtriggerする方法はありません。Webhookエンドポイントとなる接続されたデバイスをテストするには、次のように、triggerしやすい条件でアラートを一時的に設定できます。

  • テスト配置におけるディスク容量不足のしきい値。

  • 複数の接続を開くことで trigger できる接続数のスレッショル。

  • テストレプリカセットにおけるレプリケーションラグのしきい値。

ウェブフックがアラートを正しく受信していることを確認した後、テスト アラート構成を削除できます。

ファイアウォールで IP アクセス リストの構成が必要な場合は、Cloud Manager が webhook エンドポイントとなる接続されたデバイスと通信できるように、Cloud Manager の IP アドレスからのアクセスを許可してください。

ウェブフックがアラートを受信しない場合:

1
2
3

Cloud Manager は、その他のステータス コードを失敗と見なします。

4
5
このページを評価