Parsers and Generated Fields

Tag Fields Created by Parser microsoft-windows-dns
  • #Cps.version

  • #Vendor

  • #ecs.version

  • #event.dataset

  • #event.kind

  • #event.module

  • #event.outcome

  • #observer.type

Fields Identified by Parser microsoft-windows-dns
Source FieldCPS FieldDescriptionMapping
__timestamp@timestampEvent timestamp extracted and parsed from the raw log lineParsed from `__timestamp` using `__timestamp match` block with five format patterns
Vendor.RemoteIP, Vendor.IPclient.addressClient address (DNS requester)Conditionally set to Vendor.RemoteIP (Snd+response or Rcv+question) or Vendor.IP (Note log type)
client.address (indirect)client.domainClient domain nameCopied from client.address when it is not a valid IP
client.address (indirect)client.ipClient IP addressCopied from client.address when it is a valid IP (CIDR match)
Vendor.RemoteIPdestination.addressDestination address of the DNS packetConditionally set to Vendor.RemoteIP when Direction=Snd and dns.type=question, or Direction=Snd and dns.type=response
destination.address (indirect)destination.domainDestination domain nameCopied from destination.address when it is not a valid IP
destination.address (indirect)destination.ipDestination IP addressCopied from destination.address when it is a valid IP (CIDR match)
Vendor.EventDescription (indirect)dns.answers[0].nameDNS answer record nameCopied from Vendor.AnswerName extracted via regex from Vendor.EventDescription
Vendor.EventDescription (indirect)dns.answers[0].typeDNS answer record typeCopied from Vendor.AnswerType extracted via regex from Vendor.EventDescription
Vendor.Flagsdns.header_flags[]DNS header flags arrayArray populated from Vendor.Flags (whitespace stripped via replace)
Vendor.PacketIDdns.idDNS packet identifierCopied from Vendor.PacketID
Vendor.Opcodedns.op_codeDNS operation codeCopied from Vendor.Opcode
Vendor.QuestionNamedns.question.nameDNS question domain nameParsed from Vendor.QuestionName with regex replacements to convert encoded label format to dotted notation
Vendor.QuestionTypedns.question.typeDNS question record typeCopied from Vendor.QuestionType
Vendor.ResponseCodedns.response_codeDNS response codeCopied from Vendor.ResponseCode
Vendor.QR, dns.answers[0].typedns.typeDNS message type classificationArray populated based on Vendor.QR (R โ†’ response), dns.answers[0].type presence (โ†’ answer), otherwise โ†’ question
Noneecs.versionECS schema versionStatic value: 9.4.0
dns.response_code (indirect)error.messageHuman-readable error description for DNS failuresMapped from dns.response_code using match statement (e.g., NXDOMAIN โ†’ Name error, FORMERR โ†’ Format error)
@rawstringerror.reasonSocket or connection failure reasonExtracted from Note-type log lines using regex pattern capturing text after "Note:"
Noneevent.category[]Event category arrayArray populated with static value: network
Vendor.EventReceivedTimeevent.createdTimestamp when the event was receivedCopied from Vendor.EventReceivedTime
Noneevent.datasetEvent dataset identifierStatic value: windows.dns-debug
Vendor.XIDevent.idDNS transaction ID (XID) from the packetCopied from Vendor.XID
Noneevent.kindEvent categorization kindStatic value: event
Noneevent.moduleEvent module identifierStatic value: windows
Noneevent.type[]Event type arrayArray populated with static value: protocol
Vendor.Directionnetwork.directionDirection of the DNS network packetMapped from Vendor.Direction: Snd โ†’ outbound, Rcv โ†’ inbound
Vendor.Protocolnetwork.transportNetwork transport protocol (udp or tcp)Copied from Vendor.Protocol with lowercase transformation
Vendor.RemoteIPnetwork.typeNetwork address type (ipv4 or ipv6)Determined by CIDR matching on Vendor.RemoteIP: IPv4 subnet โ†’ ipv4, IPv6 subnet or ::1 โ†’ ipv6
Vendor.ThreadIDprocess.thread.idDNS server process thread ID as integerParsed from Vendor.ThreadID using parseInt function
Vendor.ThreadIDprocess.thread.nameDNS server process thread name (hex thread ID)Copied from Vendor.ThreadID
Vendor.RemoteIPserver.addressServer address (DNS server)Conditionally set to Vendor.RemoteIP when Direction=Snd and dns.type=question, or Direction=Rcv and dns.type=response
server.address (indirect)server.domainServer domain nameCopied from server.address when it is not a valid IP
server.address (indirect)server.ipServer IP addressCopied from server.address when it is a valid IP (CIDR match)
Vendor.RemoteIPsource.addressSource address of the DNS packetConditionally set to Vendor.RemoteIP when Direction=Rcv and dns.type=question, or Direction=Rcv and dns.type=response
source.address (indirect)source.domainSource domain nameCopied from source.address when it is not a valid IP
source.address (indirect)source.ipSource IP addressCopied from source.address when it is a valid IP (CIDR match)