7.5. 在 ingestion 处过滤网络流


您可以创建过滤器来减少生成的网络流数量。过滤网络流可减少 Network Observability 组件的资源使用情况。

您可以配置两种类型的过滤器:

  • eBPF 代理过滤器
  • flowlogs-pipeline 过滤器

7.5.1. eBPF 代理过滤器

eBPF 代理过滤可提高性能,因为它们在网络流集合过程的最早阶段生效。

要使用 Network Observability Operator 配置 eBPF 代理过滤器,请参阅 "Filtering eBPF flow data using multiple rules"。

7.5.2. flowlogs-pipeline 过滤器

flowlogs-pipeline 过滤器提供对流量选择的更多控制,因为它们在网络流集合过程中生效。它们主要用于改进数据存储。

flowlogs-pipeline 过滤器使用简单的查询语言来过滤网络流,如下例所示:

(srcnamespace="netobserv" OR (srcnamespace="ingress" AND dstnamespace="netobserv")) AND srckind!="service"
Copy to Clipboard Toggle word wrap

查询语言使用以下语法:

Expand
表 7.1. 查询语言语法
类别Operator

逻辑布尔值运算符(不区分大小写)

and, or

比较运算符

= (等于),
!= (不等于),
=~ (匹配正则表达式),
!~ (不匹配正则表达式),
< / <= (小于或等于),
> / >= (大于或等于)

Unary 操作

with(field) (field 存在),
without(field) (field 不存在)

您可以在 FlowCollector 资源的 spec.processor.filters 部分中配置 flowlogs-pipeline 过滤器。例如:

YAML Flowlogs-pipeline 过滤器示例

apiVersion: flows.netobserv.io/v1beta2
kind: FlowCollector
metadata:
  name: cluster
spec:
  namespace: netobserv
  agent:
  processor:
    filters:
      - query: |
          (SrcK8S_Namespace="netobserv" OR (SrcK8S_Namespace="openshift-ingress" AND DstK8S_Namespace="netobserv"))
        outputTarget: Loki  
1

        sampling: 10  
2
Copy to Clipboard Toggle word wrap

1
将匹配流发送到特定的输出,如 Loki、Prometheus 或外部系统。省略时,发送到所有配置的输出。
2
可选。应用抽样比率,以限制要存储或导出的匹配流数量。例如,sampling: 10 表示流的 1/10 会被保留。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat