我想通过filebeat将json格式的消息发送到logstash。
我可以通过在filebeat中编写以下内容来过滤json中的每个键值:
json.keys_under_root: true
json.add_error_key: true
json.message_key: message
但是,无法处理多行。我怎样才能获得多线?
而且,我可以删除默认添加到filebeat的字段吗?我想从filebeat中删除元数据。我只想收到我从logstash发送的信息。就像在文件中一样。有没有办法?
{"1": "val1" ,"2": "val2" ,"3": "val3\nval3\nval3" }
你的问题不是关于多线的。我认为我们需要更多的上下文,但是你应该看一下json过滤器插件文档:https://www.elastic.co/guide/en/logstash/current/plugins-filters-json.html
您的logstash管道应如下所示:
input {
beats {
port => 'xxxx'
}
}
filter {
json {
source => "message"
}
mutate {
# put the terms you want to exclude from your metadata on the "remove_field" array
remove_field => ["beat","input","prospector","offset"]
}
}
output {
[...]
}