某些命名空间的 Filebeat kubernetes 发现
Filebeat kubernetes discovery for certain namespaces
我正在尝试限制我的 filebeat daemonset 仅从特定命名空间收集日志。
根据official autodiscovery documentation,我可以定义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: '*'
经过一些阅读,您似乎可以通过 Hints based autodiscover:
实现您的目标
提示系统在 Kubernetes Pod 注释或具有前缀 co.elastic.logs
的 Docker 标签中查找提示。一旦容器启动,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'
我正在尝试限制我的 filebeat daemonset 仅从特定命名空间收集日志。
根据official autodiscovery documentation,我可以定义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: '*'
经过一些阅读,您似乎可以通过 Hints based autodiscover:
实现您的目标提示系统在 Kubernetes Pod 注释或具有前缀 co.elastic.logs
的 Docker 标签中查找提示。一旦容器启动,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'