我有一个基本的Logstash - > Elasticsearch设置,事实证明logstash过滤器完成工作后不需要'message'字段 - 将这个原始消息字段存储到elasticsearch只会将不必要的数据添加到存储imo。我可以从Logstash中删除消息字段吗?
我可以安全地删除这个字段,它会给ES带来什么麻烦吗?建议或阅读欢迎,谢谢大家。
我有一个基本的Logstash - > Elasticsearch设置,事实证明logstash过滤器完成工作后不需要'message'字段 - 将这个原始消息字段存储到elasticsearch只会将不必要的数据添加到存储imo。我可以从Logstash中删除消息字段吗?
我可以安全地删除这个字段,它会给ES带来什么麻烦吗?建议或阅读欢迎,谢谢大家。
不,它不会给ES带来任何麻烦。如果冗余或未使用,则可以删除message
字段。
您可以将此filter添加到过滤器的末尾。
mutate
{
remove_field => [ "message" ]
}
您还可以在json
过滤器中执行此操作。
filter {
json {
source => "message"
remove_field => ["message"]
}
}
我会增加以下内容作为由本林答案评论,但我不知道如何添加注释代码块,甚至是否可行?
如果您可以使用不会创建message
字段的输入和编解码器组合,则无需将其删除。
例如,以下输入和编解码器(JSON线通过TCP)的组合不创建message
字段:
input {
tcp {
port => 5044
codec => json_lines
}
}
output {
elasticsearch {
hosts => ["localhost"]
document_type => "mytype"
index => "myindex"
}
}
普罗蒂普:大多数过滤器(如神交)还允许remove_field选项,并且将只有在过滤器没有遇到错误时才删除该字段。这比使用额外的mutate过滤器更安全和简单。 – 2017-05-11 05:58:09