我试图将我的表数据从MSSQL Server复制到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.
这是我的conf文件
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}"
}
}
关于sql-server - 如何配置logstash以将数据从MS-SQL服务器传输到elasticsearch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55471699/