検索クエリは、環境全体で検索を実行し、指定した検索語に基づいてすべてのタイプのエンティティを検索できます。また、vRealize Network Insight は、クエリを構築する際に、グローバル検索バーに入力したテキストに一致する保存された検索や最近の検索などの候補を提示します。

検索クエリは、次のカテゴリに分類できます。
  1. [構造化クエリ]

    構造化クエリは、次のコンポーネントから構成されます。

    構造化クエリは、射影、エンティティ タイプ、フィルタ、グループ化の基準、並べ替えの基準などのコンポーネントで構成されています。

    • [エンティティ タイプ]:エンティティ タイプは、検索するオブジェクトのタイプを表します。これは、単数形または複数形の形式のいずれかで指定できます。構造化クエリでは、エンティティ タイプは必須です。

      エンティティ タイプには、仮想マシン、ホスト、セキュリティ グループ、VLAN、VXLAN、ルーター、フロー、問題、イベントなどがあります。

      次に例を示します。
      1. Virtual machines
      2. Hosts
      3. Flows
      4. MTU Mismatch Alerts
      5. Problems
    • [フィルタ]:フィルタの構文は次のとおりです。

      フィルタには where 句の後に条件を指定する必要があります。

      条件の構文は次のとおりです。

      条件の構文には、プロパティ、演算子(以下と等しい、以下より大きい、以下に含まれるなど)、および値が含まれます。

      フィルタ句を使用して、検索結果をフィルタできます。フィルタ句の条件は、プロパティ、比較演算子、および値で構成されます。条件を論理演算子と組み合わせて、複雑な条件を形成できます。以下に、使用できる演算子の一覧を示します。
      演算子
      =

      flows where source ip address = '10.16.240.0/24'

      flows where flow type = 'Source is VM'

      ! = vms where ip address != '10.17.0.0/16'
      >

      vms where memory > 4096 mb

      < vms where cpu usage rate < 70%
      >= vms where memory >= 4096 mb
      <= vms where cpu usage rate <= 70%
      like vms where name like 'app'
      not like

      vms where name not like 'app'

      in

      flows where port in (22, 23, 80, 443)

      vm where ip address in (192.168.91.11, 192.168.91.10)

      not in

      flows where port not in (22, 23, 80, 443)

      vm where ip address not in (192.168.91.11, 192.168.91.10)

      is set vms where firewall rule is set
      is not set vms where firewall rule is not set
      () flows where (src tier = ‘App’ and destination tier = ‘DB’) OR (destination tier = ‘App’ and source tier = ‘DB’)
      and flows where src tier = 'App' and destinationtier = 'DB'
      or flows where flow type = 'Source is VMKNIC' or flow type = 'Destination is VMKNIC'
      一致

      vm where name matches '.*'

      vm where name matches 'a.*'

      vm where name matches '[a-z]vm-delta[0-9]'

      一致しない

      vm where name not matches '.*'

      vm where name not matches 'a.*'

      vm where name not matches '[a-z]vm-delta[0-9]'

      ネストされた「in」演算子

      vm where in (vm where name = 'x')

      vm where in (vm of host where name = 'x')

      vm where host in (host of vm where name = 'x')

      vm where name in (name of vm where name = 'x')

      [射影]:クエリ内の射影句は、フィルタリングされたエンティティからどのフィールドを表示する必要があるかを決定します。これはオプションの句です。射影句が指定されていない場合は、デフォルトのフィールド セットが検索結果に表示されます。射影句には、次のいずれかの項目を含めることができます。
      1. プロパティ
      2. カウント
      3. リスト
      4. 集計
      5. 系列

      ""(null テキスト)

      1. [プロパティ]:エンティティをエンティティ タイプで検索すると、デフォルトのプロパティ セットが検索結果に表示されます。射影を使用すると、検索結果に表示するフィールドを選択できます。たとえば、os of vms は、OS property が含まれるすべての仮想マシンを検索結果に一覧表示します。
        次にいくつかの例を示します。
        • cpu cores of vms
        • source ip address of flows

        メトリック プロパティが使用されている場合、メトリック プロパティが y-axis で時刻が x-axis のグラフが、エンティティごとに表示されます。

      2. [カウント]:カウント クエリを使用すると、あるエンティティ タイプのオブジェクト数を計算できます。次に例を示します。
        • count of vms
        • count of hosts
        • count of flows
      3. [リスト]:取得するエンティティにフィルタ条件を適用できない場合は、リスト演算子が役立ちます。

        次に例を示します。

        List(host) of vms where memory <= 2gb

        このクエリは、ホストのリストを取得しますが、仮想マシンにフィルタ条件が適用されています。例: List(ip address)of vms where cpu cores = 1

        [集計関数]:集計関数を使用すると、数値の config または metric プロパティから単一の値を計算できます。検索クエリ言語では、次の集計関数がサポートされています。
        • max
        • sum
        • min
        • avg
        次に例を示します。
        • sum(memory) of hosts
        • sum(memory), sum(cpu cores) of vms
        • sum(bytes) of flows
      4. [系列]:系列演算子は、メトリック プロパティでの集計の実行に使用します。次に例を示します。

        series(avg(cpu usage)) of vms where cpu cores = 4

        このクエリは、4 つの CPU コアを持つすべての仮想マシンの、平均 CPU 使用率を含むグラフを表示します。次に例を示します。
        • series(sum(network usage)) of vms where name like 'app'
        • series(sum(memory usage)) of vms where name like 'db'
        • series(avg(cpu usage)), series(avg(memory usage)) of vms
    • [並べ替え]order by 句を使用して検索結果を並べ替えることができます。order by 句で使用できるフィールドは 1 つだけです。デフォルトでは、結果は降順でソートされます。

      ""(null テキスト)

      次に例を示します。

      1. vms order by cpu cores
      2. vms order by cpu cores asc
      3. flows order by bytes

      limit 句を使用すると、結果の数を制限できます。これは、order by 句の後に指定する必要があります。次に例を示します。

      vms order by memory limit 5
    • [グループ分け]:エンティティをプロパティごとにグループ化できます。エンティティをプロパティでグループ化すると、デフォルトでは、各グループの結果の数が表示されます。射影を追加することで、任意のプロパティの合計/最大/最小の値を計算できます。order by 句を追加すると、結果がソートされます。order by または projection 句がクエリに含まれる場合は、集計関数が必要です。

      ""(null テキスト)

      sum(bytes) of flows group by dest vm

      このクエリは、射影句に集計関数があるため、有効です。bytes of flows group by dest vm のようなクエリは、射影句に集計関数がないため、無効になります。

      次に例を示します。
      1. vms group by host
      2. sum (bytes) of flows group by dest vm order by sum(bytes)
  2. [エンティティ クエリ]

    ""(null テキスト)

    [エンティティ タイプによる検索]:エンティティ タイプを検索することで、あるエンティティ タイプのすべてのエンティティを一覧表示できます。

    例:vmshostsflowsnsx managers

    1. [エンティティ名で検索]
      • フル ネームで検索:エンティティの完全な名前が分かっている場合は、名前を一重引用符で囲んで検索できます。

        例:'prod-68-1''app1-72-1'

      • 名前の一部で検索:1 つの単語または複数の単語で検索すると、入力した単語に一致するすべてのエンティティが取得されます。

        例:prodapp1

        注: 入力内容にキーワードまたはエンティティ タイプが含まれる場合、検索クエリとして処理される可能性があります。
      • エンティティ タイプと名前で検索:エンティティの名前とタイプの両方が分かっている場合、エンティティ タイプとエンティティ名を一緒に使用して検索できます。

        例:検索クエリ 'vm app1'app1 を含むすべての仮想マシンを返します。

  3. [計画クエリ]

    これらのクエリは、フローの分析による、データセンターのセキュリティ計画に使用できます。

    ""(null テキスト)

    例:
    1. plan securitygroup1
    2. plan host1
    3. plan security
  4. [パス クエリ]

    これらのクエリを使用して、2 台の仮想マシン間のパス、または仮想マシンからインターネットへのパスを表示できます。

    ""(null テキスト)

    例:
    1. Vm 'vm1' to Vm 'vm2'
    2. VM 'vm1' to Internet
注:
  • 検索クエリでは、大文字と小文字は区別されません。
  • エンティティ タイプまたは設定プロパティに同義語を使用できます。たとえば、エンティティタイプ 'virtual machine' には、'vm' の同義語があります。