logstash 使用translate/lookup字段丰富JSON

qxgroojn  于 11个月前  发布在  Logstash
关注(0)|答案(1)|浏览(170)

我正在尝试用一个名为“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"
}

liwlm1x9

liwlm1x91#

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

{"7.7.7.7": "sweden"}

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

相关问题