Ops Manager は、プログラムによる処理のためにHTTP POST リクエストとして Webhook エンドポイントにアラート通知を送信するように構成できます。 Webhook を使用すると、Ops Manager アラートをカスタム モニタリング システム、インシデント マネジメント プラットフォーム、またはオートメーションワークフローと統合できます。
必要なアクセス権
Ops Manager を Webhook と統合するには、プロジェクトへのProject Monitoring Admin アクセス権が必要です。
Webhook 統合の構成
Webhook にアラートを送信するには、アラート通知を構成します。詳細については、「 Ops Manager でのアラート設定の構成 」を参照してください。
リクエストヘッダー
MongoDB Ops Manager には、 Webhookリクエストごとに次のHTTPヘッダーが含まれています。
MongoDB Ops Manager は、さまざまなアラート状態を区別するためにX-MMS-Eventというリクエスト ヘッダーを追加します。 このヘッダーに指定できる値は次のとおりです。
| アラートは先ほど開かれています。 |
| アラートは解決されました。 |
| 以前に開かれたアラートはまだ開いています。 |
| アラートは確認されました。 |
| アラートは無効になり、キャンセルされました。 |
| 「プライマリ選択」など、特定の時点のイベントである情報アラートを表します。 |
Webhook Secretフィールドにキーを指定すると、 MongoDB Ops Manager はX-MMS-Signatureリクエストヘッダーを追加します。このヘッダーには、リクエスト本文の base64 エンコードされた HMAC -SHA-1 署名が含まれています。 MongoDB Ops Manager は、提供されたシークレットを使用して署名を作成します。
リクエスト本文
リクエストボディには、 Ops Manager APIアラートリソースと同じ形式を使用するJSONドキュメントが含まれています。ペイロードには、次のようなキー フィールドが含まれます。
id: アラートの一意の識別子です。eventTypeName: アラートをトリガーするイベントの種類。created: アラートが作成されたタイムスタンプ。status:アラートの現在のステータス(例: 、OPEN、CLOSED)。humanReadable:アラートの人間が判読可能な説明 。
フィールドの完全なリストについては、 Get One Alert エンドポイントのドキュメント を参照してください。
例 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%.", "metricName": "DISK_PARTITION_SPACE_USED_DATA", "currentValue": { "number": 95.2, "units": "RAW" } }
Webhook テンプレートをカスタマイズする
Free テンプレートを使用して、リクエストヘッダーとボディ コンテンツをカスタマイズできます。使用可能なテンプレート変数、正規表現ヘルパー、例など、Webhook テンプレートの詳細については、「 Webhook テンプレートの構成 」を参照してください。
Webhook リクエストの認証
Webhook Secretフィールドには、 MongoDB Ops Manager がリクエスト検証用の X-MMS-Signature ヘッダーを生成するためにのみ使用するシークレットが保存されます。 MongoDB Ops Manager は、認証ヘッダーまたはベアラー トークンとしてシークレットを直接送信しません。
ウェブフックエンドポイントで認証が必要な場合は、次のいずれかの方法を使用して独自に取り扱う必要があります。
クエリパラメータ: Webhook URLにクエリパラメータとして認証情報を含めます。例:
https://example.com/webhook?token=your-auth-tokenIPアクセス リスト: MongoDB Ops Manager インスタンスのIPアドレスからのリクエストのみを受け入れるように Webhook エンドポイントを設定します。
逆プロキシまたはAPIゲートウェイ: Webhook エンドポイントにリクエストを転送する前に認証を処理するリバース プロキシまたはAPIゲートウェイを使用します。
Webhook リクエストの確認
WebhookリクエストがMongoDB Ops Manager から発生したことを確認するには、X-MMS-Signature ヘッダーを検証します。
Webhook シークレットを使用して、リクエスト本文の base64 でエンコードされた HMAC -SHA-1 署名を計算します。
制限
ウェブフック統合を使用する場合は、次の制約事項を考慮してください。
アラートの重要度は含まれません
Webhook ペイロードには、Ops Manager alertConfigIdで設定したアラート重大度レベルは含まれません。構成された重大度を取得するには、Webhook ペイロードから を使用して、1 つのアラート構成を取得する エンドポイントを追加で呼び出します。
手動テストアラートなし
Ops Manager には、テスト アラートを手動でトリガーする方法は提供されていません。 Webhook エンドポイントをテストするには、次のような簡単にトリガーできる条件でアラートを一時的に設定します。
テスト環境の低ディスク容量しきい値。
複数の接続を開くことで trigger できる接続数のスレッショル。
テストレプリカセットにおけるレプリケーションラグのしきい値。
ウェブフックがアラートを正しく受信していることを確認した後、テスト アラート構成を削除できます。
ファイアウォール構成
Ops Manager はセルフホスト型であるため、Ops Managerサーバーから Webhook エンドポイントへのアウトバウンドHTTPリクエストがネットワークで許可されていることを確認してください。 Webhook エンドポイントがファイアウォール の背後にある場合は、Ops Manager サーバーのIPアドレスをエンドポイントのIP アクセス リストに追加します。
Webhook配信の問題のトラブルシューティング
ウェブフックがアラートを受信しない場合: