Ore*_*ren 8 kubernetes kubernetes-namespace fluent-bit
有没有办法排除某些命名空间fluent-bit?我想排除某些命名空间,因此fluent-bit不会将在这些命名空间中创建的所有日志转发到 ELK。
除了为该命名空间中的每个 pod 添加注释之外,还有其他方法吗?我知道您可以通过 kubectl 更新命名空间中的所有 pod 注释。
kubectl annotate pods --namespace=pks-system --all fluentbit.io/exclude='true'
iam*_*hek 12
我认为以下输入插件配置可以做到这一点:
[INPUT]
Name tail
Path /var/log/containers/*.log
Exclude_Path /var/log/containers/*_<myappnamespace>_*.log,/var/log/containers/*_<myappnamespace2>_*.log
Tag kube.infra.<namespace_name>.<pod_name>.<container_name>
Tag_Regex (?<pod_name>[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*)_(?<namespace_name>[^_]+)_(?<container_name>.+)-
Parser cri
DB /var/log/flb_kube_infra.db
Mem_Buf_Limit 500KB
Skip_Long_Lines On
Refresh_Interval 10
Run Code Online (Sandbox Code Playgroud)
在这里找到它:https://github.com/ Fluent/fluence-bit /issues/758
该Exclude_Path属性定义将忽略日志的命名空间的名称。对于多个日志,请使用逗号分隔
您已经通过三个过滤器的组合实现了名称空间排除kubernetes,nest并且grep
[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 Off
Merge_Log_Key log_processed
K8S-Logging.Parser On
K8S-Logging.Exclude On
[FILTER]
Name nest
Match *
Wildcard pod_name
Operation lift
Nested_under kubernetes
Add_prefix kubernetes_
[FILTER]
Name grep
Match kube.*
Exclude kubernetes_namespace_name kube-system
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7503 次 |
| 最近记录: |