Skip to main content

Flow 和 ClusterFlow

配置#

v2.5.8+#

v2.5.8 的变化#

现在可以通过在 Rancher 用户界面上填写表格来配置FlowsClusterFlows

Flows#

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

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

关于Flow自定义资源的更多细节,请参阅FlowSpec

Matches#

匹配语句是用来选择哪些容器来提取日志的。

你可以根据 Kubernetes 标签、容器和主机名称指定匹配语句来选择或排除日志。匹配语句按照它们被定义的顺序进行评估,只处理到第一个匹配的选择或排除规则适用为止。

匹配语句可以通过填写 Rancher UI 中的FlowClusterFlow表格进行配置。

关于使用匹配语句的详细例子,请参阅关于日志路由的官方文档

Filters#

你可以在一个Flow中定义一个或多个过滤器。过滤器可以对日志进行各种操作,例如,添加额外的数据,转换日志,或解析记录中的值。流程中的过滤器是按照定义的顺序应用的。

关于 Banzai Cloud Logging 操作者支持的过滤器列表,见本页

过滤器需要在 YAML 中进行配置。

Outputs#

Output将从Flow中接收日志。因为Flow是一个命名空间的资源,Output 必须与Flow驻留在同一个命名空间。

Outputs可以在 Rancher UI 中填写FlowClusterFlow表格时被引用。

ClusterFlows#

Matches、Filters 和 Outputs 是为ClusterFlow配置的,与为流量配置的方式相同。关键的区别是,ClusterFlow是在集群级别的范围内,可以配置所有命名空间的日志收集。

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

Rancher v2.5.8 之前#

Flows#

Flow定义了要收集和过滤的日志,以及要将日志发送到哪个OutputFlow是一个命名空间的资源,这意味着日志将只从Flow部署的命名空间中被收集。

Flow需要在 YAML 中定义。

关于Flow自定义资源的更多细节,见FlowSpec

Matches#

匹配语句是用来选择哪些容器来提取日志的。

你可以根据 Kubernetes 标签、容器和主机名称指定匹配语句来选择或排除日志。匹配语句按照它们被定义的顺序进行评估,只处理到第一个匹配的选择或排除规则适用为止。

关于使用匹配语句的详细例子,请参阅关于日志路由的官方文档

Filters#

你可以在一个Flow中定义一个或多个过滤器。过滤器可以对日志进行各种操作,例如,添加额外的数据,转换日志,或解析记录中的值。流程中的过滤器是按照定义的顺序应用的。

关于 Banzai Cloud Logging 操作者支持的过滤器列表,见本页

过滤器需要在 YAML 中进行配置。

Outputs#

Output将从Flow中接收日志。因为Flow是一个命名空间的资源,Output 必须与Flow驻留在同一个命名空间。

ClusterFlows#

Matches、Filters 和 Outputs 是为ClusterFlow配置的,与为流量配置的方式相同。关键的区别是,ClusterFlow是在集群级别的范围内,可以配置所有命名空间的日志收集。

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

ClusterFlows需要在 YAML 中定义。

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
Last updated on by kingsd041