当前尝试使用以下设置填充员工索引:
CONF
input {
jdbc {
jdbc_driver_library => "~/sqljdbc_6.2/enu/mssql-jdbc-6.2.1.jre8.jar"
jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"
jdbc_connection_string => "jdbc:sqlserver://SERVER;user=USER;password=PASSWORD"
jdbc_user => "DB_USER"
jdbc_password => "DB_PASSWORD"
jdbc_validate_connection => true
jdbc_validation_timeout => -1
statement => "SELECT * FROM [dbo].Employee ORDER BY ID"
type => "employee"
}
}
filter {
}
output {
}
注意:conf文件的 filter 和 output 部分故意空白
LINUX命令
sudo /usr/share/logstash/bin/logstash -f /home/ubuntu/Employee-pipeline.conf --path.settings /etc/logstash/ --path.data /var/lib/logstash_new
结果 看起来Logstash不知道或没有访问〜/ sqljdbc ... *。jar
的权限我还确认了 mssql-jdbc-6.2.1.jre8.jar 存在
但是,当我将路径更改为 /home/ubuntu/sqljdbc_6.2/enu/mssql-jdbc-6.2.1.jre8.jar 时,它会成功运行。
所以〜/ 与 / home / ubuntu
相同这是在将我们的Elastic Stack从v5.5升级到v5.6之后开始发生的。另外,请注意,如果我们使用logstash服务运行相同的conf文件,则不会发生这种情况。