sql >> Databasteknik >  >> NoSQL >> MongoDB

Kan du inte starta logstash med mongoDB config?

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.




  1. Bästa sättet att lagra/få värden refererade från en lista i Mongo/RectiveMongo?

  2. Yeoman, Mongoose och MongoDB Ställningar

  3. Maximalt antal databaser som stöds av MongoDB

  4. Hämta relevansbeställt resultat från textfråga på MongoDB Collection med C#-drivrutinen