繁体   English   中英

无法使用mongoDB配置启动Logstash?

[英]Unable to start logstash using mongoDB config?

我在mongodb 3.0.4中使用Logstash-1.5.2。 我正在尝试使用以下配置启动logstash,但该配置不起作用。


input{
    stdin{
    }
}

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

我面临以下错误:

./logstash -f conf / mongo.conf

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

请帮忙。

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

更改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设置中遇到了此问题。 每次换线都对我有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM