MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Logstash kann nicht mit der MongoDB-Konfiguration gestartet werden?

Das Problem wird durch einen Fehler in der neuesten Version von logstash-output-mongodb verursacht. Bitte lesen Sie den auf Github gemeldeten Fehler . Es kann behoben werden, indem ein paar Zeilen im Mongodb-Plugin geändert werden. (Bitte seien Sie vorsichtig, da dies eine hackige Lösung ist, die weder Authentifizierung noch Remote-Server unterstützt.)

Ändern Sie die Zeilen Ihrer mongo.rb-Datei wie erwähnt hier . (Pfad sollte so etwas wie /opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-output-mongodb-0.1.4/lib/logstash/outputs/mongodb.rb sein Den genauen Pfad finden Sie in Ihrer Fehlermeldung.)

Ersetzen:

    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)

von:

    client = Mongo::Client.new([ '127.0.0.1:27017' ])
    @db = client.use(@database)

Und ersetzen:

@db.collection(event.sprintf(@collection)).insert(document)

von:

@db.database.collection(event.sprintf(@collection)).insert_one(document)

Ich hatte dieses Problem selbst in mehreren Logstash-Setups. Das Ändern der Zeilen hat bei mir jedes Mal geholfen.