MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Impossible de démarrer logstash à l'aide de la configuration mongoDB ?

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.