Problemet orsakas av en bugg i den senaste versionen av logstash-output-mongodb. Se problemet som rapporterats på github . Det kan fixas genom att ändra några rader i mongodb-pluginet. (Var försiktig, eftersom detta är en hackig lösning som varken stöder autentisering eller fjärrservrar.)
Ändra raderna i din mongo.rb-fil som nämnts här
. (sökvägen bör vara ungefär /opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-output-mongodb-0.1.4/lib/logstash/outputs/mongodb.rb
Du kan hitta den exakta sökvägen i ditt felmeddelande.)
Byt ut:
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)
av:
client = Mongo::Client.new([ '127.0.0.1:27017' ])
@db = client.use(@database)
Och byt ut:
@db.collection(event.sprintf(@collection)).insert(document)
av:
@db.database.collection(event.sprintf(@collection)).insert_one(document)
Jag hade det här problemet själv i flera logstash-inställningar. Att ändra linjerna gjorde susen för mig varje gång.