我正在尝试用一个名为“country”的额外字段来丰富一个JSON文件(我知道可能已经有一些OOTB查找,但我正在尝试手动为其他用例做这件事。)。我在translate filter的帮助下做到了这一点:
input {
file {
path => "/Users/Downloads/logs/test1.json"
start_position => "beginning"
sincedb_path => "/dev/null"
codec => "json"
}
}
filter {
translate {
field => "remote_addr"
dictionary_path => "/Users/Downloads/logs/ip_list.json"
refresh_interval => 3600
destination => "country"
fallback => "Unknown"
}
}
output {
stdout { codec => rubydebug }
}
字符串
test1.json包含:
第一个月
ip_list.json包含:{"ip": "7.7.7.7", "country":"sweden"}
个
然而,它总是默认回到“未知”,因为它不应该,因为该字段存在于字典路径?
我尝试了不同的json文件,但结果都是一样的。我希望它能在lookup/translate中找到country字段,并将其添加到主json文件中。
stdout包含:
{
"@timestamp" => 2023-12-10T13:20:00.384715Z,
"log" => {
"file" => {
"path" => "/Users/Downloads/logs/test1.json"
}
},
"country" => "Unknown",
"host" => {
"name" => "uxxx"
},
"ioc" => "false",
"event" => {
"original" => "{\"remote_addr\": \"7.7.7.7\", \"ioc\":\"false\"}"
},
"@version" => "1",
"remote_addr" => "7.7.7.7"
}
型
1条答案
按热度按时间liwlm1x91#
translate过滤器在从字典创建的JSON哈希中查找源字段。ip_list. json应包含
字符串
过滤器不会在字典中搜索包含匹配值的键(即查看任何“ip”键的值是否与源字段匹配)。