Загрузка данных JSON в Elasticsearch и Kibana с использованием конфигурации logstash [ConfigurationError: перевод отсутствует] - PullRequest
0 голосов
/ 27 декабря 2018

Я пытаюсь импортировать некоторые данные 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.Есть ли проблема при попытке изменить поля во время синтаксического анализа или я что-то упускаю?Спасибо:)

1 Ответ

0 голосов
/ 27 декабря 2018

https://www.elastic.co/guide/en/logstash/current/plugins-filters-mutate.html#plugins-filters-mutate-convert

Кажется, вы не можете использовать «текст», используйте «имя» => «строка»

...