该问题是由最新版本的 logstash-output-mongodb 中的错误引起的。请参阅issue reported on github。可以通过更改 mongodb 插件中的几行来修复它。 (请小心,因为这是一个既不支持身份验证也不支持远程服务器的 hacky 解决方案。)
如here 所述更改 mongo.rb 文件的行。 (路径应该类似于/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-output-mongodb-0.1.4/lib/logstash/outputs/mongodb.rb 您可以在错误消息中找到确切的路径。)
替换:
uriParsed=Mongo::URIParser.new(@uri)
conn = uriParsed.connection({})
if uriParsed.auths.length > 0
uriParsed.auths.each do |auth|
if !auth['db_name'].nil?
conn.add_auth(auth['db_name'], auth['username'], auth['password'], nil)
end
end
conn.apply_saved_authentication()
end
@db = conn.db(@database)
作者:
client = Mongo::Client.new([ '127.0.0.1:27017' ])
@db = client.use(@database)
并替换:
@db.collection(event.sprintf(@collection)).insert(document)
作者:
@db.database.collection(event.sprintf(@collection)).insert_one(document)
我自己在几个 logstash 设置中遇到了这个问题。每次换行都对我有用。