将 JSON 数组解析为单独的 JSON 事件 Losgstash?
Parsing a JSON Array into separate JSON events Losgstash?
我目前遇到的情况是 logstash 从 azure 事件中心提取一个 JSON 数组,我需要将其拆分为多个事件。
我从事件中心获得的日志如下所示:
{"records": [{JSON LOG},{JSON LOG},{JSON LOG},...,{JSON LOG}]}
我尝试过使用 split 和 json 过滤器,但我似乎无法让它正常工作。我基本上想拆分数组,以便 logstash 将记录中的每个 JSON 日志作为单独的事件发送到弹性,解析为 json.
我还需要 rename/parse 个人 JSON 登录到 ECS,所以目前认为我需要将记录解析为 json,然后将输出解析为 json在发送到弹性之前做一些变异重命名过滤器,除非在 logstash 中使用弹性索引管道进行解析 JSON 来解析到 ECS 会更容易。
我当前的过滤器部分是:
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。
如果您的输入将数据解析为 JSON,则不需要 json
过滤器,您只需要像这样使用 the split
filter:
filter {
#Split results into individual events
split {
source => "records"
}
#add a target_index field for the final index to send to
mutate {
replace => [ "[@metadata][target_index]", "logs-eventhub" ]
}
}
split
过滤器的作用是克隆您的原始事件,拆分 records
数组并将每个子记录放入原始事件的克隆中。
试试吧!!
我目前遇到的情况是 logstash 从 azure 事件中心提取一个 JSON 数组,我需要将其拆分为多个事件。
我从事件中心获得的日志如下所示:
{"records": [{JSON LOG},{JSON LOG},{JSON LOG},...,{JSON LOG}]}
我尝试过使用 split 和 json 过滤器,但我似乎无法让它正常工作。我基本上想拆分数组,以便 logstash 将记录中的每个 JSON 日志作为单独的事件发送到弹性,解析为 json.
我还需要 rename/parse 个人 JSON 登录到 ECS,所以目前认为我需要将记录解析为 json,然后将输出解析为 json在发送到弹性之前做一些变异重命名过滤器,除非在 logstash 中使用弹性索引管道进行解析 JSON 来解析到 ECS 会更容易。
我当前的过滤器部分是:
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。
如果您的输入将数据解析为 JSON,则不需要 json
过滤器,您只需要像这样使用 the split
filter:
filter {
#Split results into individual events
split {
source => "records"
}
#add a target_index field for the final index to send to
mutate {
replace => [ "[@metadata][target_index]", "logs-eventhub" ]
}
}
split
过滤器的作用是克隆您的原始事件,拆分 records
数组并将每个子记录放入原始事件的克隆中。
试试吧!!