Splunk Search

Using inputlookup as vlookup in a Subsearch

NapalmYourMom
Observer

I have the following main search:

 

 

index=utm sys=SecureNet action=drop
| eval protocol=case(proto==1, "ICMP", proto==6, "TCP", proto==17, "UDP", proto==132, "SCTP", 1=1,proto)
| table _time severity srcip srcport srcmac dstip dstport dstmac protocol eval action fwrule tcpflags ttl initf outitf
| sort -_time

 

 

On the existing eval, I need to modify the end that acts as the else. Right now, the  else specifies a name for numbers 1, 6, 17, and 132 in field "proto".  I need the else to use any other occurring number to lookup an associated name from a csv containing 2 fields: "number" and "name".

I cannot for the life of me figure out what kind of subsearch to use or the syntax... I imagine it is something like:

 

 

| inputlookup protocol_number_list.csv
| search number=proto
| return name

 

 

but I can't figure out how to combine the two.

Any help would be greatly appreciated, thanks!

Labels (1)
0 Karma

ITWhisperer
SplunkTrust
SplunkTrust
index=utm sys=SecureNet action=drop
| lookup protocol_number_list.csv number AS proto OUTPUT name
| eval protocol=case(proto==1, "ICMP", proto==6, "TCP", proto==17, "UDP", proto==132, "SCTP", isnotnull(name), name, 1=1,proto)
| table _time severity srcip srcport srcmac dstip dstport dstmac protocol eval action fwrule tcpflags ttl initf outitf
| sort -_time
0 Karma

NapalmYourMom
Observer

Thank you so much - it would have been a long struggle to figure this out for myself.

Let me ask you something regarding computational resources:

I use the case statement to apply numbers 1,6, and 17 because they likely comprise 99% of events.  I did this to stop Splunk from having to access the CSV and traverse the list for every single event.

Do you think it Splunk is saving any significant resources by doing this?

Otherwise I would just go with:

index=utm sys=SecureNet action=drop
| lookup protocol_number_list.csv number AS proto OUTPUT name AS protocol
| table _time severity srcip srcport srcmac dstip dstport dstmac protocol eval action fwrule tcpflags ttl initf outitf
| sort -_time

 Testing this out doesn't appear to tax Splunk at all, which I am running in a Docker container.

0 Karma
Get Updates on the Splunk Community!

Automatic Discovery Part 1: What is Automatic Discovery in Splunk Observability Cloud ...

If you’ve ever deployed a new database cluster, spun up a caching layer, or added a load balancer, you know it ...

Real-Time Fraud Detection: How Splunk Dashboards Protect Financial Institutions

Financial fraud isn't slowing down. If anything, it's getting more sophisticated. Account takeovers, credit ...

Splunk + ThousandEyes: Correlate frontend, app, and network data to troubleshoot ...

 Are you tired of troubleshooting delays caused by siloed frontend, application, and network data? We've got a ...