$ oc get flowcollector/cluster
网络可观测性是一个 OpenShift 操作符,它部署一个监控管道来收集和丰富由网络可观测性 eBPF 代理生成的网络流量。
网络可观测性操作符提供 Flow Collector API。创建 Flow Collector 资源后,它将部署 Pod 和服务以在 Loki 日志存储中创建和存储网络流,以及在 OpenShift Container Platform Web 控制台中显示仪表板、指标和流。
运行以下命令以查看FlowCollector
的状态
$ oc get flowcollector/cluster
NAME AGENT SAMPLING (EBPF) DEPLOYMENT MODEL STATUS cluster EBPF 50 DIRECT Ready
通过输入以下命令来检查在netobserv
命名空间中运行的 Pod 的状态
$ oc get pods -n netobserv
NAME READY STATUS RESTARTS AGE flowlogs-pipeline-56hbp 1/1 Running 0 147m flowlogs-pipeline-9plvv 1/1 Running 0 147m flowlogs-pipeline-h5gkb 1/1 Running 0 147m flowlogs-pipeline-hh6kf 1/1 Running 0 147m flowlogs-pipeline-w7vv5 1/1 Running 0 147m netobserv-plugin-cdd7dc6c-j8ggp 1/1 Running 0 147m
flowlogs-pipeline
Pod 收集流,丰富收集的流,然后将流发送到 Loki 存储。netobserv-plugin
Pod 为 OpenShift Container Platform 控制台创建一个可视化插件。
通过输入以下命令来检查在netobserv-privileged
命名空间中运行的 Pod 的状态
$ oc get pods -n netobserv-privileged
NAME READY STATUS RESTARTS AGE netobserv-ebpf-agent-4lpp6 1/1 Running 0 151m netobserv-ebpf-agent-6gbrk 1/1 Running 0 151m netobserv-ebpf-agent-klpl9 1/1 Running 0 151m netobserv-ebpf-agent-vrcnf 1/1 Running 0 151m netobserv-ebpf-agent-xf5jh 1/1 Running 0 151m
netobserv-ebpf-agent
Pod 监控节点的网络接口以获取流并将它们发送到flowlogs-pipeline
Pod。
如果您使用的是 Loki Operator,请通过输入以下命令来检查在openshift-operators-redhat
命名空间中运行的 Pod 的状态
$ oc get pods -n openshift-operators-redhat
NAME READY STATUS RESTARTS AGE loki-operator-controller-manager-5f6cff4f9d-jq25h 2/2 Running 0 18h lokistack-compactor-0 1/1 Running 0 18h lokistack-distributor-654f87c5bc-qhkhv 1/1 Running 0 18h lokistack-distributor-654f87c5bc-skxgm 1/1 Running 0 18h lokistack-gateway-796dc6ff7-c54gz 2/2 Running 0 18h lokistack-index-gateway-0 1/1 Running 0 18h lokistack-index-gateway-1 1/1 Running 0 18h lokistack-ingester-0 1/1 Running 0 18h lokistack-ingester-1 1/1 Running 0 18h lokistack-ingester-2 1/1 Running 0 18h lokistack-querier-66747dc666-6vh5x 1/1 Running 0 18h lokistack-querier-66747dc666-cjr45 1/1 Running 0 18h lokistack-querier-66747dc666-xh8rq 1/1 Running 0 18h lokistack-query-frontend-85c6db4fbd-b2xfb 1/1 Running 0 18h lokistack-query-frontend-85c6db4fbd-jm94f 1/1 Running 0 18h
网络可观测性操作符提供FlowCollector
API,该 API 在安装时实例化并配置为协调eBPF 代理
、flowlogs-pipeline
和netobserv-plugin
组件。每个集群只支持单个FlowCollector
。
eBPF 代理
在每个集群节点上以某些权限运行以收集网络流。flowlogs-pipeline
接收网络流数据并使用 Kubernetes 标识符丰富数据。如果您选择使用 Loki,flowlogs-pipeline
将流日志数据发送到 Loki 进行存储和索引。netobserv-plugin
是一个动态的 OpenShift Container Platform Web 控制台插件,它查询 Loki 以获取网络流数据。集群管理员可以在 Web 控制台中查看数据。
如果您不使用 Loki,则可以使用 Prometheus 生成指标。这些指标及其相关的仪表板可在 Web 控制台中访问。有关更多信息,请参见“无 Loki 的网络可观测性”。
如果您使用的是 Kafka 选项,则 eBPF 代理会将网络流数据发送到 Kafka,flowlogs-pipeline
会在发送到 Loki 之前从 Kafka 主题读取数据,如下图所示。