Currently working on a IIS log file with standard fields. I’m looking to first determine the unique Usernames contained in the log and then list the unique IP addresses associated with each Username employed at login. “My Search String” determines the login event.
This gets me close:
index="main" " My Search String" | stats list(c_ip) by cs_username
This produces a list of the correct information except that the list of IP addresses is not unique and that is the problem I’m having trouble solving. Additionally it would be VERY helpful if there was a way to only display the rows if the number of unique IP addresses was greater than 1. The idea is to identify only the logins that have taken place from more than one IP address. I looked into the “WHERE” statement but it doesn’t seem to be designed for this.
Any help would be much appreciated.
Instead of stats list
, use stats values
to get the distinct list:
index="main" " My Search String" | stats values(c_ip) by cs_username
To limit to cases where there is more than one distinct value:
index="main" " My Search String"
| stats dc(c_ip) as distinctCount values(c_ip) by cs_username
| where distinctCount>1
Instead of stats list
, use stats values
to get the distinct list:
index="main" " My Search String" | stats values(c_ip) by cs_username
To limit to cases where there is more than one distinct value:
index="main" " My Search String"
| stats dc(c_ip) as distinctCount values(c_ip) by cs_username
| where distinctCount>1
Very good, that certainly did the trick...
See inline edit above.
Very good thanks! That solves problem number one. Is there any way to limit displaying the rows to circumstances where there are two or more IP addresses associated to one Username? This would make the difference between a list of about 10 events and 50 pages of information to page through.