我在splunk中有以下带有嵌套数组的JSON事件-:
{
"items":
[
{
"parts":
[
{
"code":"1","var":"","pNum":"101","counter":1019
},
{
"code":"0","var":"","pNum":"102","counter":1029
}
],
"se":"A1",
"so":"111"
},
{
"parts":
[
{
"code":"1","var":"","pNum":"301","counter":3019
},
{
"code":"0","var":"","pNum":"302","counter":3029
}
],
"se":"A3",
"so":"333"
},
{
"parts":
[
{
"code":"0","var":"","pNum":"401","counter":4019
}
],
"se":"A4",
"so":"444"
},
{
"parts":
[
{
"code":"1","var":"","pNum":"501","counter":5019
}
],
"se":"A5",
"so":"555"
}
],
"id":"x.9110790",
"cr":"x-273169"
}
我想将此JSON提取到下面的Splunk表-:
我试图按如下方式使用spath,但它只会给出以下错误的结果-:
|制造商|评估_raw =“ { \“项目\”: [ { \“部分\”: [ { \“ code \”:\“ 1 \”,\“ var \”:\“ \”,\“ pNum \”:\“ 101 \”,\“计数器\”:1019 }, { \“ code \”:\“ 0 \”,\“ var \”:\“ \”,\“ pNum \”:\“ 102 \”,\“计数器\”:1029 } ], \“ se \”:\“ A1 \”, \“ so \”:\“ 111 \” }, { \“部分\”: [ { \“ code \”:\“ 1 \”,\“ var \”:\“ \”,\“ pNum \”:\“ 301 \”,\“计数器\”:3019 }, { \“ code \”:\“ 0 \”,\“ var \”:\“ \”,\“ pNum \”:\“ 302 \”,\“计数器\”:3029 } ], \“ se \”:\“ A3 \”, \“ so \”:\“ 333 \” }, { \“部分\”: [ { \“ code \”:\“ 0 \”,\“ var \”:\“ \”,\“ pNum \”:\“ 401 \”,\“计数器\”:4019 } ], \“ se \”:\“ A4 \”, \“ so \”:\“ 444 \” }, { \“部分\”: [ { \“ code \”:\“ 1 \”,\“ var \”:\“ \”,\“ pNum \”:\“ 501 \”,\“计数器\”:5019 } ], \“ se \”:\“ A5 \”, \“ so \”:\“ 555 \” } ], \“ id \”:\“ x.9110790 \”, \“ cr \”:\“ x-273169 \” }“ | spath |将项目重命名为* |表ID,cr,项目{}。*
我正在尝试首次解析JSON类型的splunk日志。因此,请提供任何提示来解决此问题。 谢谢
答案 0 :(得分:0)
@Kripz
可以请您尝试搜索吗?
|结果eval _raw =“ {\” items \“:[{\” parts \“:[{ \“ code \”:\“ 1 \”,\“ var \”:\“ \”,\“ pNum \”:\“ 101 \”,\“计数器\”:1019},{ \“ code \”:\“ 0 \”,\“ var \”:\“ \”,\“ pNum \”:\“ 102 \”,\“ counter \”:1029}], \“ se \”:\“ A1 \”,\“ so \”:\“ 111 \”},{\“ parts \”:[{ \“ code \”:\“ 1 \”,\“ var \”:\“ \”,\“ pNum \”:\“ 301 \”,\“计数器\”:3019},{ \“ code \”:\“ 0 \”,\“ var \”:\“ \”,\“ pNum \”:\“ 302 \”,\“计数器\”:3029}], \“ se \”:\“ A3 \”,\“ so \”:\“ 333 \”},{\“ parts \”:[{ \“ code \”:\“ 0 \”,\“ var \”:\“ \”,\“ pNum \”:\“ 401 \”,\“计数器\”:4019}], \“ se \”:\“ A4 \”,\“ so \”:\“ 444 \”},{\“ parts \”:[{ \“ code \”:\“ 1 \”,\“ var \”:\“ \”,\“ pNum \”:\“ 501 \”,\“计数器\”:5019}], \“ se \”:\“ A5 \”,\“ so \”:\“ 555 \”}],\“ id \”:\“ x.9110790 \”, \“ cr \”:\“ x-273169 \”}“ | kv | spath path = items {} output = items | mvexpand项目|栏位ID项目|评估 raw = items | kv |改名 零件{}。*作为零件 * |评估 temp = mvzip(mvzip(Parts_code,Parts_counter),Parts_pNum)| mvexpand temp | eval Parts_code = mvindex(split(temp,“,”),0) ,Parts_counter = mvindex(split(temp,“,”),1),Parts_pNum = mvindex(split(temp,“,”),2) |表格ID本身就是这样,所以Parts_code Parts_var Parts_counter Parts_pNum