For Audit purposes, I need to write a search to find out all the users who have not logged in the last 90 days in the datapower servers so that we can identify them and remove their access. I have the query to find out all the users have logged in 90 days and then manually remove the ones who haven't. But we are looking to fully do an automated query that tells us who hasn't logged in.
This is the event that logs when a user is successfully logged in
user(xxxxx): [abc.10.hsc.120]: User logged into 'environment'.
Search I am using to find who has logged in
index=datapower environment=* "user logged into" NOT svc | eval Time=strftime(time, "%H:%M:%S") | eval Date=strftime(time, "%Y-%m-%d")|dedup UserID| stats count by UserID, environment, Date, Time
Need help to write something which will tell me who has not logged in.
Now that you have a list of everyone who has logged in, you just need to compare that to a list of all users with access.
Use the means at your disposal to create a CSV file of all Datapower users and load the file in Splunk. The CSV file should have a column called "UserID". Then you can use that file as a lookup in a query like this one:
| inputlookup datapowerusers.csv
| search NOT [index=datapower environment=* "user logged into" NOT svc |dedup UserID | fields UserID | format]
--- If this reply helps you, an upvote would be appreciated.