在ElasticSearch管道内的JSON对象中展开列表中的事件,并将它们作为单独的文档插入到弹性索引中

omtl5h9j  于 2022-10-06  发布在  ElasticSearch
关注(0)|答案(1)|浏览(117)

ElasticSearch领域的Maven您好

我们面临着一个挑战,我们想知道是否有一种方法可以在管道内的JSON对象中展开列表中的事件,并将它们作为单独的文档插入到弹性索引中。

在弹性体内给出以下输入:

{"@timestamp": "2022-06-16T04:06:03.064Z", "message": "{ "name":"name #1", "logEvents":[{"key": "value #1"},{"key": "value #2"}]}"}
{"@timestamp": "2022-06-16T04:06:13.888Z", "message": "{ "name":"name #2", "logEvents":[{"key": "value #3"},{"key": "value #4"}]}"}

我们希望对logEvent列表中的每个事件进行迭代,能够定制数据,并将每个事件作为单独的文档插入到Elastic中。

这是我们希望在传递抛出流水线处理器后得到的输出:

{"@timestamp": "2022-06-16T04:06:21.105Z", "message": "{"name":"name #1", "key": "value #1"}"}
{"@timestamp": "2022-06-16T04:06:27.204Z", "message": "{"name":"name #1", "key": "value #2"}"}
{"@timestamp": "2022-06-16T04:06:31.154Z", "message": "{"name":"name #2", "key": "value #3"}"}
{"@timestamp": "2022-06-16T04:06:36.189Z", "message": "{"name":"name #2", "key": "value #4"}"}

从本质上讲,我们希望在不使用Lambda的情况下在Elastic中实现这一功能。Https://github.com/elastic/elastic-serverless-forwarder/blob/main/docs/README-AWS.md#expanding-events-from-list-in-json-object

这有可能吗?

非常感谢您的帮助和奉献。

roqulrg3

roqulrg31#

Logstash split filter应该适用于您的情况(在对message字段中的JSON消息进行解码之后):

filter {
  json {
    source => "message"        
  }
  split {
    field => "logEvents"
  }
}

相关问题