我正在尝试使用jdbc将数据从PostgreSQL导出到Elastic搜索。我的conf文件中有以下代码:
input {
jdbc {
jdbc_connection_string => "jdbc:postgresql://localhost:5432/db_office"
jdbc_user => "postgres"
jdbc_password => "useruser"
jdbc_validate_connection => true
jdbc_driver_library => "D:\logstash-6.0.0\logstash-6.0.0\config\postgresql-42.0.0.jre6.jar"
jdbc_driver_class => "org.postgresql.Driver"
statement => "SELECT * from customers"
# clean_run => true
}
}
output {
elasticsearch {
index => "poi_201708"
document_type => "poi"
document_id => "%{gid}" # unique id require
hosts => "localhost:9200"
}
# stdout {
# codec => rubydebug
# }
}
filter {
mutate {
convert => ["location", "geo_point"]
}
}
在我的表格中,位置字段类型为文本。但我想将其更改为“ geo_location”。我知道我可以在导出数据后更改为geo_point。但是我正在尝试是否可以在导出时进行转换。当我尝试上面的conf文件时,出现以下错误:
Pipeline aborted due to error {:pipeline_id=>"main", :exception=>#<LogStash::ConfigurationError: translation missing: en.logstash.agent.configuration.invalid_plugin_register>, :backtrace=>["D:/logstash-6.0.0/logstash-6.0.0/vendor/bundle/jruby/2.3.0/gems/logstash-filter-mutate-3.1.6/lib/logstash/filters/mutate.rb:186:in `block in register'", "org/jruby/RubyHash.java:1343:in `each'", "D:/logstash-6.0.0/logstash-6.0.0/vendor/bundle/jruby/2.3.0/gems/logstash-filter-mutate-3.1.6/lib/logstash/filters/mutate.rb:184:in `register'", "D:/logstash-6.0.0/logstash-6.0.0/logstash-core/lib/logstash/pipeline.rb:388:in `register_plugin'", "D:/logstash-6.0.0/logstash-6.0.0/logstash-core/lib/logstash/pipeline.rb:399:in `block in register_plugins'", "org/jruby/RubyArray.java:1734:in `each'", "D:/logstash-6.0.0/logstash-6.0.0/logstash-core/lib/logstash/pipeline.rb:399:in `register_plugins'", "D:/logstash-6.0.0/logstash-6.0.0/logstash-core/lib/logstash/pipeline.rb:801:in `maybe_setup_out_plugins'", "D:/logstash-6.0.0/logstash-6.0.0/logstash-core/lib/logstash/pipeline.rb:409:in `start_workers'", "D:/logstash-6.0.0/logstash-6.0.0/logstash-core/lib/logstash/pipeline.rb:333:in `run'", "D:/logstash-6.0.0/logstash-6.0.0/logstash-core/lib/logstash/pipeline.rb:293:in `block in start'"], :thread=>"#<Thread:0x5acabbfa@D:/logstash-6.0.0/logstash-6.0.0/logstash-core/lib/logstash/pipeline.rb:290 run>"}
[2018-08-14T17:02:06,659][ERROR][logstash.agent ] Failed to execute action {:id=>:main, :action_type=>LogStash::ConvergeResult::FailedAction, :message=>"Could not execute action: LogStash::PipelineAction::Create/pipeline_id:main, action_result: false", :backtrace=>nil}