使用翻译/查找字段丰富 json

问题描述 投票:0回答:1

我正在尝试使用名为“country”的额外字段来丰富我拥有的 JSON 文件(我知道可能已经有一些 OOTB 查找,但我正在尝试针对其他用例手动执行此操作。)。我是在翻译过滤器的帮助下完成此操作的:

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 包含:

{"remote_addr": "7.7.7.7", "ioc":"false"}

并且 ip_list.json 包含:

{"ip": "7.7.7.7", "country":"sweden"}

但是,它总是默认返回“未知”,这是不应该的,因为该字段存在于字典路径中?

我尝试了不同的json文件,但结果是相同的。我希望它能在查找/翻译中找到国家/地区字段并将其添加到主 json 文件中。

标准输出包含:

{
     "@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"
}
elasticsearch logstash
1个回答
0
投票

翻译过滤器在从字典创建的 JSON 哈希中查找源字段。 ip_list.json 应该包含

{"7.7.7.7": "sweden"}

过滤器不会在字典中搜索包含匹配值的键(即查看值是否有任何“ip”键与源字段匹配)。

© www.soinside.com 2019 - 2024. All rights reserved.