検索

7.2. Traffic flows ビューからのネットワークトラフィックの監視

download PDF

Traffic flows ビューには、ネットワークフローのデータとトラフィックの量がテーブルに表示されます。管理者は、トラフィックフローテーブルを使用して、アプリケーション全体のトラフィック量を監視できます。

7.2.1. Traffic flows ビューの操作

管理者は、Traffic flows テーブルに移動して、ネットワークフロー情報を確認できます。

手順

  1. Observe Network Traffic に移動します。
  2. Network Traffic ページで、Traffic flows タブをクリックします。

各行をクリックして、対応するフロー情報を取得できます。

7.2.2. Traffic flows ビューの詳細オプションの設定

Show advanced options を使用して、ビューをカスタマイズおよびエクスポートできます。Display options ドロップダウンメニューを使用して、行サイズを設定できます。デフォルト値は Normal です。

7.2.2.1. 列の管理

表示する必要のある列を選択し、並べ替えることができます。列を管理するには、Manage columns をクリックします。

7.2.2.2. トラフィックフローデータのエクスポート

Traffic flows ビューからデータをエクスポートできます。

手順

  1. Export data をクリックします。
  2. ポップアップウィンドウで、Export all data チェックボックスを選択してすべてのデータをエクスポートし、チェックボックスをオフにしてエクスポートする必要のあるフィールドを選択できます。
  3. Export をクリックします。

7.2.3. 会話追跡の使用

管理者は、同じ会話の一部であるネットワークフローをグループ化できます。会話は、IP アドレス、ポート、プロトコルによって識別されるピアのグループとして定義され、その結果、一意の Conversation ID が得られます。Web コンソールで対話イベントをクエリーできます。これらのイベントは、Web コンソールでは次のように表示されます。

  • Conversation start: このイベントは、接続が開始されているか、TCP フラグがインターセプトされたときに発生します。
  • Conversation tick: このイベントは、接続がアクティブである間、FlowCollector spec.processor.conversationHeartbeatInterval パラメーターで定義された指定間隔ごとに発生します。
  • Conversation end: このイベントは、FlowCollector spec.processor.conversationEndTimeout パラメーターに達するか、TCP フラグがインターセプトされたときに発生します。
  • Flow: これは、指定された間隔内に発生するネットワークトラフィックフローです。

手順

  1. Web コンソールで、Operators Installed Operators に移動します。
  2. NetObserv OperatorProvided APIs 見出しの下で、Flow Collector を選択します。
  3. cluster を選択し、YAML タブを選択します。
  4. spec.processor.logTypesconversationEndTimeout、および conversationHeartbeatInterval パラメーターが観察のニーズに応じて設定されるように、FlowCollector カスタムリソースを設定します。設定例は次のとおりです。

    会話追跡用に FlowCollector を設定する

    apiVersion: flows.netobserv.io/v1beta2
    kind: FlowCollector
    metadata:
      name: cluster
    spec:
     processor:
      logTypes: Flows                              1
      advanced:
       conversationEndTimeout: 10s                 2
       conversationHeartbeatInterval: 30s          3

    1
    logTypesFlows に設定すると、Flow イベントのみがエクスポートされます。値を All に設定すると、会話イベントとフローイベントの両方がエクスポートされ、Network Traffic ページに表示されます。会話イベントのみに焦点を当てるには、Conversations を指定します。これを指定すると、Conversation startConversation tick、および Conversation end イベントがエクスポートされます。EndedConversations を指定すると、Conversation end イベントのみがエクスポートされます。ストレージ要件は All で最も高く、EndedConversations で最も低くなります。
    2
    Conversation end イベントは、conversationEndTimeout に達するか、TCP フラグがインターセプトされた時点を表します。
    3
    Conversation tick イベントは、ネットワーク接続がアクティブである間の、FlowCollectorconversationHeartbeatInterval パラメーターで定義された各指定間隔を表します。
    注記

    logType オプションを更新しても、以前の選択によるフローはコンソールプラグインから消去されません。たとえば、午前 10 時まで logTypeConversations に設定し、その後 EndedConversations に移行すると、コンソールプラグインは、午前 10 時まではすべての会話イベントを表示し、午前 10 時以降は終了した会話のみを表示します。

  5. Traffic flows タブの Network Traffic ページを更新します。Event/TypeConversation Id という 2 つの新しい列があることに注意してください。クエリーオプションとして Flow が選択されている場合、すべての Event/Type フィールドは Flow になります。
  6. Query Options を選択し、Log Type として Conversation を選択します。Event/Type は、必要なすべての会話イベントを表示するようになりました。
  7. 次に、特定の会話 ID でフィルタリングするか、サイドパネルから ConversationFlow ログタイプのオプションを切り替えることができます。

7.2.4. パケットドロップの使用

パケットロスは、ネットワークフローデータの 1 つ以上のパケットが宛先に到達できない場合に発生します。パケットのドロップは、次に示す YAML の例の仕様に合わせて FlowCollector を編集することで追跡できます。

重要

この機能を有効にすると、CPU とメモリーの使用量が増加します。

手順

  1. Web コンソールで、Operators Installed Operators に移動します。
  2. NetObserv OperatorProvided APIs 見出しの下で、Flow Collector を選択します。
  3. cluster を選択し、YAML タブを選択します。
  4. パケットドロップ用に FlowCollector カスタムリソースを設定します。以下はその例です。

    FlowCollector の設定例

    apiVersion: flows.netobserv.io/v1beta2
    kind: FlowCollector
    metadata:
      name: cluster
    spec:
      namespace: netobserv
      agent:
        type: eBPF
        ebpf:
          features:
           - PacketDrop            1
          privileged: true       2

    1
    spec.agent.ebpf.features 仕様リストに PacketDrop パラメーターをリストすることで、各ネットワークフローにおけるパケットドロップの報告を開始できます。
    2
    パケットドロップを追跡するには、spec.agent.ebpf.privileged の仕様値が true である必要があります。

検証

  • Network Traffic ページを更新すると、OverviewTraffic FlowTopology ビューにパケットドロップに関する新しい情報が表示されます。

    1. Manage panels で、Overview に表示するパケットドロップのグラフィカル表示を新しく選択します。
    2. Manage columns で、Traffic flows テーブルに表示するパケットドロップ情報を選択します。

      1. Traffic Flows ビューでは、サイドパネルを展開してパケットドロップの詳細情報を表示することもできます。
    3. Topology ビューでは、ドロップが発生した場所が赤線で表示されます。

7.2.5. DNS 追跡の使用

DNS 追跡を使用すると、ネットワークの監視、セキュリティー分析の実施、DNS 問題のトラブルシューティングを実行できます。次に示す YAML の例の仕様に合わせて FlowCollector を編集することで、DNS を追跡できます。

重要

この機能を有効にすると、eBPF agent で CPU とメモリーの使用量の増加が観察されます。

手順

  1. Web コンソールで、Operators Installed Operators に移動します。
  2. Network ObservabilityProvided APIs という見出しの下で、Flow Collector を選択します。
  3. cluster を選択し、YAML タブを選択します。
  4. FlowCollector カスタムリソースを設定します。設定例は次のとおりです。

    DNS 追跡用に FlowCollector を設定する

    apiVersion: flows.netobserv.io/v1beta2
    kind: FlowCollector
    metadata:
      name: cluster
    spec:
      namespace: netobserv
      agent:
        type: eBPF
        ebpf:
          features:
           - DNSTracking           1
          sampling: 1              2

    1
    spec.agent.ebpf.features パラメーターリストを設定すると、Web コンソールで各ネットワークフローの DNS 追跡を有効にできます。
    2
    より正確なメトリクスと DNS レイテンシー をキャプチャーするために、sampling 値を 1 に設定できます。sampling 値が 1 より大きい場合、DNS レスポンスコードDNS ID を含むフローを監視できますが、DNS レイテンシー を監視できる可能性は低くなります。
  5. Network Traffic ページを更新すると、Overview ビューと Traffic Flow ビューで表示する新しい DNS 表示と適用可能な新しいフィルターが表示されます。

    1. Manage panels で新しい DNS の選択肢を選択すると、Overview にグラフィカルな表現と DNS メトリクスが表示されます。
    2. Manage columns で新しい選択肢を選択すると、DNS 列が Traffic Flows ビューに追加されます。
    3. DNS IdDNS ErrorDNS LatencyDNS Response Code などの特定の DNS メトリクスでフィルタリングして、サイドパネルから詳細情報を確認します。DNS Latency 列と DNS Response Code 列がデフォルトで表示されます。
注記

TCP ハンドシェイクパケットには DNS ヘッダーがありません。DNS ヘッダーのない TCP プロトコルフローの場合、トラフィックフローデータに表示される DNS LatencyID、および Response code の値が "n/a" になります。"DNSError" が "0" の Common フィルターを使用すると、フローデータをフィルタリングして、DNS ヘッダーを持つフローのみを表示できます。

7.2.6. RTT トレーシングの使用

次に示す YAML の例の仕様に合わせて FlowCollector を編集することで、RTT を追跡できます。

手順

  1. Web コンソールで、Operators Installed Operators に移動します。
  2. NetObserv OperatorProvided APIs という見出しの下で、Flow Collector を選択します。
  3. cluster を選択し、YAML タブを選択します。
  4. RTT トレーシング用に FlowCollector カスタムリソースを設定します。次に例を示します。

    FlowCollector の設定例

    apiVersion: flows.netobserv.io/v1beta2
    kind: FlowCollector
    metadata:
      name: cluster
    spec:
      namespace: netobserv
      agent:
        type: eBPF
        ebpf:
          features:
           - FlowRTT   1

    1
    spec.agent.ebpf.features 仕様リストに FlowRTT パラメーターをリストすることで、RTT ネットワークフローのトレースを開始できます。

検証

Network Traffic ページを更新すると、OverviewTraffic FlowTopology ビューに RTT に関する新しい情報が表示されます。

  1. Overview で、Manage panels の新しい選択肢を選択して、表示する RTT のグラフィカル表示を選択します。
  2. Traffic flows テーブルに Flow RTT 列が表示されます。Manage columns で表示を管理できます。
  3. Traffic Flows ビューでは、サイドパネルを展開して RTT の詳細情報を表示することもできます。

    フィルタリングの例

    1. Common フィルター Protocol をクリックします。
    2. TCPIngress の方向に基づいてネットワークフローデータをフィルタリングし、10,000,000 ナノ秒 (10 ms) を超える FlowRTT 値を探します。
    3. Protocol フィルターを削除します。
    4. Common フィルターで 0 より大きい Flow RTT 値をフィルタリングします。
  4. Topology ビューで、Display option ドロップダウンをクリックします。次に、edge labels のドロップダウンリストで RTT をクリックします。

7.2.6.1. ヒストグラムの使用

Show histogram をクリックすると、フローの履歴を棒グラフとして視覚化するためのツールバービューが表示されます。ヒストグラムは、時間の経過に伴うログの数を示します。ヒストグラムの一部を選択して、ツールバーに続く表でネットワークフローデータをフィルタリングできます。

7.2.7. アベイラビリティーゾーンの使用

クラスターのアベイラビリティーゾーンに関する情報を収集するように FlowCollector を設定できます。この設定により、ノードに適用される topology.kubernetes.io/zone ラベル値を使用してネットワークフローデータをエンリッチできます。

手順

  1. Web コンソールで、Operators Installed Operators に移動します。
  2. NetObserv OperatorProvided APIs 見出しの下で、Flow Collector を選択します。
  3. cluster を選択し、YAML タブを選択します。
  4. FlowCollector カスタムリソースを設定し、spec.processor.addZone パラメーターを true に設定します。設定例は次のとおりです。

    アベイラビリティーゾーン収集用に FlowCollector を設定する

    apiVersion: flows.netobserv.io/v1beta2
    kind: FlowCollector
    metadata:
      name: cluster
    spec:
    # ...
     processor:
       addZone: true
    # ...

検証

Network Traffic ページを更新すると、OverviewTraffic FlowTopology ビューにアベイラビリティーゾーンに関する新しい情報が表示されます。

  1. Overview タブに、使用可能な Scope として Zones が表示されます。
  2. Network Traffic Traffic flows の SrcK8S_Zone フィールドと DstK8S_Zone フィールドに Zones が表示されます。
  3. Topology ビューで、Scope または Group として Zones を設定できます。

7.2.8. グローバルルールを使用した eBPF フローデータのフィルタリング

FlowCollector を設定して、グローバルルールを使用して eBPF フローをフィルタリングし、eBPF フローテーブルにキャッシュされるパケットのフローを制御できます。

手順

  1. Web コンソールで、Operators Installed Operators に移動します。
  2. Network ObservabilityProvided APIs という見出しの下で、Flow Collector を選択します。
  3. cluster を選択し、YAML タブを選択します。
  4. 次のサンプル設定と同じように FlowCollector カスタムリソースを設定します。

    例7.1 特定の Pod IP エンドポイントへの Kubernetes サービストラフィックをフィルタリングする

    apiVersion: flows.netobserv.io/v1beta2
    kind: FlowCollector
    metadata:
      name: cluster
    spec:
      namespace: netobserv
      deploymentModel: Direct
      agent:
        type: eBPF
        ebpf:
          flowFilter:
            action: Accept  1
            cidr: 172.210.150.1/24 2
            protocol: SCTP
            direction: Ingress
            destPortRange: 80-100
            peerIP: 10.10.10.10
            enable: true    3
    1
    必須の action パラメーターは、フローフィルタールールに対して実行されるアクションを示します。可能な値は Accept または Reject です。
    2
    必須の cidr パラメーターは、フローフィルタールールの IP アドレスと CIDR マスクを指定します。IPv4 および IPv6 アドレス形式をサポートしています。すべての IP アドレスと照合する場合、IPv4 の場合は 0.0.0.0/0、IPv6 の場合は ::/0 を使用できます。
    3
    この機能を有効にするには、spec.agent.ebpf.flowFilter.enabletrue に設定する必要があります。

    例7.2 クラスター外のアドレスへのフローを確認する

    apiVersion: flows.netobserv.io/v1beta2
    kind: FlowCollector
    metadata:
      name: cluster
    spec:
      namespace: netobserv
      deploymentModel: Direct
      agent:
        type: eBPF
        ebpf:
          flowFilter:
            action: Accept  1
            cidr: 0.0.0.0/0 2
            protocol: TCP
            direction: Egress
            sourcePort: 100
            peerIP: 192.168.127.12 3
            enable: true    4
    1
    flowFilter 仕様の基準に基づいてフローを Accept (受け入れる) ことができます。
    2
    cidr0.0.0.0/0 は、すべての IP アドレスと一致します。
    3
    peerIP192.168.127.12 に設定した上でフローを確認します。
    4
    この機能を有効にするには、spec.agent.ebpf.flowFilter.enabletrue に設定する必要があります。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.