本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。

流和集群流

请参阅 日志操作员文档以获取有关如何配置`Flows`和`ClusterFlows`的完整详细信息。

请参阅与日志服务的Rancher集成:故障排除以了解如何解决日志缓冲区的内存问题。

流程

一个`Flow`定义了要收集和过滤哪些日志,以及将日志发送到哪个输出。

`Flow`是一个名称空间资源,这意味着日志只会从`Flow`部署的名称空间中收集。

`Flows`可以通过在Rancher UI中填写表单来配置。

有关`Flow`自定义资源的更多详细信息,请参见 FlowSpec.

匹配

匹配语句用于选择要从中提取日志的容器。

您可以指定匹配语句,根据Kubernetes标签、容器和主机名选择或排除日志。匹配语句按定义的顺序进行评估,并仅在第一个匹配的选择或排除规则适用时进行处理。

可以通过在Rancher UI中填写`Flow`或`ClusterFlow`表单来配置匹配。

有关使用匹配语句的详细示例,请参见 关于日志路由的官方文档。

过滤器

您可以在`Flow`中定义一个或多个过滤器。过滤器可以对日志执行各种操作,例如添加数据、转换日志或从记录中解析值。在`Flow`中的过滤器按其在定义中出现的顺序应用。

有关日志操作员支持的过滤器列表,请参见 关于Fluentd过滤器的官方文档

过滤器需要以YAML格式进行配置。

输出

此`Output`将接收来自`Flow`的日志。由于`Flow`是一个名称空间资源,因此`Output`必须与`Flow`位于同一名称空间中。

Outputs`在 Rancher UI 中填写 `FlowClusterFlow 表单时,可以引用。

ClusterFlows

匹配、过滤器和 Outputs 的配置方式与 ClusterFlowsFlows 的配置方式相同。主要区别在于 ClusterFlow 的作用范围是集群级别,可以在所有名称空间中配置日志收集。

`ClusterFlows`可以通过在Rancher UI中填写表单来配置。

ClusterFlow 从集群中的所有名称空间选择日志后,集群的日志将被收集并记录到所选的 ClusterOutput 中。

YAML 示例

以下示例 Flow 将默认名称空间中的日志消息转换并发送到 S3 Output

apiVersion: logging.banzaicloud.io/v1beta1
kind: Flow
metadata:
  name: flow-sample
  namespace: default
spec:
  filters:
    - parser:
        remove_key_name_field: true
        parse:
          type: nginx
    - tag_normaliser:
        format: ${namespace_name}.${pod_name}.${container_name}
  localOutputRefs:
    - s3-output
  match:
    - select:
        labels:
          app: nginx