Flow 和 ClusterFlow
配置
v2.5.8+
v2.5.8 的变化
现在可以通过在 Rancher 用户界面上填写表格来配置Flows
和 ClusterFlows
。
Flows
Flow
定义了要收集和过滤哪些日志,以及将日志发送到哪个输出。
Flow
是一个命名空间的资源,这意味着日志将只从Flow
部署的命名空间中收集。
关于Flow
自定义资源的更多细节,请参阅FlowSpec。
Matches
匹配语句是用来选择哪些容器来提取日志的。
你可以根据 Kubernetes 标签、容器和主机名称指定匹配语句来选择或排除日志。匹配语句按照它们被定义的顺序进行评估,只处理到第一个匹配的选择或排除规则适用为止。
匹配语句可以通过填写 Rancher UI 中的Flow
或ClusterFlow
表格进行配置。
关于使用匹配语句的详细例子,请参阅关于日志路由的官方文档。
Filters
你可以在一个Flow
中定义一个或多个过滤器。过滤器可以对日志进行各种操作,例如,添加额外的数据,转换日志,或解析记录中的值。流程中的过滤器是按照定义的顺序应用的。
关于 Banzai Cloud Logging 操作者支持的过滤器列表,见本页。
过滤器需要在 YAML 中进行配置。
Outputs
Output
将从Flow
中接收日志。因为Flow
是一个命名空间的资源,Output
必须与Flow
驻留在同一个命名空间。
Outputs
可以在 Rancher UI 中填写Flow
或ClusterFlow
表格时被引用。
ClusterFlows
Matches、Filters 和 Outputs 是为ClusterFlow
配置的,与为流量
配置的方式相同。关键的区别是,ClusterFlow
是在集群级别的范围内,可以配置所有命名空间的日志收集。
在ClusterFlow
选择集群中所有命名空间的日志后,集群的日志将被收集并记录到选定的ClusterOutput
。
Rancher v2.5.8 之前
Flows
Flow
定义了要收集和过滤的日志,以及要将日志发送到哪个Output
。Flow
是一个命名空间的资源,这意味着日志将只从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
Copy