elasticsearch 我可以从日志存储中删除消息字段吗?,elasticsearch,logstash,elasticsearch,Logstash" /> elasticsearch 我可以从日志存储中删除消息字段吗?,elasticsearch,logstash,elasticsearch,Logstash" />

elasticsearch 我可以从日志存储中删除消息字段吗?

elasticsearch 我可以从日志存储中删除消息字段吗?,elasticsearch,logstash,elasticsearch,Logstash,我有一个基本的Logstash->Elasticsearch设置,在Logstash过滤器完成其工作后,“message”字段不是必需的-将此原始消息字段存储到Elasticsearch只会向存储添加不必要的数据 我可以安全地删除此字段吗?它会给ES带来任何麻烦吗?欢迎提供建议或阅读,谢谢大家。不,这不会给专家们带来任何麻烦。如果消息字段是多余或未使用的,则可以删除该字段 您可以将其添加到过滤器的末尾 mutate { remove_field => [ "message" ]

我有一个基本的Logstash->Elasticsearch设置,在Logstash过滤器完成其工作后,“message”字段不是必需的-将此原始消息字段存储到Elasticsearch只会向存储添加不必要的数据


我可以安全地删除此字段吗?它会给ES带来任何麻烦吗?欢迎提供建议或阅读,谢谢大家。

不,这不会给专家们带来任何麻烦。如果
消息
字段是多余或未使用的,则可以删除该字段

您可以将其添加到过滤器的末尾

mutate
{
     remove_field => [ "message" ]
}

您也可以在
json
过滤器中执行此操作

filter {
  json {
    source => "message"
    remove_field => ["message"]
  }
}

我本想在Ben Lim的回答中添加以下内容作为注释,但我不知道如何在注释中添加代码块,甚至不知道这是否可行

如果可以使用不创建
消息
字段的输入和编解码器组合,则无需删除它

例如,以下输入和编解码器组合(TCP上的JSON行)不会创建
消息
字段:

input {
  tcp {
    port => 5044
    codec => json_lines
  }
}
output {
  elasticsearch {
    hosts => ["localhost"]
    document_type => "mytype"
    index => "myindex"
  }
}

ProTip:大多数过滤器(如grok)也允许删除字段选项,并且只有在过滤器没有遇到错误时才会删除字段。这比使用额外的变异过滤器更安全、更容易。这一个正在破坏我的卡夫卡输出,只有删除字段部分,不确定原因:(