Сравнение результатов поиска из двух отдельных поисков

Я новичок в использовании 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
Другие вопросы по тегам