我正在尝试使用 LogStash 将 SQL Server 数据复制到 Elasticsearch,实现我自己的名为 sql.conf
的配置脚本我收到以下错误:
WARNING, using JAVA_HOME while Logstash distribution comes with a bundled JDK
Java HotSpot(TM) 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
Sending Logstash logs to C:/Program Files/Elastic/logstash-7.11.1/logs which is now configured via log4j2.properties
[2021-02-25T14:57:05,899][INFO ][logstash.runner ] Starting Logstash {"logstash.version"=>"7.11.1", "jruby.version"=>"jruby 9.2.13.0 (2.5.7) 2020-08-03 9a89c94bcc Java HotSpot(TM) 64-Bit Server VM 11.0.10+8-LTS-162 on 11.0.10+8-LTS-162 +indy +jit [mswin32-x86_64]"}
[2021-02-25T14:57:06,132][WARN ][logstash.config.source.multilocal] Ignoring the 'pipelines.yml' file because modules or command line options are specified
[2021-02-25T14:57:06,858][INFO ][logstash.config.source.local.configpathloader] No config files found in path {:path=>"C:/Program Files/Elastic/logstash-7.11.1/sql.conf"}
[2021-02-25T14:57:07,136][ERROR][logstash.config.sourceloader] No configuration found in the configured sources.
[2021-02-25T14:57:07,747][INFO ][logstash.agent ] Successfully started Logstash API endpoint {:port=>9600}
[2021-02-25T14:57:12,678][INFO ][logstash.runner ] Logstash shut down.
[2021-02-25T14:57:12,968][FATAL][org.logstash.Logstash ] Logstash stopped processing because of an error: (SystemExit) exit
org.jruby.exceptions.SystemExit: (SystemExit) exit
at org.jruby.RubyKernel.exit(org/jruby/RubyKernel.java:747) ~[jruby-complete-9.2.13.0.jar:?]
at org.jruby.RubyKernel.exit(org/jruby/RubyKernel.java:710) ~[jruby-complete-9.2.13.0.jar:?]
at C_3a_.Program_20_Files.Elastic.logstash_minus_7_dot_11_dot_1.lib.bootstrap.environment.<main>(C:\Program Files\Elastic\logstash-7.11.1\lib\bootstrap\environment.rb:89) ~[?:?]
这是我的sql.conf
input {
jdbc {
jdbc_connection_string => "jdbc:sqlserver://localhost;databaseName=XXX;integratedSecurity=true;"
jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"
jdbc_user => "XXX"
statement => "SELECT * FROM XXX"
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
index => "cs_XXX"
}
}
这里是 logstash.conf
input {
beats {
port => 5044
type => "log"
}
}
output {
elasticsearch {
hosts => "localhost:9200"
manage_template => false
index => "%{[@metadata][beat]}-%{+yyyy.ww}"
document_type => "%{[@metadata][type]}"
}
}
使用的 cmd 行:
bin\logstash -f sql.conf
或
bin\logstash
两个cmd都给出相同的错误
答案 0 :(得分:1)
[logstash.config.source.local.configpathloader] 在路径 {:path=>"C:/Program Files/Elastic/logstash-7.11.1/sql.conf"} 中找不到配置文件
您使用了 -f 的相对路径,以便它在当前目录中查找。它没有找到它。给出正确的相对路径或绝对路径。
答案 1 :(得分:0)
我通过更改 cmd 行中的路径来解决问题
bin\logstash -f sql.conf
到
bin\logstash -f .\config\sql.conf
答案 2 :(得分:0)
嘿,请重新检查配置文件的名称。 就我而言,我收到错误,因为名称是 logstash.conf.conf 然后我把它改成了logstash.conf