Hi!
I’m working with Filebeat (v8.15.3) to ingest Windows ETW events (provider.name: Microsoft-Windows-DNSServer) and noticed that the keywords field is represented as a large decimal integer (e.g., "keywords": "9223372036854775808"). In raw Windows XML events, the same value appears as a hexadecimal mask like <keywords>0x8000000000000000</keywords>, often mapped to human-readable names (e.g., QUERY_RECEIVED for DNS events).
Questions:
- Decimal vs. Hexadecimal:
Why does Filebeat convert thekeywordsvalue to a decimal string instead of preserving the original hex format (0x...)? Is this intentional for compatibility reasons? - Human-Readable Keywords:
Is there a built-in way in Filebeat or Logstash to map these decimal/hex values back to their human-readable names (e.g.,QUERY_RECEIVED)? For example:- Could Filebeat’s
translateprocessor or a custom script resolve this using Microsoft’s official keyword masks? - Are there plans to add this as a feature?
- Could Filebeat’s
- Workaround Suggestions:
If this isn’t natively supported, would you recommend:- Using a Logstash filter (e.g.,
rubyortranslate) to convert the decimal value to hex and then map it to keywords? - Modifying the Filebeat pipeline to retain the hex format?
- Using a Logstash filter (e.g.,
Example Event Snippet:
"winlog": {
"keywords": "9223372036854775808", // Decimal representation of 0x8000000000000000
}
Desired Output:
"winlog": {
"keywords": "QUERY_RECEIVED", // Human-readable name
"keywords_hex": "0x8000000000000000" // Optional hex format
}
Thanks for your time and insights!