我正在使用 Fluent Bit (1.3.11) 从在 k8s 上运行的容器收集日志。我想做的是使用 Fluent Bit Modify 过滤器进行一些基本处理(即标准化日志级别名称)。
我添加了两个修改过滤器(见下文)。第一个只是验证修改过滤器是否有效。它检查log
key 是否存在,如果找到则设置属性。这样可行。第二个修改过滤器是我真正想要做的。据说它会将log_processed.Level
值从ERR
to重写,Error
但我无法让它真正起作用。经过一些试验后,我认为没有一个条件取决于任何一个log_processed.*
或kubernetes.*
属性(由 kubernetes 过滤器添加)的过滤器都不起作用。
是否有推荐/可行的方法来修改来自 Kubernetes 的日志?
[FILTER]
Name kubernetes
Match kube.*
Kube_URL https://kubernetes.default.svc:443
Kube_CA_File /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
Kube_Token_File /var/run/secrets/kubernetes.io/serviceaccount/token
Kube_Tag_Prefix kube.var.log.containers.
Merge_Log On
Merge_Log_Key log_processed
K8S-Logging.Parser On
K8S-Logging.Exclude Off
[FILTER]
Name modify
Match kube.*
Condition Key_exists log
Set my.custom.prop modify-filter-applied
[FILTER]
NAME modify
Match kube.*
Condition Key_value_equals log_processed.Level ERR
Set log_processed.Level Error