sql >> データベース >  >> NoSQL >> MongoDB

mongoDB configを使用してlogstashを開始できませんか?

    この問題は、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セットアップでこの問題を自分で抱えていました。線を変えることは私にとって毎回トリックでした。




    1. 正規表現と並べ替えを使用したMongodbの単純なプレフィックスクエリは低速です

    2. Meteorのmongoクエリで読み取り設定を指定する方法

    3. コンソールアプリケーションからのMongoDBリクエストを追跡する方法

    4. TypeError:UserSchemaはコンストラクターではありません(スキーマはコンストラクターMongoDBではありません)