Hello!
Take .csv lookup file and search through an index in order to identify a match, if ipaddress OR username match.
username, ipaddress, url, protocol, group, severity
tomj, 10.10.10.123, google.com, 80, badguy, 1
bobt, 10.10.10.124, google.com, 443, good, 2
sarat, 10.10.10.121, g.com, 80, good, 2
index=log_files | lookup table.csv ipaddress as src_ip, url as link OUTPUT group, severity
| table _Time, src_ip, group, severity
I only get a result when both src_IP AND link from my index match the lookup. But, I want to know if either of these conditions match. For example, when ip 10.10.10.123 OR g.com is visited, I would expect to see group, severity for those two separate records.
How can I use OR logic in my lookup fields instead of AND?
Please let me know if I remain unclear in my request.
Thank you!
You have to do multiple lookups and either use OUTPUTNEW
or use a different output name for each one and then use coalesce(name1, name2, name3, ...)
.
The lookup
command always ANDs the fields used in the lookup. There is no option to OR them. The alternative is to use multiple lookups.
index=log_files | lookup table.csv ipaddress as src_ip OUTPUT group1, severity1
| lookup table.csv url as link OUTPUT group2, severity2
| eval group=coalesce(group1, group2), severity=coalesce(severity1, severity2)
| table _Time, src_ip, group, severity
@richgalloway - consider OUTPUTNEW
Forgot about that. Thanks, DalJeanis!