Splunk как исключить определенную юдоль из списка, если она существует - PullRequest
0 голосов
/ 07 августа 2020

У меня есть журнал с полезной нагрузкой примерно так:

"Stats":[        { 
           errors: 0
           type: "Disc"
           success: 878
         },
         {
           errors: 21
           type: "cronJob"
           success: 25
         },
         { 
           errors: 0
           type: "File"
           success: 8787
         },
         { 
           errors: 15
           type: "Unknown"
           success: 0
         }]

Мне нужно избавиться от объекта типа «Неизвестный» и получить сумму оставшихся значений

Я могу получить сумму всех ошибок, но для событий типа Unknown я не знаю, как это сделать. Не могли бы вы помочь?

<search>|rename Stats{}.type= as type|eventstats sum(errors)  as ErrorCount 

Это мой текущий поиск без исключения неизвестного типа. как включить лог c, чтобы исключить неизвестное количество

Ответы [ 2 ]

1 голос
/ 07 августа 2020
<search>|rename Stats{}.type= as type | where type != "Unknown" | eventstats sum(errors)  as ErrorCount 
0 голосов
/ 10 августа 2020

Полезная нагрузка JSON обрабатывается как многозначное поле

Поэтому вам нужно mvexpand перед тем, как отфильтровать то, что вы хотите игнорировать

Попробуйте что-то вроде этого:

index=ndx sourcetype=srctp Stats{}.type=*
| rename Stats{}.type as type
| mvexpand type
| search NOT type="Unknown"
| ...
...