12.2. Network Observability CLI の使用


フローやパケットデータをターミナル内で直接可視化およびフィルタリングすると、特定のポートを使用しているユーザーの特定など、詳細な使用状況を確認できます。Network Observability CLI は、フローを JSON およびデータベースファイルとして、パケットを PCAP ファイルとして収集します。これらのファイルはサードパーティーツールで使用できます。

12.2.1. フローのキャプチャー

フローをキャプチャーし、データ内の任意のリソースまたはゾーンでフィルタリングすると、2 つのゾーン間のラウンドトリップタイム (RTT) を表示するなどのユースケースに対応できます。CLI でのテーブル視覚化により、表示機能とフロー検索機能が提供されます。

前提条件

  • OpenShift CLI (oc) がインストールされている。
  • Network Observability CLI (oc netobserv) プラグインがインストールされている。

手順

  1. 次のコマンドを実行して、フィルターを有効にしてフローをキャプチャーします。

    $ oc netobserv flows --enable_filter=true --action=Accept --cidr=0.0.0.0/0 --protocol=TCP --port=49051
  2. ターミナルの live table filter プロンプトでフィルターを追加して、受信するフローをさらに絞り込みます。以下に例を示します。

    live table filter: [SrcK8S_Zone:us-west-1b] press enter to match multiple regular expressions at once
  3. PageUp キーと PageDown キーを使用して、NoneResourceZoneHostOwner、および all of the above を切り替えます。
  4. キャプチャーを停止するには、Ctrl+C を押します。キャプチャーされたデータは、CLI のインストールに使用したのと同じパスにある ./output ディレクトリー内の 2 つの異なるファイルに書き込まれます。
  5. キャプチャーされたデータを、JSON ファイル ./output/flow/<capture_date_time>.json で確認します。このファイルには、キャプチャーされたデータの JSON 配列が含まれています。

    JSON ファイルの例:

    {
      "AgentIP": "10.0.1.76",
      "Bytes": 561,
      "DnsErrno": 0,
      "Dscp": 20,
      "DstAddr": "f904:ece9:ba63:6ac7:8018:1e5:7130:0",
      "DstMac": "0A:58:0A:80:00:37",
      "DstPort": 9999,
      "Duplicate": false,
      "Etype": 2048,
      "Flags": 16,
      "FlowDirection": 0,
      "IfDirection": 0,
      "Interface": "ens5",
      "K8S_FlowLayer": "infra",
      "Packets": 1,
      "Proto": 6,
      "SrcAddr": "3e06:6c10:6440:2:a80:37:b756:270f",
      "SrcMac": "0A:58:0A:80:00:01",
      "SrcPort": 46934,
      "TimeFlowEndMs": 1709741962111,
      "TimeFlowRttNs": 121000,
      "TimeFlowStartMs": 1709741962111,
      "TimeReceived": 1709741964
    }

  6. SQLite を使用して、./output/flow/<capture_date_time>.db データベースファイルを検査できます。以下に例を示します。

    1. 次のコマンドを実行してファイルを開きます。

      $ sqlite3 ./output/flow/<capture_date_time>.db
    2. SQLite SELECT ステートメントを実行してデータをクエリーします。次に例を示します。

      sqlite> SELECT DnsLatencyMs, DnsFlagsResponseCode, DnsId, DstAddr, DstPort, Interface, Proto, SrcAddr, SrcPort, Bytes, Packets FROM flow WHERE DnsLatencyMs >10 LIMIT 10;

      出力例

      12|NoError|58747|10.128.0.63|57856||17|172.30.0.10|53|284|1
      11|NoError|20486|10.128.0.52|56575||17|169.254.169.254|53|225|1
      11|NoError|59544|10.128.0.103|51089||17|172.30.0.10|53|307|1
      13|NoError|32519|10.128.0.52|55241||17|169.254.169.254|53|254|1
      12|NoError|32519|10.0.0.3|55241||17|169.254.169.254|53|254|1
      15|NoError|57673|10.128.0.19|59051||17|172.30.0.10|53|313|1
      13|NoError|35652|10.0.0.3|46532||17|169.254.169.254|53|183|1
      32|NoError|37326|10.0.0.3|52718||17|169.254.169.254|53|169|1
      14|NoError|14530|10.0.0.3|58203||17|169.254.169.254|53|246|1
      15|NoError|40548|10.0.0.3|45933||17|169.254.169.254|53|174|1

12.2.2. パケットのキャプチャー

Network Observability CLI を使用してパケットをキャプチャーできます。

前提条件

  • OpenShift CLI (oc) がインストールされている。
  • Network Observability CLI (oc netobserv) プラグインがインストールされている。

手順

  1. フィルターを有効にしてパケットキャプチャーを実行します。

    $ oc netobserv packets --action=Accept --cidr=0.0.0.0/0 --protocol=TCP --port=49051
  2. ターミナルの live table filter プロンプトでフィルターを追加して、受信するパケットを絞り込みます。フィルターの例は次のとおりです。

    live table filter: [SrcK8S_Zone:us-west-1b] press enter to match multiple regular expressions at once
  3. PageUp キーと PageDown キーを使用して、NoneResourceZoneHostOwner、および all of the above を切り替えます。
  4. キャプチャーを停止するには、Ctrl+C を押します。
  5. キャプチャーされたデータを確認します。このデータは、CLI のインストールに使用したのと同じパスにある ./output/pcap ディレクトリー内の 1 つのファイルに書き込まれます。

    1. ./output/pcap/<capture_date_time>.pcap ファイルは Wireshark で開くことができます。

12.2.3. Network Observability CLI のクリーンアップ

oc netobserv cleanup を実行して、CLI ワークロードを手動でクリーンアップできます。このコマンドは、クラスターからすべての CLI コンポーネントを削除します。

キャプチャーを終了すると、このコマンドがクライアントによって自動的に実行されます。接続の問題が発生した場合は、手動で実行する必要がある場合があります。

手順

  • 以下のコマンドを実行します。

    $ oc netobserv cleanup
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.