28.11. Network Observability 故障排除
为了协助对 Network Observability 问题进行故障排除,可以执行一些故障排除操作。
28.11.1. 使用 must-gather 工具
您可以使用 must-gather 工具来收集有关 Network Observability Operator 资源和集群范围资源的信息,如 pod 日志、FlowCollector
和 Webhook
配置。
流程
- 进入到要存储 must-gather 数据的目录。
运行以下命令来收集集群范围的 must-gather 资源:
$ oc adm must-gather --image-stream=openshift/must-gather \ --image=quay.io/netobserv/must-gather
28.11.2. 在 OpenShift Container Platform 控制台中配置网络流量菜单条目
当网络流量菜单条目没有在 OpenShift Container Platform 控制台的 Observe 菜单中列出时,在 OpenShift Container Platform 控制台中手动配置网络流量菜单条目。
先决条件
- 已安装 OpenShift Container Platform 版本 4.10 或更高版本。
流程
运行以下命令,检查
spec.consolePlugin.register
字段是否已设置为true
:$ oc -n netobserv get flowcollector cluster -o yaml
输出示例
apiVersion: flows.netobserv.io/v1alpha1 kind: FlowCollector metadata: name: cluster spec: consolePlugin: register: false
可选:通过手动编辑 Console Operator 配置来添加
netobserv-plugin
插件:$ oc edit console.operator.openshift.io cluster
输出示例
... spec: plugins: - netobserv-plugin ...
可选:运行以下命令,将
spec.consolePlugin.register
字段设置为true
:$ oc -n netobserv edit flowcollector cluster -o yaml
输出示例
apiVersion: flows.netobserv.io/v1alpha1 kind: FlowCollector metadata: name: cluster spec: consolePlugin: register: true
运行以下命令,确保控制台 pod 的状态为
running
:$ oc get pods -n openshift-console -l app=console
运行以下命令重启控制台 pod:
$ oc delete pods -n openshift-console -l app=console
- 清除浏览器缓存和历史记录。
运行以下命令,检查 Network Observability 插件 pod 的状态:
$ oc get pods -n netobserv -l app=netobserv-plugin
输出示例
NAME READY STATUS RESTARTS AGE netobserv-plugin-68c7bbb9bb-b69q6 1/1 Running 0 21s
运行以下命令,检查 Network Observability 插件 pod 的日志:
$ oc logs -n netobserv -l app=netobserv-plugin
输出示例
time="2022-12-13T12:06:49Z" level=info msg="Starting netobserv-console-plugin [build version: , build date: 2022-10-21 15:15] at log level info" module=main time="2022-12-13T12:06:49Z" level=info msg="listening on https://:9001" module=server
28.11.3. 安装 Kafka 后 Flowlogs-Pipeline 不会消耗网络流
如果您首先使用 deploymentModel: KAFKA
部署了流收集器,然后部署 Kafka,则流收集器可能无法正确连接到 Kafka。手动重启 flow-pipeline pod,其中 Flowlogs-pipeline 不使用 Kafka 中的网络流。
流程
运行以下命令,删除 flow-pipeline pod 来重启它们:
$ oc delete pods -n netobserv -l app=flowlogs-pipeline-transformer
28.11.4. 无法从 br-int
和 br-ex
接口查看网络流
br-ex' 和 br-int
是 OSI 第 2 层操作的虚拟网桥设备。eBPF 代理分别在 IP 和 TCP 级别(第 3 和 4 层)中工作。当网络流量由物理主机或虚拟 pod 接口处理时,您可以预期 eBPF 代理捕获通过 br-ex
和 br-int
的网络流量。如果您限制 eBPF 代理网络接口只附加到 br-ex
和 br-int
,则不会看到任何网络流。
手动删除限制网络接口到 br-int
和 br-ex
的 interfaces
或 excludeInterfaces
中的部分。
流程
删除
interfaces: [ 'br-int', 'br-ex' ]
字段。这允许代理从所有接口获取信息。或者,您可以指定 Layer-3 接口,例如eth0
。运行以下命令:$ oc edit -n netobserv flowcollector.yaml -o yaml
输出示例
apiVersion: flows.netobserv.io/v1alpha1 kind: FlowCollector metadata: name: cluster spec: agent: type: EBPF ebpf: interfaces: [ 'br-int', 'br-ex' ] 1
- 1
- 指定网络接口。
28.11.5. Network Observability 控制器管理器 pod 内存不足
您可以通过修补 Cluster Service Version (CSV) 来增加 Network Observability Operator 的内存限值,其中 Network Observability 控制器管理器 pod 内存不足。
流程
运行以下命令来修补 CSV:
$ oc -n netobserv patch csv network-observability-operator.v1.0.0 --type='json' -p='[{"op": "replace", "path":"/spec/install/spec/deployments/0/spec/template/spec/containers/0/resources/limits/memory", value: "1Gi"}]'
输出示例
clusterserviceversion.operators.coreos.com/network-observability-operator.v1.0.0 patched
运行以下命令来查看更新的 CSV:
$ oc -n netobserv get csv network-observability-operator.v1.0.0 -o jsonpath='{.spec.install.spec.deployments[0].spec.template.spec.containers[0].resources.limits.memory}' 1Gi