我正在尝试向 Logstash 1.4.2 添加一个自定义过滤器,该过滤器作为 Debian 软件包安装。还安装了contrib 插件 ( http://logstash.net/docs/1.4.2/contrib-plugins )。此过滤器建立与 sqlite 数据库的连接,为此它使用 JDBC sqlite 驱动程序:
require "logstash/filters/base"
require "logstash/namespace"
require "jdbc/sqlite3"
require "java"
class LogStash::Filters::MyFilter < LogStash::Filters::Base
(...)
public
def register
if @database.nil?
raise "You must specify 'database => ...' in your filter"
elsif not File.exists?(@database)
raise "The database does not exist"
end
url = "jdbc:sqlite:" + @database
Java::OrgSqlite::JDBC #initialize the driver
@connection = java.sql.DriverManager.getConnection(url)
@logger.info("Using database", :path => @database)
end # def register
(...)
end # class LogStash::Filters::MyFilter
但是,当我尝试启动 logstash 时,我在日志中收到以下错误:
“无法加载 Java 类 org.sqlite.JDBC”
我尝试将sqlite-jdbc-3.7.2.jar
contrib 插件提供的文件放置到多个位置,但到目前为止,我无法弄清楚自定义插件所需的 JAR 的正确位置是什么,或者它是否是配置问题。
有任何想法吗?