使用logstash的JDBC连接出错

时间:2018-05-17 07:57:10

标签: elasticsearch logstash

我正在尝试使用 Logstash 将我的sqlserver表格转换为 Elasticsearch 。为此我创建了以下配置文件。

input {
  jdbc { 
    jdbc_connection_string => "jdbc:sqlserver://xxx.xxx.x.xxx:1433/DB_name"
    jdbc_user => "devuser"
    jdbc_password => "devuser"
    jdbc_driver_library => "D:/Mssqljdbc/sqljdbc4-2.0.jar"
    jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"
    statement => "SELECT * FROM sample"
    }
  }
output {
  stdout { codec => json_lines }
  elasticsearch {
  hosts => "localhost"
  index => "testmigrate"
  document_type => "data"
  }
}

然后我使用bin\logstash -f sqltable.conf来执行它。 但我得到了

  

错误:Java :: ComMicrosoftSqlserverJdbc :: SQLServerException:端口   编号1433 / DB_name无效。

我检查了我能够ping特定的IP地址,端口也是打开但仍然得到相同的错误。请帮忙

1 个答案:

答案 0 :(得分:1)

经过一番挖掘后,我做了一个小改动,它对我有用。我在DB_name前添加了 databaseName

input {
  jdbc { 
    jdbc_connection_string => "jdbc:sqlserver://xxx.xxx.x.xxx:1433;databaseName=DB_name"
    jdbc_user => "devuser"
    jdbc_password => "devuser"
    jdbc_driver_library => "D:/Mssqljdbc/sqljdbc4-2.0.jar"
    jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"
    statement => "SELECT * FROM sample"
    }
  }
output {
  stdout { codec => json_lines }
  elasticsearch {
  hosts => "localhost"
  index => "testmigrate"
  document_type => "data"
  }
}

很奇怪我没有在任何文档中找到它。