Hello Splunkers,
I'm actually trying to extract the "flags" field in the DNS logs.
Meanwhile, the TA provided by Splunk isn't working properly because all logs haven't the same form.
This is the regex provided by Splunk to extract flags field :
(?<operation>[ R]) (?<opcode>.) \[(?<hexflags>[0-9A-Fa-f]+) (?<flags>....) (?<response>[^\]]+)\]
Log form case 1 :
R Q [8381 A DR NXDOMAIN]
Log form case 2 :
R Q [8081 DR NOERROR]
Log form case 3 :
Q [0001 D NOERROR]
In the case 1 the extract work properly and the field "flags=A DR" but in the case 2 or 3 none of the fields are extracted (because there are only 3 digits in the [] instead of 4).
Any idea how to process to extract these values ?
Hello,
I tried your solution but it doesn't work.
So I splitted my regex into 2 parts :
Regex 1 :
(?<opcode>.) \[(?<hexflags>[0-9A-Fa-f]+) (?<flags>....|...|..|.) (?<response>[^\]]+)\]
It extracts :
Regex 2 :
....\s(?<operation>[R])\s
It extracts :
And now it works properly !
(?<operation>[ R]) (?<opcode>.) \[(?<hexflags>[0-9A-Fa-f]+) (?<flags>.+) (?<response>[^\]]+)\]
hexflags as anchored to the [ and response is anchored to the ] leaving flags to pick up the bit in between
Hello,
I tried your solution but it doesn't work.
So I splitted my regex into 2 parts :
Regex 1 :
(?<opcode>.) \[(?<hexflags>[0-9A-Fa-f]+) (?<flags>....|...|..|.) (?<response>[^\]]+)\]
It extracts :
Regex 2 :
....\s(?<operation>[R])\s
It extracts :
And now it works properly !