我正在Kubernetes集群中使用elasticserach 6.8和filebeat 6.8.0。我希望filebeat忽略某些容器日志,但这似乎几乎是不可能的:)。
这是我的自动发现配置
filebeat.autodiscover:
providers:
- type: kubernetes
hints.enabled: true
templates:
- condition:
contains:
kubernetes.namespace: bagmessage
config:
- type: docker
containers.ids:
- "${data.kubernetes.container.id}"
processors:
- drop_event:
when:
or:
- contains:
kubernetes.container.name: "filebeat"
- contains:
kubernetes.container.name: "weave-npc"
- contains:
kubernetes.container.name: "bag-fluentd-es"
- contains:
kubernetes.container.name: "logstash"
- contains:
kubernetes.container.name: "billing"
我已经尝试了此配置的许多变体,但filebeats仍在处理我希望它忽略的容器日志。
我想知道我想做的事是否可能,如果可以,我在做什么错了?
谢谢
答案 0 :(得分:0)
我在配置中看到的第一个错误是condition
中template
部分的缩进。应该是:
- type: kubernetes
hints.enabled: true
templates:
- condition:
contains:
kubernetes.namespace: bagmessage
第二,我不确定kubernetes.*
对配置内的处理器是否可见type: docker
。您可以尝试引用docker.container.name
。或者,您也可以将所有k8s的特定条件移至condition
下的templates
部分:
filebeat.autodiscover:
providers:
- type: kubernetes
hints.enabled: true
templates:
- condition:
and:
- contains.kubernetes.namespace: bagmessage
- contains.container.name: billing
config:
...
此外,请确保“ container.name”(而不是“ pod.name”)确实是您想要的。
答案 1 :(得分:0)
似乎现在可以工作。我不确定是什么问题。