Splunk Dedup на _time и объединение значений для одного поля в одно событие

Я работаю с данными Exchange 2010. У меня есть MessageID, Отправитель, Получатели и _time. В зависимости от типа события, получатели могут быть разделены (то есть все получатели для данного сообщения не включены в событие, но распределены по нескольким событиям). Вот пример данных:

_time    MessageID    Sender    Recipients
4:25      <12345>     Sender1   Recipient1
4:50      <12345>     Sender1   Recipient2

Я использую этот запрос для объединения нескольких значений получателей в одно событие по MessageID и отправителю:

index=ExchangeIndex sourcetype=MSExchange:2010:Message tracking
| stats values(Recipients) as recip by MessageID, Sender
| table _time, MessageID, Sender, recip

Это приводит к:

_time     MessageID   Sender    recip
          <12345>     Sender1   Recipient1; Recipient2

время не заселено, потому что values не будет работать, если _time был включен в by заявление, так как каждое событие для определенного MessageID происходит в разное время. Поэтому мне нужно как-то dedup MessageID (чтобы получить последний _time) и заполнить значения Recipients одновременно.

Я попытался это:

| stats max(_time) as datetime by MessageID, Sender
| stats values(Recipients) as recip by datetime, MessageID, Sender
| table datetime, MessageID, Sender, recip

Но это тоже не работает, и в результате получатель не заполняется:

_time    MessageID    Sender    recip
4:50     <12345>      Sender1   

Мой желаемый результат выглядит так:

_time     MessageID   Sender    recip
4:50      <12345>     Sender1   Recipient1; Recipient2

Как мне этого добиться?

2 ответа

Я думаю, что понимаю, что вы говорите.. Квитанция и отправитель не имеют одинаковую метку времени, поэтому они никогда не могут быть в одном ряду?

Если это так, попробуйте это ниже. Это предполагает, что получатель и отправитель находятся в пределах 10 минут друг от друга

index=ExchangeIndex sourcetype=MSExchange:2010:Message tracking
| bin _time span=10m
| stats values(Recipients) as recp values(MessageID) AS MessageID 
  values(Sender) AS Sender by _time

Попробуй это:

index=ExchangeIndex sourcetype=MSExchange:2010:Message tracking
stats latest(_time) as latestTime, values(Recipients) as recip by MessageID, Sender
table latestTime, MessageID, Sender, recip
convert ctime(latestTime)
Другие вопросы по тегам