Splunk Search

Is there a way to optimize my join search?

monteirolopes
Communicator

Hi,

I did a report that lists users who have not logged on for more than 60 days and the status of users aren't disable/deleted on Active Directory. For this, I used the command join to merge the distinct searches.

Here is my search:

sourcetype=ActiveDirectory | dedup sAMAccountName | eval x = strptime(lastLogonTimestamp, "%H:%M.%S %p, %a %m/%d/%Y")  | where x < (now() - (86400 * 60)) | JOIN sAMAccountName [ search sourcetype="WinEventLog:Security"  EventCode != 4725 OR EventCode != 4726 | dedup user | eval sAMAccountName = user ] | table sAMAccountName, lastLogonTimestamp | rename sAMAccountName AS "User" lastLogonTimestamp AS "Last Login"

There is a way to optimize this search?

Best regards,
Lopes.

0 Karma
1 Solution

somesoni2
Revered Legend

Try like this

(sourcetype=ActiveDirectory) OR (sourcetype="WinEventLog:Security"  EventCode != 4725 OR EventCode != 4726)
| eval User=coalesce(sAMAccountName, user) | stats latest(lastLogonTimestamp) as lastLogonTimestamp values(sourcetype) as sourcetype by User | where strptime(lastLogonTimestamp, "%H:%M.%S %p, %a %m/%d/%Y") < relative_time(now(),"-60d")
| table User lastLogonTimestamp | rename lastLogonTimestamp AS "Last Login"

View solution in original post

somesoni2
Revered Legend

Try like this

(sourcetype=ActiveDirectory) OR (sourcetype="WinEventLog:Security"  EventCode != 4725 OR EventCode != 4726)
| eval User=coalesce(sAMAccountName, user) | stats latest(lastLogonTimestamp) as lastLogonTimestamp values(sourcetype) as sourcetype by User | where strptime(lastLogonTimestamp, "%H:%M.%S %p, %a %m/%d/%Y") < relative_time(now(),"-60d")
| table User lastLogonTimestamp | rename lastLogonTimestamp AS "Last Login"

dolivasoh
Contributor

Nice one. I didn't think of coalescing until after I posted and I was already heading to bed.

0 Karma

monteirolopes
Communicator

Thank you!

0 Karma

dolivasoh
Contributor

Try this

(sourcetype=ActiveDirectory) OR (sourcetype="WinEventLog:Security"  EventCode != 4725 OR EventCode != 4726) | eval x = strptime(lastLogonTimestamp, "%H:%M.%S %p, %a %m/%d/%Y")  | where x < (now() - (86400 * 60)) | rename user as sAMAccountName | stats latest(lastLogonTimestamp) as lastLogonTimestamp by sAMAccountName | rename sAMAccountName AS "User" lastLogonTimestamp AS "Last Login"
0 Karma
Get Updates on the Splunk Community!

Splunk Enterprise Security 8.x: The Essential Upgrade for Threat Detection, ...

 Prepare to elevate your security operations with the powerful upgrade to Splunk Enterprise Security 8.x! This ...

Get Early Access to AI Playbook Authoring: Apply for the Alpha Private Preview ...

Passionate about security automation? Apply now to our AI Playbook Authoring Alpha private preview ...

Reduce and Transform Your Firewall Data with Splunk Data Management

Managing high-volume firewall data has always been a challenge. Noisy events and verbose traffic logs often ...