MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Não é possível iniciar o logstash usando a configuração do mongoDB?


O problema é causado por um bug na versão mais recente do logstash-output-mongodb. Consulte o problema relatado no github . Isso pode ser corrigido alterando algumas linhas dentro do plugin mongodb. (Tenha cuidado, pois esta é uma solução hacky que não suporta autenticação nem servidores remotos.)

Altere as linhas do seu arquivo mongo.rb conforme mencionado aqui . (o caminho deve ser algo como /opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-output-mongodb-0.1.4/lib/logstash/outputs/mongodb.rb Você pode encontrar o caminho exato em sua mensagem de erro.)

Substituir:
    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)

E substitua:
@db.collection(event.sprintf(@collection)).insert(document)

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

Eu mesmo tive esse problema em várias configurações de logstash. Mudar as linhas fez o truque para mim todas as vezes.