Разобрать вложенный массив JSON в таблицу Splunk

У меня есть событие JSON ниже с вложенным массивом в splunk -:

{
"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 -:

Формат выходной таблицы Splunk

Я попытался использовать spath, как показано ниже, но он дает только неправильные результаты, указанные ниже -:

| makeresults | eval _raw = "{\" элементы \ ": [{\" части \ ": [{\" код \ ": \" 1 \ ", \" var \ ": \" \ ", \" pNum \ ": \ "101 \", \ "counter \": 1019}, {\ "code \": \ "0 \", \ "var \": \ "\", \ "pNum \": \ "102 \" , \ "counter \": 1029}], \ "se \": \ "A1 \", \ "so \": \ "111 \"}, {\ "части \": [{\ "код \" : \ "1 \", \ "var \": \ "\", \ "pNum \": \ "301 \", \ "counter \": 3019}, {\ "code \": \ "0 \ ", \" var \ ": \" \ ", \" pNum \ ": \" 302 \ ", \" counter \ ": 3029}], \" se \ ": \" A3 \ ", \" так \ ": \" 333 \ "}, {\" части \ ": [ {\ "код \": \ "0 \", \ "var \": \ "\", \ "pNum \": \ "401 \", \ "counter \": 4019}], \ "se \ ": \" A4 \ ", \" so \ ": \" 444 \ "}, {\" части \ ": [{\" код \ ": \" 1 \ ", \" var \ ": \" \ ", \" pNum \ ": \" 501 \ ", \" counter \ ": 5019}], \" se \ ": \" A5 \ ", \" so \ ": \" 555 \ "}] , \ "id \": \ "x.9110790 \", \ "cr \": \ "x-273169 \"} "| spath | переименовать элементы как * | идентификатор таблицы, cr, items {}. *

фактический вывод splunk

Я впервые пытаюсь разобрать логи splunk типа JSON. Так что, пожалуйста, помогите с любыми подсказками, чтобы решить эту проблему. Спасибо


person Kripz    schedule 02.08.2019    source источник


Ответы (1)


@Kripz

Не могли бы вы попробовать этот поиск?

| makeresults | eval _raw = "{\" элементы \ ": [{\" части \ ": [{\" код \ ": \" 1 \ ", \" var \ ": \" \ ", \" pNum \ ": \ "101 \", \ "counter \": 1019}, {\ "code \": \ "0 \", \ "var \": \ "\", \ "pNum \": \ "102 \" , \ "counter \": 1029}], \ "se \": \ "A1 \", \ "so \": \ "111 \"}, {\ "части \": [{\ "код \" : \ "1 \", \ "var \": \ "\", \ "pNum \": \ "301 \", \ "counter \": 3019}, {\ "code \": \ "0 \ ", \" var \ ": \" \ ", \" pNum \ ": \" 302 \ ", \" counter \ ": 3029}], \" se \ ": \" A3 \ ", \" так \ ": \" 333 \ "}, {\" части \ ": [{\" код \ ": \" 0 \ ", \" var \ ": \" \ ", \" pNum \ ": \" 401 \ ", \" counter \ ": 4019}], \" se \ ": \" A4 \ ", \" so \ ": \" 444 \ "}, {\" части \ ": [{\" код \ ": \" 1 \ ", \" var \ ": \" \ ", \" pNum \ ": \" 501 \ ", \" counter \ ": 5019}], \" se \ ": \ "A5 \", \ "so \": \ "555 \"}], \ "id \": \ "x.9110790 \", \ "cr \": \ "x-273169 \"} "| кв. | spath path = items {} output = items | элементы mvexpand | поля cr id элементы | eval raw = items | кв | переименовать части {}. * как части * | eval 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) | идентификатор таблицы cr se so Parts_code Parts_var Parts_counter Parts_pNum

Проверьте мой блог: https://www.crestdatasys.com/blogs/how-to-extract-complex-field-from-nested-json-events-using-splunk-spl/

person kamlesh vaghela    schedule 02.08.2019