Support of mongodb+srv to connect with Atlas Mongo

Hi,

I am trying to push data coming into Logstash to MongoDB on Atlas. My output configuration is as following:

mongodb {
        id => "logs"
        collection => "logentries"
        database => "logs"
        uri => "mongodb+srv://<user>:<password>@uswest2dev.3qbyg.mongodb.net/logs?ssl=true&w=majority"
        codec => "json"
      }

Seems that the plugin does not know how to interpret "mongodb+srv" which is needed as DNS Seed List to connect to the proper Atlas Mongo node within the cluster.

[ERROR] 2022-02-28 20:23:38.497 [[main]-pipeline-manager] javapipeline - Pipeline error {:pipeline_id=>"main", :exception=>#<Mongo::Error::InvalidURI: MongoDB URI must be in the following format: mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]

Please see the following URL for more information: http://docs.mongodb.org/manual/reference/connection-string/

Bad URI: mongodb+srv://cxmdev_rw1:@uswest2dev.3qbyg.mongodb.net/readAccessLogging?ssl=true&w=majority>, :backtrace=>["/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/mongo-2.0.6/lib/mongo/uri.rb:127:in `initialize'", "/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/mongo-2.0.6/lib/mongo/client.rb:266:in `create_from_uri'", "/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/mongo-2.0.6/lib/mongo/client.rb:150:in `initialize'", "/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-output-mongodb-3.1.5/lib/logstash/outputs/mongodb.rb:55:in `register'", "org/logstash/config/ir/compiler/OutputStrategyExt.java:131:in `register'", "org/logstash/config/ir/compiler/AbstractOutputDelegatorExt.java:68:in `register'", "/usr/share/logstash/logstash-core/lib/logstash/java_pipeline.rb:228:in `block in register_plugins'", "org/jruby/RubyArray.java:1809:in `each'", "/usr/share/logstash/logstash-core/lib/logstash/java_pipeline.rb:227:in `register_plugins'", "/usr/share/logstash/logstash-core/lib/logstash/java_pipeline.rb:585:in `maybe_setup_out_plugins'", "/usr/share/logstash/logstash-core/lib/logstash/java_pipeline.rb:240:in `start_workers'", "/usr/share/logstash/logstash-core/lib/logstash/java_pipeline.rb:185:in `run'", "/usr/share/logstash/logstash-core/lib/logstash/java_pipeline.rb:137:in `block in start'"], "pipeline.sources"=>["/usr/share/logstash/pipeline/logstash.conf"], :thread=>"#<Thread:0x44ec91b1@/usr/share/logstash/logstash-core/lib/logstash/java_pipeline.rb:125 run>"}

[INFO ] 2022-02-28 20:23:38.498 [[main]-pipeline-manager] javapipeline - Pipeline terminated {"pipeline.id"=>"main"}

[ERROR] 2022-02-28 20:23:38.509 [Converge PipelineAction::Create<main>] agent - Failed to execute action {:id=>:main, :action_type=>LogStash::ConvergeResult::FailedAction, :message=>"Could not execute action: PipelineAction::Create<main>, action_result: false", :backtrace=>nil}

[INFO ] 2022-02-28 20:23:38.597 [LogStash::Runner] runner - Logstash shut down.

Is there any support connection string to send data from Logstash into Atlas Mongo clusters?

Thanks,

Zareh

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.