データバスは、API を使用して VMware Aria Operations for Networks に保存されているデータを他のアプリケーションと共有するためのフレームワークです。データバスを使用すると、大量のデータをほぼリアルタイムに、低遅延で共有できます。

VMware Aria Operations for Networks データバスには次の利点があります。

  • 大量のデータをプログラムで使用する際に、準リアルタイムで行うことができます。
  • 変更ベースの使用モデルで動作します。特に、フローやメトリックなどの大量のデータがあるコンテキストでは、データバスの方が従来の API 呼び出しよりも明らかに便利です。

使用事例

VMware Aria Operations for Networks データバスを使用すると、データをさまざまな目的に使用できます。データバスの使用方法の例を次に示します。

使用事例 説明 ステップ
フローを長期間保持 通常、VMware Aria Operations for Networks でのフロー保持期間は 1 か月です。

データバスを使用すると、フローを長期間保持できます。

  1. HTTPS/HTTP データを受信するようにサブスクリプション URL を設定します。
  2. 必要なセキュリティ情報を把握していることを確認します。セキュリティと SSL 証明書の確認を参照してください。
  3. サブスクライバを登録して、フローのメッセージ グループをサブスクライブします。
  4. データのストリーミングが開始します。メッセージ フォーマットの詳細については、データバスから受信したメッセージ形式を参照してください。
  5. データバス機能の詳細については、「データバスの用語と機能について」を参照してください。
さまざまな宛先へのアラートの送信 デフォルトでは、SNMP/SMTP 宛先にアラートを送信できます。

データバスを使用すると、Slack、ServiceNow、PagerDuty など、他のさまざまな宛先にアラートを送信できます。

データバスを使用して取得できるアラートの例として、パスワードの有効期限切れ、VMware vCenter Server の切断などに関するシステム アラートがあります。

  1. HTTPS/HTTP データを受信するようにサブスクリプション URL を設定します。
  2. 必要なセキュリティ情報を把握していることを確認します。セキュリティと SSL 証明書の確認を参照してください。
  3. サブスクライバを登録して、問題のメッセージ グループをサブスクライブします。
  4. データのストリーミングが開始します。メッセージ フォーマットの詳細については、「データバスから受信したメッセージ形式」を参照してください。
  5. データバス機能の詳細については、「データバスの用語と機能について」を参照してください。
VMware Aria Operations for Networks からのメトリックのストリーミング メトリック用の API のポーリングは、エンティティ ID の取得、API の定期的な呼び出し、重複する情報の除外を含む複数の手順からなるプロセスです。

データバスはこのプロセス全体を非常に効率化します。ユーザーが選択したメトリック グループまたはサブグループにサブスクライブして、メトリックを処理すると、メトリックはエンドポイントに直接ストリーミングされます。

  1. HTTPS/HTTP データを受信するようにサブスクリプション URL を設定します。
  2. 必要なセキュリティ情報を把握していることを確認します。セキュリティと SSL 証明書の確認を参照してください。
  3. サブスクライバを登録して、メトリックのメッセージ グループをサブスクライブします。
  4. データのストリーミングが開始します。メッセージ フォーマットの詳細については、データバスから受信したメッセージ形式を参照してください。
  5. データバス機能の詳細については、「データバスの用語と機能について」を参照してください。

サポートされているメッセージ グループ

情報を定期的にポーリングする場合は、API の代わりにデータバス ストリーミングを使用することをお勧めいたします。また、データバスから情報を受信するには、メッセージ グループにサブスクライブする必要があります。メッセージ グループは、データバスからサブスクライブできる特定のデータ セットです。各メッセージ グループに最大 10 個のサブスクライバを含めることができます。ただし、フローとメトリックのメッセージ グループでは、例外的に、メッセージ グループごとにサブスクライバを 1 つのみ含めることができます。また、メトリック メッセージ グループでは、メッセージ グループごとにサブスクライバを 1 つのみ含めることができます。

VMware Aria Operations for Networks は、次のメッセージ グループをサポートします。

メッセージ グループ サブメッセージ グループ メッセージ詳細
メトリック vms-metrics メトリック、間隔、タイム スタンプ、単位、エンティティ タイプ、およびポイント。
hosts-metrics メトリック、間隔、タイム スタンプ、単位、エンティティ タイプ、およびポイント。
flows-metrics メトリック、間隔、タイム スタンプ、単位、エンティティ タイプ、およびポイント。
nics-metrics メトリック、間隔、タイム スタンプ、単位、エンティティ タイプ、およびポイント。
switchports-metrics メトリック、間隔、タイム スタンプ、単位、エンティティ タイプ、およびポイント。
nsxt-metrics メトリック、間隔、タイム スタンプ、単位、エンティティ タイプ、およびポイント。
アプリケーション 該当なし エンティティ ID、エンティティ タイプ、名前、作成者、作成時刻、最終変更者、最終変更時刻、ソース、階層、検出情報。
フロー 該当なし ソース仮想マシン、ターゲット仮想マシン、ソース IP アドレス、ターゲット IP アドレス、ポート、ソース フォルダ、ターゲット フォルダ、プロトコル、ソース IP セット、ターゲット IP セット、ソース セキュリティ グループ、ターゲット セキュリティ グループ、トラフィック タイプ、ソース セキュリティ タグ、ターゲット セキュリティ タグ、ソース仮想マシン タグ、ターゲット仮想マシン タグ、ホスト内、ファイアウォール アクション、フロー タグ。
問題 該当なし エンティティ ID、エンティティ タイプ、名前、アンカー エンティティ、メッセージ、イベント タグ、管理状態、アーカイブ済み、イベント時間エポック(ミリ秒)、イベント タイプ、重要度。
表 1. 構成関連のメッセージ グループ
メッセージ グループ メッセージ詳細
仮想マシン エンティティ ID、名前、エンティティ タイプ、IP アドレス、デフォルト ゲートウェイ、デフォルト ゲートウェイ、VNIC、ソース ファイアウォール ルール、ターゲット ファイアウォール ルール、仮想マシン UUID、マネージャ UUID、クラスタ、リソース プール、ホスト、ベンダー ID、vCenter Server マネージャ、フォルダ、データストア、データセンター、ソース反転ルール、ターゲット反転ルール、CPU 数、メモリ、OS フル ネーム、HCX 情報。
ホスト エンティティ ID、名前、エンティティ タイプ、VMKNIC、クラスタ、vCenter Server マネージャ、仮想マシン数、データストア、サービス タグ、ベンダー ID、メンテナンス モード、接続状態、CPU 数、メモリ、およびマネージャ UUID。
NIC エンティティ ID、名前、エンティティ タイプ、VLAN、および仮想マシン。
スイッチポート エンティティ ID、名前、エンティティ タイプ、動作ステータス、管理ステータス、サブ タイプ、デバイス、およびマネージャ。
ヒント: サブメッセージ グループは、より詳細な情報を提供します。特定のメッセージ グループのすべてのサブスクライバに同じ情報が送信されます。

データバスを介して公開されるデータは、さまざまなメッセージ グループに分類されます。ユーザーは 1 つ以上のメッセージ グループにサブスクライブすることができ、これらのメッセージ グループに関連するデータは HTTP または HTTPS エンドポイントへのストリーミングを開始します。

次の手順を実行して、データバスを構成します。

1. セキュリティと SSL 証明書の情報の確認

データバスの使用中は、次のセキュリティ情報に注意する必要があります。

環境 詳細
オンプレミス
  • 転送プロトコルとしての HTTP/HTTPS - オンプレミス環境で databus を使用している場合は、HTTP/HTTPS エンドポイントを介してデータバスからデータを取得できます。転送中のデータ暗号化とサブスクライバの信頼性確認を確実に行うには、HTTPS を使用します。
  • ファイアウォール ルール - VMware Aria Operations for Networks のみがサブスクライバにデータを送信できるようにするには、ファイアウォール ルールを有効にする必要があります。クラスタ内のすべての VMware Aria Operations for Networks プラットフォーム ノードからサブスクライバにデータが送信されるため、すべてのプラットフォーム ノードからのトラフィックを許可するようにファイアウォール ルールを構成する必要があります。
  • SSL 証明書 - サブスクライバが使用する SSL 証明書は、既知の CA によって署名されている必要があります。SSL 証明書が自己署名されているか組織の内部 CA によって署名されていて、Java によって信頼されていない場合は、CA 証明書を VMware Aria Operations for Networks の Java トラスト ストアにインポートする必要があります。Java トラスト ストアのインポート方法については、VMware のサポートにお問い合わせください。
    注: トラスト ストアにインポートされた CA 証明書は、 VMware Aria Operations for Networks プラットフォームから送信されるすべての SSL トラフィックで信頼されます。
SaaS
  • トランスポート プロトコルとしての HTTPS - SaaS 環境でデータバスを使用している場合、データバスからデータを取得するには、HTTPS エンドポイントを経由する必要があります。
  • メッセージ認証用の CSP トークン - VMware Aria Operations for Networks (SaaS) から送信された各データバス メッセージには、認証ヘッダーと CSP によって発行された JWT トークンが含まれています。サブスクライバは、CSP (https://console.cloud.vmware.com/csp/gateway/am/api/auth/token-public-key) から取得したパブリック キーを使用してトークンを検証することで、トークンの信頼性を確認できます。トークンの信頼性を検証して、トークン内のクライアント ID が CSP に登録されている VMware Aria Operations for Networks データバス アプリケーションのクライアント ID であることを確認できます。VMware Aria Operations for Networks データバス開発者からクライアント ID の詳細を取得します。
  • SSL 証明書 - サブスクライバが使用する SSL 証明書は、既知の CA によって署名されている必要があります。デフォルトでは、VMware Aria Operations for Networks (SaaS) で発行された SSL 証明書は JDK によって署名されています。VMware Aria Operations for Networks (SaaS) はカスタム CA 証明書のインポートをサポートしていません。

2. サブスクライバの登録、更新、または削除

  • サブスクライバを登録するには、POST メソッドを使用して API 呼び出しを実行する必要があります。詳細については、「VMware Aria Operations for Networks API リファレンス」を参照してください。

    登録に成功すると、メッセージ応答にサブスクライバ ID が格納されます。サブスクライバ ID を使用して、サブスクリプションの削除や更新を行うことができます。サブスクライバの登録に成功してから、サブスクライバがメッセージの受信を開始するまでに、最大 5 分かかる場合があります。

  • サブスクライバを更新するには、PUT メソッドを使用して API 呼び出しを実行する必要があります。詳細については、「VMware Aria Operations for Networks API リファレンス」を参照してください。
    注: 更新できるのはサブスクライバ URL のみです。 message group を更新することはできません。
  • サブスクライバを削除するには、DELETE メソッドを使用して API 呼び出しを実行する必要があります。詳細については、「VMware Aria Operations for Networks API リファレンス」を参照してください。

    サブスクライバの削除に成功してから、データの公開が停止するまでに、最大 5 分かかる場合があります。

3. データバスから受信したメッセージ形式

さまざまなメッセージ グループの一部として受信されたメッセージは、複数のメッセージのリストであり、共通のハイレベル構造を持ちます。リスト内の各メッセージは、クラウド イベント形式のオブジェクトです。クラウド イベントの詳細については、cloudevents を参照してください。

すべてのメッセージには、次の 2 つの特定のフィールド セットがあります。

  • 共通構造 - すべてのメッセージ グループで共通です。次に例を示します。
    "id": "14cfd27c-76d8-43e3-9fe9-f53bf69c0c5e", 
        "type": "Application", 
        "specversion": "1.0", 
        "source": "CAESBkFCQ0RFRg==", 
        "messageGroup": "applications", 
        "status": "CREATE", 
  • メッセージ グループ固有の構造 - メッセージ グループごとに一意です。たとえば、アプリケーション メッセージに含まれる、アプリケーション メッセージ グループに固有のデータ オブジェクトを次に示します。
        "data": { 
          "entity_id": "1:561:0", 
          "entity_type": "APPLICATION", 
          "name": "app1", 
          "created_by": "[email protected]", 
          "creation_time": 1637303575039, 
          "last_modified_by": "[email protected]", 
          "last_modified_time": 1637303575039, 
          "source": "MANUAL", 
          "tiers": [ 
            { 
              "entity_id": "1:562:1", 
              "entity_type": "TIER", 
              "name": "app1_t1" 
           } 
          ] 
        } 

データバス メッセージ内のオブジェクトの構造は、サブセットが使用されているメトリックを除き、パブリック API 応答のスキーマに適合します。メッセージ構造は、さまざまなバージョンの VMware Aria Operations for Networks で後方互換性が維持されています。新しいバージョンでは、新しいフィールドが追加される場合があります。各メッセージ グループのメッセージの詳細構造については、『VMware Aria Operations for Networks API ガイド』を参照してください。

次の表に、各メッセージ グループのさまざまなタイプのメッセージの名前を示します。

メッセージ グループ メッセージのタイプまたはスキーマ
アラート(問題イベントのみ) エンティティ メッセージ リスト。詳細については、「VMware Aria Operations for Networks API リファレンス」を参照してください。
アプリケーション アプリケーション メッセージ リスト。詳細については、「VMware Aria Operations for Networks API リファレンス」を参照してください。
フロー フロー メッセージ。詳細については、「VMware Aria Operations for Networks API リファレンス」を参照してください。
metrics

メトリック データの構造は、メッセージをコンパクトにするパブリック API とは異なります。

[
    {
        "id": "string",
        "type": "string",
        "specversion": "string",
        "source": "string",
        "message_group": "metrics",
        "data": {
            "metric": "string",
            "interval": 0,
            "timestamp": 0,
            "unit": "string",
            "entity_type": "string",
            "points": [
                {
                    "entity_id": "string",
                    "value": 0
                }
            ]
        }
    }
]