12.2. 使用 Network Observability CLI


您可以在终端中直接视觉化和过滤流和数据包数据,以查看特定使用情况,例如识别谁正在使用特定端口。Network Observability CLI 将流作为 JSON 和数据库文件或数据包作为 PCAP 文件来收集,该文件可用于第三方工具。

12.2.1. 捕获流

您可以捕获数据中的任何资源或区域的流程和过滤,以解决两个区域之间的 Round-Trip Time (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. 使用 PageUpPageDown 键在 NoneResourceZoneHostOwnerall 之间切换。
  4. 要停止捕获,按 Ctrl+C。捕获的数据被写入两个单独的文件,位于用于安装 CLI 的同一路径中的 ./output 目录中。
  5. ./output/flow/<capture_date_time>.json 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. 使用 PageUpPageDown 键在 NoneResourceZoneHostOwnerall 之间切换。
  4. 要停止捕获,按 Ctrl+C
  5. 查看捕获的数据,这些数据被写入一个文件中,该文件位于用于安装 CLI 的同一路径中的 ./output/pcap 目录中:

    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

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.