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

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

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

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

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

_time не заполняется, потому что 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

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


person OverflowingTheGlass    schedule 21.11.2017    source источник


Ответы (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
person skoelpin    schedule 21.11.2017

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

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)
person pjnike    schedule 18.12.2017