logstash: неизвестная настройка ‘»index”’ для elasticsearch

#mysql #elasticsearch #logstash

#mysql #elasticsearch #logstash

Вопрос:

Я новичок в концепции эластичного поиска для установления соединения с MySQL. Я следовал нескольким руководствам по установке, но получаю следующие ошибки: неизвестная настройка «индекс» и «хост» для elasticsearch

Вывод

 sudo -Hu root /usr/share/logstash/bin/logstash --path.settings /etc/logstash/
  

ВОЗВРАТ:

 > Sending Logstash logs to /usr/share/logstash/logs which is now configured via log4j2.properties 
> [2019-04-20T17:48:47,293][INFO ][logstash.runner ] Starting Logstash {"logstash.version"=>"7.0.0"} 
> [2019-04-20T17:48:53,873][ERROR][logstash.outputs.elasticsearch] Unknown setting '"document_type"' for elasticsearch 
> [2019-04-20T17:48:53,878][ERROR][logstash.outputs.elasticsearch] Unknown setting '"hosts"' for elasticsearch > [2019-04-20T17:48:53,878][ERROR][logstash.outputs.elasticsearch] Unknown setting '"index"' for elasticsearch 
> [2019-04-20T17:48:53,891][ERROR][logstash.agent ] Failed to execute action {:action=>LogStash::PipelineAction::Create/pipeline_id:main, :exception=>"LogStash::ConfigurationError", :message=>"Something is wrong with your configuration.", :backtrace=>["/usr/share/logstash/logstash-core/lib/logstash/config/mixin.rb:86:inconfig_init'", "/usr/share/logstash/logstash-core/lib/logstash/outputs/base.rb:60:in initialize'", "org/logstash/config/ir/compiler/OutputStrategyExt.java:232:ininitialize'", "org/logstash/config/ir/compiler/OutputDelegatorExt.java:48:in initialize'", "org/logstash/config/ir/compiler/OutputDelegatorExt.java:30:ininitialize'", "org/logstash/plugins/PluginFactoryExt.java:239:in plugin'", "org/logstash/plugins/PluginFactoryExt.java:137:inbuildOutput'", "org/logstash/execution/JavaBasePipelineExt.java:50:in initialize'", "/usr/share/logstash/logstash-core/lib/logstash/java_pipeline.rb:23:ininitialize'", "/usr/share/logstash/logstash-core/lib/logstash/pipeline_action/create.rb:36:in execute'", "/usr/share/logstash/logstash-core/lib/logstash/agent.rb:325:inblock in converge_state'"]}
> [2019-04-20T17:48:54,190][INFO ][logstash.agent ] Successfully started Logstash API endpoint {:port=>9600}
> [2019-04-20T17:48:59,066][INFO ][logstash.runner ] Logstash shut down.
  

Вот содержимое файла logstash.conf:

 input {
  jdbc {
    jdbc_connection_string => "jdbc:mysql://localhost:3306/archief"
    # The user we wish to execute our statement as
    jdbc_user => "root"
    jdbc_password => "pswxxx"
    # The path to our downloaded jdbc driver
    jdbc_driver_library => "/usr/share/java/mysql-connector-java-8.0.15.jar"
    jdbc_driver_class => "com.mysql.jdbc.Driver"
    # our query
    statement => "SELECT * FROM archief"
    }
  }
output {
  stdout { codec => json_lines }
  elasticsearch {
  "hosts" => ["localhost:9200"]
  "index" => "archief"
  }
}
  

Ответ №1:

В имени параметров нет двойных кавычек.

 output {
  stdout { codec => json_lines }
  elasticsearch {
    hosts => ["localhost:9200"]
    index => "archief"
  }
}
  

Комментарии:

1. Выглядел многообещающе, но выдает ту же ошибку. Самое странное, что, похоже, он загружает какой-то другой конфигурационный файл, который я не могу найти, потому что он выдает ошибку ‘Unknown setting'»document_type»‘ ‘, а document_type не указан.

2. Есть ли у вас какой-либо другой файл в каталоге logstash conf? Если в вашей конфигурации нет document_type опции, она, вероятно, пытается загрузить и другой файл. Какова конфигурация в вашем logstash.yml ?

3. решено, conf был расположен в /etc/logstash/conf.d/ даже при использовании —path.settings /etc/logstash/

4. --path.settings указывает только на каталог, содержащий logstash.yml файл, чтобы изменить каталог конфигурации, который вам нужно использовать --path.config или -f

Ответ №2:

У меня была такая же проблема, и я решил ее, изменив версию logstash с 7.4.2 на 6.3.2.

Logstash 6.3.2 ссылка