×

网络可观测性是一个 OpenShift 操作符,它部署一个监控管道来收集和丰富由网络可观测性 eBPF 代理生成的网络流量。

查看状态

网络可观测性操作符提供 Flow Collector API。创建 Flow Collector 资源后,它将部署 Pod 和服务以在 Loki 日志存储中创建和存储网络流,以及在 OpenShift Container Platform Web 控制台中显示仪表板、指标和流。

步骤
  1. 运行以下命令以查看FlowCollector的状态

    $ oc get flowcollector/cluster
    示例输出
    NAME      AGENT   SAMPLING (EBPF)   DEPLOYMENT MODEL   STATUS
    cluster   EBPF    50                DIRECT             Ready
  2. 通过输入以下命令来检查在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 控制台创建一个可视化插件。

  1. 通过输入以下命令来检查在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。

  1. 如果您使用的是 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-pipelinenetobserv-plugin组件。每个集群只支持单个FlowCollector

eBPF 代理在每个集群节点上以某些权限运行以收集网络流。flowlogs-pipeline接收网络流数据并使用 Kubernetes 标识符丰富数据。如果您选择使用 Loki,flowlogs-pipeline将流日志数据发送到 Loki 进行存储和索引。netobserv-plugin是一个动态的 OpenShift Container Platform Web 控制台插件,它查询 Loki 以获取网络流数据。集群管理员可以在 Web 控制台中查看数据。

如果您不使用 Loki,则可以使用 Prometheus 生成指标。这些指标及其相关的仪表板可在 Web 控制台中访问。有关更多信息,请参见“无 Loki 的网络可观测性”。

Network Observability eBPF export architecture

如果您使用的是 Kafka 选项,则 eBPF 代理会将网络流数据发送到 Kafka,flowlogs-pipeline会在发送到 Loki 之前从 Kafka 主题读取数据,如下图所示。

Network Observability using Kafka

查看网络可观测性操作符状态和配置

您可以使用oc describe命令检查状态并查看FlowCollector的详细信息。

步骤
  1. 运行以下命令以查看网络可观测性操作符的状态和配置

    $ oc describe flowcollector/cluster