我正在尝试将数据从elasticsearch导入到sql server数据库中,我已经使用logstash完成了从sqlserver到弹性搜索的数据导入,我反转了输入和输出,但是它抛出了错误,如第二个屏幕所示:
答案 0 :(得分:1)
错误显示在日志中
找不到任何名为“ jdbc”的输出插件。
它可以作为社区插件使用,尽管不确定它是否可以与Logstash 7一起使用:
答案 1 :(得分:1)
我已经成功完成了。您可以看到我的博客或配置。
博客: Output to SQL database by Logstash
好。现在我们需要安装“ logstash”输出JDBC插件。如果您没有该插件,这非常重要。Ya!您不需要“输入”插件,因为它是默认设置。但是您需要输出JDBC插件。这真的很重要。
> bin\logstash-plugin.bat install logstash-output-jdbc
config:
input
{
elasticsearch {
hosts => [“localhost:9200″]
index => “yourindex"
}
}
output {
jdbc{
driver_jar_path => “C:\MSSQLJDBC\sqljdbc_4.2\enu\jre8\sqljdbc42.jar"
connection_string => “jdbc:sqlserver://localhost:1433;databaseName=databasename;user=username;password=userpassword"
statement => [ “INSERT into DB.TMP.samsamt (w, test1, test2, kkk) VALUES(?,?,?,?)", “client_num", “consignee_name", “@timestamp","host" ]
}
}
操作
> bin\logstash.bat -f config\elk.conf
该语句将成为转换设计部分。您需要映射语句中想要的列。
(w, test1, test2, kkk)
是结构化表格列的一部分。
“client_num", “consignee_name", “@timestamp","host"
是Elasticsearch中的映射列。
答案 2 :(得分:0)
答案 3 :(得分:0)
check the below.
input
{
stdin { }
}
output {
jdbc {
driver_jar_path => '/opt/sqljdbc42.jar'
connection_string => "jdbc:sqlserver://server:1433;databaseName=databasename;user=username;password=password"
statement => [ "INSERT INTO log (host, timestamp, message) VALUES(?, ?, ?)", "host", "@timestamp", "message" ]
}
}