elasticsearch 如果日志包含特定字段,如何约束Filebeat仅将日志发送给ELK?,elasticsearch,kubernetes,elastic-stack,filebeat,elasticsearch,Kubernetes,Elastic Stack,Filebeat" /> elasticsearch 如果日志包含特定字段,如何约束Filebeat仅将日志发送给ELK?,elasticsearch,kubernetes,elastic-stack,filebeat,elasticsearch,Kubernetes,Elastic Stack,Filebeat" />

elasticsearch 如果日志包含特定字段,如何约束Filebeat仅将日志发送给ELK?

elasticsearch 如果日志包含特定字段,如何约束Filebeat仅将日志发送给ELK?,elasticsearch,kubernetes,elastic-stack,filebeat,elasticsearch,Kubernetes,Elastic Stack,Filebeat,我试图使用Filebeat从Kubernetes节点收集日志,并且仅当日志来自特定的Kubernetes命名空间时才将它们发送给ELK 到目前为止,我发现您可以定义处理器,我认为它可以实现这一点。然而,无论我做什么,我都无法限制已装运的日志。这个看起来对吗 嗯,这看起来对吗 filebeat.config: inputs: path: ${path.config}/inputs.d/*.yml reload.enabled: true reload.period: 1

我试图使用Filebeat从Kubernetes节点收集日志,并且仅当日志来自特定的Kubernetes命名空间时才将它们发送给ELK

到目前为止,我发现您可以定义处理器,我认为它可以实现这一点。然而,无论我做什么,我都无法限制已装运的日志。这个看起来对吗

嗯,这看起来对吗

filebeat.config:
  inputs:
    path: ${path.config}/inputs.d/*.yml
    reload.enabled: true
    reload.period: 10s
    when.contains:
      kubernetes.namespace: "NAMESPACE"
  modules:
    path: ${path.config}/modules.d/*.yml
    reload.enabled: false
  processors:
    - add_kubernetes_metadata:
      namespace: "NAMESPACE"
xpack.monitoring.enabled: true
output.elasticsearch:
  hosts: ['elasticsearch:9200']
尽管有这种配置,我仍然从所有名称空间获取日志


Filebeat作为Kubernetes上的守护程序运行。下面是一个扩展日志条目的示例:

您可以使用数字选项来执行此操作:

  • :
  • 然后将事件测试为:

  • :

  • 您有许多选项可供选择:

  • :
  • 然后将事件测试为:

  • :

  • 最后,我通过将drop处理器从配置文件移动到输入配置文件来解决这个问题

    最后,我解决了这个问题,将drop处理器从配置文件移动到输入配置文件

    你检查过滴滤器了吗?不,但这是个好主意。我会指定一个正则表达式,当它们与特定的名称空间不匹配时,它会说drop all events(删除所有事件)?这是如何构造的?你检查过滴滤器了吗?不,但这是个好主意。我会指定一个正则表达式,当它们与特定的名称空间不匹配时,它会说drop all events(删除所有事件)?这将如何组织?谢谢你的回复。我已经尝试了您列出的第一个选项的许多变体。最后,我通过将drop处理器从配置文件移到输入配置文件解决了这个问题。感谢您的回复。我已经尝试了您列出的第一个选项的许多变体。最后,我通过将drop处理器从配置文件移动到输入配置文件来解决这个问题。
    processors:
     - drop_event:
         when:
            contains:
               source: "field"
    
    output.elasticsearch:
      hosts: ["localhost:9200"]
      pipeline: my_pipeline_id
    
    {
      "drop": {
        "if" : "ctx['field'] == null "
      }
    }
    
    filter {
      if ![field] {
        drop { }
      }
    }