Le problème est causé par un bogue dans la dernière version de logstash-output-mongodb. Veuillez consulter le problème signalé sur github . Il peut être corrigé en modifiant quelques lignes dans le plugin mongodb. (Veuillez faire attention, car il s'agit d'une solution hacky qui ne prend en charge ni l'authentification ni les serveurs distants.)
Modifiez les lignes de votre fichier mongo.rb comme mentionné ici
. (le chemin doit être quelque chose comme /opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-output-mongodb-0.1.4/lib/logstash/outputs/mongodb.rb
Vous pouvez trouver le chemin exact dans votre message d'erreur.)
Remplacer :
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)
par :
client = Mongo::Client.new([ '127.0.0.1:27017' ])
@db = client.use(@database)
Et remplacez :
@db.collection(event.sprintf(@collection)).insert(document)
par :
@db.database.collection(event.sprintf(@collection)).insert_one(document)
J'ai moi-même eu ce problème dans plusieurs configurations de logstash. Changer les lignes a fait l'affaire pour moi à chaque fois.