Logstash NaN 值处理

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

我在使用 Logstash 时遇到问题,它无法处理 NaN 值。

[ERROR][logstash.codecs.json     ][main][] JSON parse error, original data now in message field {:message=>"Non-standard token 'NaN': enable JsonParser.Feature.ALLOW_NON_NUMERIC_NUMBERS to allow\n at ...}

我有多个字段从数据源传入 NaN。它们通常是

float
int
,但也可以是 NaN。我浏览了elastic论坛本身的讨论,我找不到任何答案。

尤其是我遇到的问题是几年前有人问过但没有答案: https://discuss.elastic.co/t/json-codec-dealing-with-nan-inf/138611

我怎样才能允许logstash工作ALLOW_NON_NUMERIC_NUMBERS,就像错误中所说的那样?

我的logstash的kafka_properties如下:我在.yml文件中没有任何额外的配置更改。我正在使用默认的一切。

input {
kafka {
    bootstrap_servers => "MY_SERVER"
    topics => [
        MY_SOURCE_1,
        MY_SOURCE_2
    ]
    codec => json
    decorate_events=> true
}
}
filter {
  mutate{
    add_field => { "[topic_name]" => "%{[@metadata][kafka][topic]}"}
  }
}
output {
  elasticsearch {
    hosts => ["MY_SERVER:9200"]
    data_stream=>"true"
  }
}

提前致谢。

elasticsearch logstash logstash-configuration
1个回答
0
投票

看起来RAW数据结构有问题。为了诊断问题,我建议您更新logstashconf并检查传入的数据格式。这是一个为您提供的 Logstash.conf 示例。

input {
  kafka {
      bootstrap_servers => "MY_SERVER"
      topics => [
          MY_SOURCE_1,
          MY_SOURCE_2
      ]
#      codec => json
      decorate_events=> true
  }
}
filter {
  mutate{
    add_field => { "[topic_name]" => "%{[@metadata][kafka][topic]}"}
  }
}
output {
  stdout {}
}

我禁用了 Logstash 输入部分中的 JSON 编码。保存此 yaml 并在终端上运行logstash。

./bin/logstash -f /path/to/your/config/test.yml

检查终端上的输出,如果不是正确的 JSON,则需要处理 RAW 数据。

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