Сравнение результатов поиска из двух отдельных поисков
Я новичок в использовании Splunk и хотел получить некоторую помощь в объединении двух результатов поиска и организации его так, чтобы он отображал совпадающую информацию из двух поисков.
Так что я ищу что-то вроде следующего. (Я должен был отредактировать некоторую информацию для безопасности)
index=INDEX sourcetype=SOURCETYPE authresult (UNIQUEID)
Это даст мне несколько событий с необходимыми полями для того, что я ищу, но мне нужно сравнить поле UNIQUEHASH
из этого поиска с тем же полем другого аналогичного поиска с другим UNIQUEID
, Я только хочу получить информацию от UNIQUEHASH
если оба запроса содержат одно и то же значение и сколько раз они возвращаются.
Так что, если я сделаю поиск UNIQUEID1
и получите следующее количество событий со следующим UNIQUEHASH
ценности.
UNIQUEHASH Times
123 10
456 20
789 30
Я хотел бы сделать тот же поиск для UNIQUEID2
который обеспечивает следующее UNIQUEHASH
ценности.
UNIQUEHASH Times
123 20
789 400
С этими двумя поисками я хотел бы объединить их в простую таблицу с UNIQUEHASH
и сколько раз каждый UNIQUEID
вернул эту сумму. Так что в этом примере UNIQUEHASH
ж / значение 456 не включено, потому что UNIQUEID2
не возвращает ни одного.
UNIQUEHASH UNIQUEID1 UNIQUEID2
123 10 20
789 30 400
1 ответ
То, что вы описываете, можно сделать либо с помощью(более "очевидный" путь), или:
:
index=ndx1 sourcetype=srctp1 authresult=* uniquehash=* times=* uniqueid="1"
| stats count by uniquehash times
| fields - count
| rename times as unique1
| join uniquehash
[| search index=ndx1 sourcetype=srctp1 authresult=* uniquehash=* times=* uniqueid="2"
| stats count by uniquehash times
| fields - count
| rename times as unique2 ]
Обратите внимание, используяjoin
обычно не рекомендуется - самый внутренний поиск будет ограничен временем выполнения 60 с или будет возвращено 50 тыс. строк (поэтому запустите самый быстрый/кратчайший внутренний поиск )
Кроме того, это будет очень громоздко, если вам нужно сделать больше, чем пару «уникальных» сравнений.
stats
:
index=ndx sourcetype=srctp uniquehash=* times=* uniqueid=*
| eval idkt=uniqueid+","+times
| stats values(idkt) as idkt by uniquehash
| where mvcount(idkt)>1
| mvexpand idkt
| rex field=idkt "(?<uniqueid>\S+)\s(?<times>.+)"
| table uniquehash uniqueid times