Я пытаюсь импортировать некоторые данные JSON в мой кластер Elasticsearch и Kibana, используя logstash и его конфигурацию.Я использую файл JSON с тремя полями.
elasticsearch version used: 6.5.3
logstash version used: 6.5.3
Используемая версия Logstash: 6.5.3
Пример файла JSON: test.json
{"name":"Jonathan","score":"9.9","address":"New Delhi"}
{"name":"Sam","score":"8.9","address":"New York"}
{"name":"Michelle","score":"9.0","address":"California"}
Моя конфигурацияfile: test.config
input{
file{
path => "/Users/amit/elasticsearch/data/test.json"
codec => json
sincedb_path => "/dev/null"
start_position => "beginning"
}
}
filter{
json{
source => "message"
}
mutate{
convert => {
"name" => "text"
"score" => "float"
"address" => "text"
}
}
}
output{
elasticsearch{
hosts => "localhost:9200"
index => "test"
}
stdout { codec => rubydebug }
}
Я пытаюсь импортировать эти данные вasticsearch, используя logstash, используя следующую команду:
bin/logstash -f ../../data/test.config
Но я получаю следующее сообщение об ошибке:
[2018-12-27T20: 18: 41,439] [ОШИБКА] [logstash.pipeline] Ошибка регистрации плагина {: pipe_id => "main",: plugin => "#, #@filter = {\ "name \" => \ "text \", \ "score \" => \ "float \", \ "address \" => \ "text \"}, id => \ "4a292b8b637c63de89c36b730212b3c706307f5fd385080369ac0cbeac3c2\ ", enable_metric => true, period_flush => false >>",: error => "отсутствует перевод: en.logstash.agent.configuration.invalid_plugin_register",: thread => "#"}
[2018-12-27T20: 18: 41,452] [ОШИБКА] [logstash.pipeline] Трубопровод прерван из-за ошибки {: pipe_id => "main",: исключение => #,: обратная трассировка => ["/ Пользователи / Амит / elasticsearch / logstash / logstash-6.5.3 / vendor / bundle / jruby / 2.3.0 / gems / logstash-filter-mutate-3.3.4 / lib / logstash / filters / mutate.rb: 219: в block in register'", "org/jruby/RubyHash.java:1343:in
каждый '"," /Пользователи / amit /asticsearch / logstash / logstash-6.5.3 / vendor / bundle / jruby / 2.3.0 / gems / logstash-filter-mutate-3.3.4 / lib / logstash / filters / mutate.rb: 217: in register'",
"/Users/amit/elasticsearch/logstash/logstash-6.5.3/logstash-core/lib/logstash/pipeline.rb:242:in
register_plugin '"," /Users/amit/elasticsearch/logstash/logstash-6.5.3/logstash-core/lib/logstash/pipeline.rb:253:in block in register_plugins'", "org/jruby/RubyArray.java:1734:in
каждая' "," / Users / amit /asticsearch / logstash / logstash-6.5.3 / logstash-core / lib / logstash / pipeline.rb: 253: in register_plugins'",
"/Users/amit/elasticsearch/logstash/logstash-6.5.3/logstash-core/lib/logstash/pipeline.rb:595:in
Maybe_setup_out_plugins '"," /Users/amit/elasticsearch/logstash/logstash-6.5.3/logstash-core / lib / logstash / pipeline.rb: 263: в start_workers'",
"/Users/amit/elasticsearch/logstash/logstash-6.5.3/logstash-core/lib/logstash/pipeline.rb:200:in
запустите '"," /Users/amit/elasticsearch/logstash/logstash-6.5.3/logstash-core/lib/logstash/pipeline.rb:160:in `block in start '"],: thread => "#"}
[2018-12-27T20: 18: 41,474] [ОШИБКА] [logstash.agent] Не удалосьвыполнить действие {: id =>: main,: action_type => LogStash :: ConvergeResult :: FailedAction,: message => "Не удалось выполнить действие: PipelineAction :: Create, action_result: false ",: backtrace => nil}
[2018-12-27T20: 18: 41,705] [INFO] [logstash.agent] Успешно запущена конечная точка API Logstash {:port => 9600}
Кроме того, если я удалю фильтр mutate из файла test.config, он будет работать нормально.Но я хочу изменить тип переменной score на float.Есть ли проблема при попытке изменить поля во время синтаксического анализа или я что-то упускаю?Спасибо:)