Splunk Search

How to compare same fields from different events to find past occurrence

Josh1890
Engager

Editing to make it better:
Let's say I have login events with 2 important fields: past_deviceid, new_deviceid
I want to check if the new_deviceid was assigned to a different user in the past, for that I need to compare the value of the field to the past_deviceid field of past events and I'm kinda stuck here

In login events where the user uses their usual device, there'll be only 1 field called past_deviceid, we get the new_deviceid field only when there's a login with a new device

In the end I want to have a table that shows the new_deviceid by all the users that hold/held it where there's more than 1 user

Example:

events with only 1 device:


User: Josh
old_Device: iPhone12348

---------------------------
User: John
old_Device: samsung165

----------------------------
case where there's a new device:

User: Jane
old_Device: iPhone17778
new_Device: samsung165

 

I want to have the following table, I guess the stats command fits here:

DeviceIDUser
samsung165

Jane

John

Labels (1)
0 Karma
1 Solution

ITWhisperer
SplunkTrust
SplunkTrust
| eval devices=mvappend(old_device,new_device)
| stats values(user) as users by devices

View solution in original post

0 Karma

gcusello
SplunkTrust
SplunkTrust

Hi @Josh1890 ,

as @ITWhisperer said, some sample coud help to better understand your requirement.

Anyway, if I correctly understood, you want to know if the new_id was assigned in the past to some different users; in other words, if there are more users with assigned the same new_id, is this correct?

It isn't so cluear for me the reation between new_id and past_id.

Anyway, in this case, you could try to run something like this:

<your_search>
| stats 
    dc(user) AS user_count
    values(user) AS user
    BY new_id
| where user_count>1

Ciao.

Giuseppe

 

0 Karma

gcusello
SplunkTrust
SplunkTrust

Hi @Josh1890 ,

please try this:

<your_search>
| stats 
    dc(User) AS user_count
    values(User) AS user
    BY DeviceID
| where user_count>1

Ciao.

Giuseppe

0 Karma

Josh1890
Engager

Hey Giuseppe, the solution doesn't work since it doesn't include users who have the value of new_device inside their old_device field

Check the example in the post 

0 Karma

Josh1890
Engager

And to answer your question, I want to see if the value of new_deviceid exists in other users old_deviceid field, meaning it was assigned to them in the past

0 Karma

Josh1890
Engager

Updated the post

0 Karma

ITWhisperer
SplunkTrust
SplunkTrust

Please can you share some anonymised representative events demonstrating your issue?

0 Karma

Josh1890
Engager

Updated the post, please take a look

0 Karma

ITWhisperer
SplunkTrust
SplunkTrust
| eval devices=mvappend(old_device,new_device)
| stats values(user) as users by devices
0 Karma

Josh1890
Engager

I think this works, thanks

0 Karma

gcusello
SplunkTrust
SplunkTrust

Hi @Josh1890 ,

good for you, see next time!

Ciao and happy splunking

Giuseppe

P.S.: Karma Points are appreciated by all the contributors 😉

0 Karma
Get Updates on the Splunk Community!

Built-in Service Level Objectives Management to Bridge the Gap Between Service & ...

Wednesday, May 29, 2024  |  11AM PST / 2PM ESTRegister now and join us to learn more about how you can ...

Get Your Exclusive Splunk Certified Cybersecurity Defense Engineer at Splunk .conf24 ...

We’re excited to announce a new Splunk certification exam being released at .conf24! If you’re headed to Vegas ...

Share Your Ideas & Meet the Lantern team at .Conf! Plus All of This Month’s New ...

Splunk Lantern is Splunk’s customer success center that provides advice from Splunk experts on valuable data ...