Splunk Search

How to perform Lookup Using Event Field that is a List?

rrossetti
Splunk Employee
Splunk Employee

I have an event field that is a list of  "permissions" , and I want to perform a lookup for each permission in the list. 

E.g.

Events

name permissions
app1 send_message
app2 read_user, send_message, write_test

 

Lookup Table:

permission risk
send_message

medium

read_user

low

write_test

high

 

Desired Results

app permission risk
app1 send_message medium
app2 read_user low
app2 send_message medium
app2 write_test high




I want to split the permissions field for each app, and then use the lookup separately so that each row corresponds to an app and one of its permissions. The length of the permissions field is variable. 
I am not sure what is the most efficient way to achieve this. 

Labels (3)
0 Karma
1 Solution

PickleRick
SplunkTrust
SplunkTrust

1. Use split() function to split your string "list" into multivalued field

2. Use mvexpand to expand multivalued field into separate rows

3. Do your lookup

View solution in original post

woodcock
Esteemed Legend

|makeresults | eval _raw="
name domain
app1 google.com
app2 microsoft.com, ibm.com, apple.com"
| multikv forceheader=1
| makemv tokenizer="([^,\s]+)" domain
| mvexpand domain
| rename COMMENT AS "You may not need the above line"
| lookup dnslookup clienthost AS domain

PickleRick
SplunkTrust
SplunkTrust

1. Use split() function to split your string "list" into multivalued field

2. Use mvexpand to expand multivalued field into separate rows

3. Do your lookup

Got questions? Get answers!

Join the Splunk Community Slack to learn, troubleshoot, and make connections with fellow Splunk practitioners in real time!

Meet up IRL or virtually!

Join Splunk User Groups to connect and learn in-person by region or remotely by topic or industry.

Get Updates on the Splunk Community!

Persistent Queue at TcpOut — One of Splunk's Most Practical Features

Splunk introduced persistent queueing at the tcpout layer as one of the most practical resilience features in ...

Skip the Awkward Silence: Have a .conf-ersation at .conf26

Picture this. You arrive at .conf26 already having your socializing and networking plans mapped out. No ...

Rethinking Zero Trust: From Product Purchases to Logical Control Evidence

Implementing Zero Trust (ZT) across complex environments often falters at the very beginning due to a ...