针对特定命名空间的Filebeat-kubernetes发现



我试图限制我的filebeat守护进程集仅从某些命名空间收集日志。

根据官方的自动发现文档,我可以定义namespace:,但它似乎是单数,而不是复数。

除了几个名称空间之外,是否还有限制名称空间的方法?

我当前的配置如下:

filebeat.autodiscover:
providers:
- type: kubernetes
node: ${NODE_NAME}
namespace: backend
hints.enabled: true
hints.default_config:
type: container
paths:
- /var/log/containers/*-${data.kubernetes.container.id}.log
include_annotations: '*'

经过一番阅读,您可以使用基于提示的自动发现:来实现您的目标

提示系统在Kubernetes Pod注释或Docker标签中查找前缀为co.elastic.logs的提示。一旦容器启动,Filebeat就会检查它是否包含任何提示,并启动相应的配置。提示告诉Filebeat如何获取给定容器的日志。

因此,基本上,您可以在主配置中启用提示:

filebeat.autodiscover:
providers:
- type: kubernetes
hints.enabled: true
add_resource_metadata.namespace.enabled: true
hints.default_config.enabled: false

然后您可以以注释的形式为其提供提示:

annotations:
co.elastic.logs/enabled: 'true'

最新更新