【发布时间】:2014-09-24 00:49:11
【问题描述】:
我有一个基本的 Logstash -> Elasticsearch 设置,事实证明在 logstash 过滤器完成其工作后不需要“消息”字段 - 将此原始消息字段存储到 elasticsearch 只会将不必要的数据添加到存储 imo。
我可以安全地删除这个字段吗?它会给 ES 带来什么麻烦吗?欢迎建议或阅读,谢谢。
【问题讨论】:
我有一个基本的 Logstash -> Elasticsearch 设置,事实证明在 logstash 过滤器完成其工作后不需要“消息”字段 - 将此原始消息字段存储到 elasticsearch 只会将不必要的数据添加到存储 imo。
我可以安全地删除这个字段吗?它会给 ES 带来什么麻烦吗?欢迎建议或阅读,谢谢。
【问题讨论】:
不会,不会给 ES 带来任何麻烦。如果 message 字段是多余的或未使用的,您可以删除它。
您可以将此filter 添加到过滤器的末尾。
mutate
{
remove_field => [ "message" ]
}
【讨论】:
您也可以在 json 过滤器中执行此操作。
filter {
json {
source => "message"
remove_field => ["message"]
}
}
【讨论】:
我会在 Ben Lim 的答案中添加以下内容作为评论,但我不知道如何在评论中添加代码块,甚至不知道这是否可能......
如果您可以使用不创建message 字段的输入和编解码器组合,则无需将其删除。
例如,以下输入和编解码器的组合(基于 TCP 的 JSON 行)不会创建 message 字段:
input {
tcp {
port => 5044
codec => json_lines
}
}
output {
elasticsearch {
hosts => ["localhost"]
document_type => "mytype"
index => "myindex"
}
}
【讨论】: