sql >> Base de Datos >  >> NoSQL >> MongoDB

¿No puede iniciar logstash usando la configuración de mongoDB?

El problema se debe a un error en la última versión de logstash-output-mongodb. Consulte el problema informado en github . Se puede arreglar cambiando algunas líneas dentro del complemento mongodb. (Tenga cuidado, ya que esta es una solución pirateada que no admite autenticación ni servidores remotos).

Cambie las líneas de su archivo mongo.rb como se menciona aquí . (la ruta debe ser algo como /opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-output-mongodb-0.1.4/lib/logstash/outputs/mongodb.rb Puede encontrar la ruta exacta en su mensaje de error).

Reemplazar:

    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)

por:

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

Y reemplaza:

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

por:

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

Yo mismo tuve este problema en varias configuraciones de logstash. Cambiar las líneas funcionó para mí cada vez.