我目前遇到的情况是,logstash从azure事件中心提取JSON数组,我需要将其拆分为多个事件。
我从事件中心获得的日志如下所示:
{"records": [{JSON LOG},{JSON LOG},{JSON LOG},...,{JSON LOG}]}
我试过使用split和json过滤器,但似乎不能让它工作。我基本上想拆分数组,以便logstash将记录中的每个JSON日志作为一个单独的事件发送到弹性,解析为json。
我还需要将各个JSON日志重命名/解析到ECS中,因此目前我认为我需要将记录解析为json,然后将输出解析为json,然后在发送到弹性之前执行一些变异重命名过滤器,除非在logstash中使用弹性索引管道解析到ECS中的JSON更容易。
我当前的筛选器部分是:
filter {
#Split results into individual events
json {
source => "message"
}
#add a target_index field for the final index to send to
mutate {
replace => [ "[@metadata][target_index]", "logs-eventhub" ]
}
}
有人能提供一些关于如何在logstash中进行多个JSON解析的见解吗?这样我就可以在自己的事件中将每条记录解析为JSON。
1条答案
按热度按时间kuuvgm7e1#
如果您的输入将数据解析为JSON格式,则不需要
json
过滤器,只需像下面这样使用thesplit
filter:split
过滤器要做的是克隆原始事件,拆分records
数组,并将每个子记录放入原始事件的克隆中。试试吧!!