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

Kan du ikke starte logstash ved hjælp af mongoDB config?

Problemet er forårsaget af en fejl i den seneste version af logstash-output-mongodb. Se venligst problemet rapporteret på github . Det kan rettes ved at ændre et par linjer inde i mongodb plugin. (Vær forsigtig, da dette er en hacket løsning, som hverken understøtter godkendelse eller fjernservere.)

Skift linjerne i din mongo.rb-fil som nævnt her . (stien skal være noget i stil med /opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-output-mongodb-0.1.4/lib/logstash/outputs/mongodb.rb Du kan finde den nøjagtige sti i din fejlmeddelelse.)

Erstat:

    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)

af:

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

Og udskift:

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

af:

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

Jeg havde selv dette problem i flere logstash-opsætninger. At ændre linjerne gjorde det trick for mig hver gang.




  1. MongoDB - Sådan vælger du kun numeriske strenge / Tjek om strengen er numerisk i mongo-shell

  2. Mongoose udløber data, men beholder i databasen

  3. MongoDB via Mongoose JS - Hvad er findByID?

  4. Django sessioner