I have a log file with multiple line patterns. Something like this:
[name] [surname] [address] [phone] [birthdate] [lastlogin]
[key] [value]
[timestamp] [username] [url] [errcode] [srcip] [dstip]
[field1] [field2] [field3] [field4]
There are multiple types of records in this file and each record type must be dealt with differently. Each record has its own fields and they rarely overlap.
I need to extract each field in each record and then process them. How could I do that? Should I write a regex for each record type? Where should I put these regexes?
I've been searching for a solution, but didn't find anything.
Thanks.
You can use props and transforms to extract the fields you need using regex. Its not a problem if you build a single regex for each distinct field.
Are the lines related to each other? meaning "[key] [value]" can belong to the same event as "[timestamp] [username] [url] [errcode] [srcip] [dstip]". If so, you can just the way splunk looks at your data and build a multi-line event. If they are not related then you might have an issue, since splunk indexes data based on the time stamp and for the looks of it, if they don't related, only one event has timestamp.
It easier to help you if you post a sanitized example of diferent events of you raw data.