Logstash 自定义插件 - 无法在 Logstash 中创建与 Neo4j 的会话

Logstash Custom Plugin - Unable to create session to Neo4j within Logstash

我在使用自定义插件时遇到问题,不知道该去哪里。

我正在构建自定义 Logstash 输出插件来构建我们的 Neo4j 模型。 运行 Logstash 中包含 jruby 的外部代码,我可以毫无问题地创建到我们服务器的会话。如果 运行 作为插件,我最终会遇到未定义的方法错误。

undefined method graph_db' for #<Neo4j::Server::CypherSession:0x3922b0a5>

http://pastebin.com/kV5rHxpF

/opt/logstash/bin/logstash version
logstash 2.1.1

Neo4j 社区版本 2.3.1

Ruby Gem(使用具有类似行为的早期版本进行测试) neo4j - 6.0.4

我可以用下面的插件代码生成错误。

require "logstash/outputs/base"
require "logstash/namespace"
require 'neo4j'

class LogStash::Outputs::neo4jGraph < LogStash::Outputs::Base
config_name "neo4jgraph"
def register
@session = Neo4j::Session.open(:server_db,"http://localhost:7474", basic_auth: { username: "", password: "" })
end

def receive(event)
end
end

有什么想法或方向吗?

谢谢!

因为您使用的是 jRuby,所以 neo4j-core gem 假设您要使用嵌入式模式而不是服务器模式。我们应该找到一个更好的方法来解决这个问题,但目前如果您使用 WITHOUT_NEO4J_EMBEDDED 环境变量和值 true,它应该加载正确的文件并解决您的问题。

编辑:

仅供参考,我已经提出了一个拉取请求,希望这会更容易:https://github.com/neo4jrb/neo4j-core/pull/244