#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.