首页 > 解决方案 > 从filebeat发送json消息到logstash

问题描述

我想通过 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" }

标签: logstashfilebeat

解决方案


您的问题与多行无关。我认为我们需要更多上下文,但是您应该查看 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 {
[...]
}

推荐阅读