MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Impossibile avviare logstash utilizzando la configurazione di mongoDB?

Il problema è causato da un bug nell'ultima versione di logstash-output-mongodb. Consulta il problema segnalato su github . Può essere risolto modificando alcune righe all'interno del plugin mongodb. (Si prega di fare attenzione, poiché si tratta di una soluzione hacky che non supporta né l'autenticazione né i server remoti.)

Modifica le righe del tuo file mongo.rb come menzionato qui . (il percorso dovrebbe essere qualcosa come /opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-output-mongodb-0.1.4/lib/logstash/outputs/mongodb.rb Puoi trovare il percorso esatto nel tuo messaggio di errore.)

Sostituisci:

    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)

di:

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

E sostituisci:

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

di:

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

Ho riscontrato questo problema in diverse configurazioni di logstash. Cambiare le linee ha funzionato per me ogni volta.