如何配置 logstash 将数据从 MS-SQL 服务器传输到 elasticsearch

How to configure logstash to transfer data from MS-SQL server to elasticsearch

我正在尝试将我的 table 数据从 MSSQL 服务器复制到 elasticsearch,在浏览了一些文档之后,我为 logstash 编写了配置文件,当我从命令提示符 运行 文件时,我收到此消息:

"J_3a_.ELK.logstash_minus_6_dot_6_dot_2.logstash_minus_core.lib.logstash.pipeline.block in start_input" I have the MSSQL database in aws-RDS.

这是我的配置文件

input {
    jdbc {
        jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"
        jdbc_driver_library => "J:\Java\sqljdbc_4.2\enu\jre8\sqljdbc42.jar"
        jdbc_connection_string => 
       "jdbc:sqlserver://skunestdevdb.czdnys4mper2.ap-southeast- 
         2.rds.amazonaws.com;database=skudevusr;user= 
       <my_username>;password=<my_password>"
        jdbc_user => "<my_username>"
        jdbc_password => "<myPassword>#"
        statement => "select * from product"
    }
}
output{
    elasticsearch{
      hosts => ["localhost:9200"]
      index => ["skunest_qa"]
    }
}

我似乎无法弄清楚这里有什么问题,我在 conf 文件中提供了必要的详细信息,命令行卡住显示上面的消息。我试过从连接字符串中删除用户名和密码。 求助!!

试试这个:

input {  
jdbc {
    # SqlServer jdbc connection string to your database, productdb
    #  "jdbc:sqlserver://HostName\instanceName;database=DBName;user=UserName;password=Password" 
    jdbc_connection_string => "jdbc:sqlserver://localhost\SQLExpress;database=productdb;user=sa;password=test@123"
    # The user you want to execute your statement as
    jdbc_user => nil
    # The path to your downloaded jdbc driver
    jdbc_driver_library => "C:/Program Files/sqljdbc_6.0/enu/jre8/sqljdbc42.jar"
    # The name of the driver class for SqlServer
    jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"
    # Query for testing purpose
    statement => "SELECT * from product"
}
}
output {  
    elasticsearch {
     hosts => ["localhost:9200"]
     index => "logstash-%{+YYYY.MM.dd}"
 }

   }