I am using [@metadata] fields for filtering and outputs. I have an issue with how the field is behaving when there are two @metadata fields with different names. Below is a stripped down config I am using for testing:
input { tcp { codec => json_lines { charset => "CP1252" } port => 80 type => "eventlog" add_field => { "[@metadata][source]" => "sysmon_raw" } ssl_enable => false } } filter{ if [@metadata][source] == "sysmon_raw" { if [Channel] != "Microsoft-Windows-Sysmon/Operational" { mutate { add_field => { "[@metadata][eventlog]" => "eventlog_raw" } } } } } output { if [@metadata][eventlog] == "eventlog_raw" { stdout { codec => rubydebug { metadata => true } } } }
This works as expected and data with [@metadata][eventlog] gets printed to screen. But when I use an output to account for both @metadata fields, the data goes into both outputs.
Example output:
output { if [@metadata][source] == "sysmon_raw" { kafka { bootstrap_servers => "host1.com:9092" topic_id => "sysmon_raw" compression_type => "lz4" codec => "json" } } if [@metadata][eventlog] == "eventlog_raw" { kafka { bootstrap_servers => "host2.com:9092" topic_id => "win_eventlog_raw" compression_type => "lz4" codec => "json" } } }
The data from the [@metadata][eventlog] field foes into the [@metadata][source] output, but not the opposite way around. How can I use the @metadata field to ensure only the data from each field goes into the correct output. I have tried removing the [@metadata][source] field but no luck removing it.
Example of the output of the data:
{ "Task" => 0, "Keywords" => -9223372036854775808, "Message" => "%SYSTEM32%\\LOCATIONNOTIFICATIONWINDOWS.EXE was allowed to run.", "EventType" => "INFO", "UserData" => "", "Opcode" => "Info", "type" => "eventlog", "SeverityValue" => 2, "Version" => 0, "UserID" => "S-1-5-21-3710767279-2211127119-3867209129-1003", "@version" => "1", "host" => "10.223.57.0", "ExecutionThreadID" => 25072, "OpcodeValue" => 0, "SourceModuleType" => "im_msvistalog", "@metadata" => { "eventlog" => "eventlog_raw", "source" => "sysmon_raw" }, "Channel" => "Microsoft-Windows-AppLocker/EXE and DLL", "Hostname" => "hostname.com", "SourceName" => "Microsoft-Windows-AppLocker", "ExecutionProcessID" => 996, "Severity" => "INFO", "AccountType" => "User" "EventReceivedTime" => "2017-12-12 14:38:32", "SourceModuleName" => "eventlogs", "ProviderGuid" => "{CBDA4DBF-8D5D-4F69-9578-BE14AA540D22}", "@timestamp" => 2017-12-12T19:40:58.149Z, "port" => 65524, "EventTime" => "2017-12-12 14:38:30", "EventID" => 8002, "Domain" => "domain.name", "RecordNumber" => 334, "AccountName" => "user"