Here is the output of my log message:
{"line":"2019-11-21T22:09:29.982Z LCS LCE [abc-75] INFO i.r.queue.poller.SqsMessagePoller - Tags: {accountId=111222333, jobId=1002207394, cloudAccount=ABC-Cloud, jobAttributes={\"serviceIds\":[\"ABC\"]}, jobType=awsAccountService, custName=ABC}
How can I extract the cloudAccount and CustName from the above log so I can search like this:
index="*" | search cloudAccount=ABC-Cloud | search CustName=ABC
?
Like this:
| makeresults | eval _raw="{\"line\":\"2019-11-21T22:09:29.982Z LCS LCE [abc-75] INFO i.r.queue.poller.SqsMessagePoller - Tags: {accountId=111222333, jobId=1002207394, cloudAccount=ABC-Cloud, jobAttributes={\\\"serviceIds\\\":[\\\"ABC\\\"]}, jobType=awsAccountService, custName=ABC}"
| rex mode=sed "s/.*Tags:\s+//"
| kv
| search cloudAccount="ABC-Cloud" AND CustName="ABC"
Hi balash1979,
You can also directly extract fields from your search via Splunk UI using "Extract Fields". You can also check if your extractions are matching every field in the events.
You can refer the Splunk doc for the same:
https://docs.splunk.com/Documentation/Splunk/8.0.0/Knowledge/FXSelectSamplestep
Like this:
| makeresults | eval _raw="{\"line\":\"2019-11-21T22:09:29.982Z LCS LCE [abc-75] INFO i.r.queue.poller.SqsMessagePoller - Tags: {accountId=111222333, jobId=1002207394, cloudAccount=ABC-Cloud, jobAttributes={\\\"serviceIds\\\":[\\\"ABC\\\"]}, jobType=awsAccountService, custName=ABC}"
| rex mode=sed "s/.*Tags:\s+//"
| kv
| search cloudAccount="ABC-Cloud" AND CustName="ABC"
I gave the log line as an example so using the makeresults wont work for me. Lets say I have different log lines with different custName and different cloudAccount, how can i do a generic search that will show me only the lines associated with cloudAccount="ABC-Cloud" ?
Sorry, the makeresults
part is for demonstration/testing purposes. Your solution is lines 2-4. Just tack those onto your existing search.