添加 `stdout` 后,LogStash JDBC 插件不执行

LogStash JDBC plugin is not executing once `stdout` is added

我想调试我的 Logstash JDBC 插件执行,所以我添加了 stdout { codec => rubydebug }。一旦我添加并开始执行我的 logstash 文件,它没有启动并且抛出错误。

没有stdout { codec => rubydebug }这一行。它工作正常。

请找出下面的多头

[2018-06-26T11:29:29,988][ERROR][logstash.agent           ] Failed to execute action {:action=>LogStash::PipelineAction::Create/pipeline_id:main, :exception=>"LogStash::ConfigurationError", :message=>"Expected one of #, => at line 25, column 10 (byte 883) after output {\n\t  elasticsearch {\n\t\thosts => [\"localhost:9200\"]\n\t\tindex => \"replacement_local100\"\n\t\tstdout ", :backtrace=>["D:/1SearchEngine/logstash-6.2.4/logstash-6.2.4/logstash-core/lib/logstash/compiler.rb:42:in `compile_imperative'", "D:/1SearchEngine/logstash-6.2.4/logstash-6.2.4/logstash-core/lib/logstash/compiler.rb:50:in `compile_graph'", "D:/1SearchEngine/logstash-6.2.4/logstash-6.2.4/logstash-core/lib/logstash/compiler.rb:12:in `block in compile_sources'", "org/jruby/RubyArray.java:2486:in `map'", "D:/1SearchEngine/logstash-6.2.4/logstash-6.2.4/logstash-core/lib/logstash/compiler.rb:11:in `compile_sources'", "D:/1SearchEngine/logstash-6.2.4/logstash-6.2.4/logstash-core/lib/logstash/pipeline.rb:51:in `initialize'", "D:/1SearchEngine/logstash-6.2.4/logstash-6.2.4/logstash-core/lib/logstash/pipeline.rb:169:in `initialize'", "D:/1SearchEngine/logstash-6.2.4/logstash-6.2.4/logstash-core/lib/logstash/pipeline_action/create.rb:40:in `execute'", "D:/1SearchEngine/logstash-6.2.4/logstash-6.2.4/logstash-core/lib/logstash/agent.rb:315:in `block in converge_state'", "D:/1SearchEngine/logstash-6.2.4/logstash-6.2.4/logstash-core/lib/logstash/agent.rb:141:in `with_pipelines'", "D:/1SearchEngine/logstash-6.2.4/logstash-6.2.4/logstash-core/lib/logstash/agent.rb:312:in `block in converge_state'", "org/jruby/RubyArray.java:1734:in `each'", "D:/1SearchEngine/logstash-6.2.4/logstash-6.2.4/logstash-core/lib/logstash/agent.rb:299:in `converge_state'", "D:/1SearchEngine/logstash-6.2.4/logstash-6.2.4/logstash-core/lib/logstash/agent.rb:166:in `block in converge_state_and_update'", "D:/1SearchEngine/logstash-6.2.4/logstash-6.2.4/logstash-core/lib/logstash/agent.rb:141:in `with_pipelines'", "D:/1SearchEngine/logstash-6.2.4/logstash-6.2.4/logstash-core/lib/logstash/agent.rb:164:in `converge_state_and_update'", "D:/1SearchEngine/logstash-6.2.4/logstash-6.2.4/logstash-core/lib/logstash/agent.rb:90:in `execute'", "D:/1SearchEngine/logstash-6.2.4/logstash-6.2.4/logstash-core/lib/logstash/runner.rb:348:in `block in execute'", "D:/1SearchEngine/logstash-6.2.4/logstash-6.2.4/vendor/bundle/jruby/2.3.0/gems/stud-0.0.23/lib/stud/task.rb:24:in `block in initialize'"]}

请找到我的 logstash 配置文件。

input {
  jdbc {
    jdbc_driver_library => "D:SearchEngine\data\ojdbc8.jar"
    jdbc_driver_class => "Java::oracle.jdbc.OracleDriver"
    jdbc_connection_string => "jdbc:oracle:thin:@localhost:1525/mydb"       
    jdbc_user => "user"
    jdbc_password => "aug2012"
    jdbc_fetch_size => "50000"
    statement => "select * from product"    
    }
}

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

我正在使用 logstash 6.2.4 版本

您将 stdout 输出放在了错误的位置。见下文:

output {
  stdout { codec => rubydebug }          <--- it must be here
  elasticsearch {
    hosts => ["localhost:9200"]
    index => "replacement_local100"
  }
}