无法使用mongoDB配置启动logstash



我使用logstash-1.5.2与mongodb 3.0.4。我正试图用下面的配置启动logstash,这是不工作的。


input{
    stdin{
    }
}
output {
  mongodb {
    database => "logdb"    
    collection => "plain" 
    uri => "mongodb://localhost:27017" 
  } }

I am facing below error:

。/logstash -f conf/mongo.conf

报告的错误是:未初始化常量Mongo::URIParser

请帮。

这个问题是由最新版本的logstash-output-mongodb中的错误引起的。请参阅github上报告的问题。它可以通过更改mongodb插件内的几行来修复。(请小心,因为这是一个黑客解决方案,既不支持身份验证也不支持远程服务器。)

更改mongo的行。这里提到的Rb文件。(路径应该是类似/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-output-mongodb-0.1.4/lib/logstash/outputs/mongodb.rb的东西,你可以在错误信息中找到确切的路径。)

替换:

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

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

和替换:

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

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

我自己在几个logstash设置中遇到过这个问题。每次换行都能奏效

最新更新