elasticsearch - 将 Logstash 配置为仅包含某些字段

标签 elasticsearch logstash

使用 filtermutateremove_field,Logstash 可以配置为从输出中排除某些字段。

但是,如果只知道要包含的字段的名称,而想排除所有其他字段(事先不知道的名称)怎么办?这是怎么做到的?

谢谢

最佳答案

您可以使用 ruby filter :

filter {
  ruby {
    code => "
      wanted_fields = ['message', 'foo']
      event.to_hash.keys.each { |k|
        event.remove(k) unless wanted_fields.include? k
      }
    "
  }
}

相关:

关于elasticsearch - 将 Logstash 配置为仅包含某些字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30342882/

相关文章:

elasticsearch - 发送到Elasticsearch之前,向字段添加额外的值

java - 如何将桶排序添加到查询聚合

elasticsearch - 存储桶中的弹性脚本和更高级别的聚合

elasticsearch - logstash 制表符分隔符不转义

elasticsearch - 是否可以在Logstash中仅索引匹配的grok日志行?

redis - 同一个 Docker 容器上的两个 Logstash 实例

java - 向 Log4j 2 事件添加属性

amazon-web-services - 基于位置的AWS AppSync事件订阅

elasticsearch - 围绕 Elasticsearch 或Solr编写包装是个好主意吗

elasticsearch - Elasticsearch首先使用部分匹配查询进行搜索