# Logstatsh throws cluster - Exception in monitor thread while connecting to server

**URL:** <https://discuss.elastic.co/t/logstatsh-throws-cluster-exception-in-monitor-thread-while-connecting-to-server/312049>\
**Category:** Logstash\
**Tags:** docker\
**Created:** [August 13, 2022, 11:15am UTC](https://discuss.elastic.co/t/logstatsh-throws-cluster-exception-in-monitor-thread-while-connecting-to-server/312049 "2022-08-13T11:15:27Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![momarious](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/momarious/32/109605_2.png) [@momarious](https://discuss.elastic.co/u/momarious)\
**Post date:** [August 13, 2022, 11:15am UTC](https://discuss.elastic.co/t/logstatsh-throws-cluster-exception-in-monitor-thread-while-connecting-to-server/312049/1 "2022-08-13T11:15:27Z")

</div>

Hello everyone this is my first post in this forum, well I would like to synchronize a MongoDB database with Elasticsearch thanks to Logstash, I used version 8.3.3 of ELK with a MongoDriver4.4. I have configured the pipeline input

```auto
input {
	jdbc {
		jdbc_driver_class => "com.wisecoders.dbschema.mongodb.JdbcDriver"
		jdbc_driver_library => "/usr/share/logstash/logstash-core/lib/jars/mongojdbc4.4.jar"
		jdbc_connection_string => "jdbc:mongodb://localhost:27017/testdb"
		jdbc_user => ""
		schedule => "* * * * *"
		statement => "db.address.find({},{'_id': false});"
	}
}

```

The Docker service has been configured as follows

```auto
  logstash:
    build:
      context: logstash/
      args:
        ELK_VERSION: $ELK_VERSION
    volumes:
      - ./logstash/pipeline/:/usr/share/logstash/pipeline/:ro
      - ./logstash/config/:/usr/share/logstash/config/:ro
      - ./logstash/empty/:/usr/share/logstash/.DbSchema/logs/:rw

      - ./logstash/driver/bson-4.7.1.jar/:/usr/share/logstash/logstash-core/lib/jars/bson-4.7.1.jar/:ro
      - ./logstash/driver/bson-record-codec-4.7.1.jar/:/usr/share/logstash/logstash-core/lib/jars/bson-record-codec-4.7.1.jar/:ro
      - ./logstash/driver/graal-sdk-22.2.0.jar/:/usr/share/logstash/logstash-core/lib/jars/graal-sdk-22.2.0.jar/:ro
      - ./logstash/driver/gson-2.9.0.jar/:/usr/share/logstash/logstash-core/lib/jars/gson-2.9.0.jar/:ro
      - ./logstash/driver/icu4j-71.1.jar/:/usr/share/logstash/logstash-core/lib/jars/icu4j-71.1.jar/:ro
      - ./logstash/driver/js-22.2.0.jar/:/usr/share/logstash/logstash-core/lib/jars/js-22.2.0.jar/:ro
      - ./logstash/driver/js-scriptengine-22.2.0.jar/:/usr/share/logstash/logstash-core/lib/jars/js-scriptengine-22.2.0.jar/:ro
      - ./logstash/driver/mongodb-driver-core-4.7.1.jar/:/usr/share/logstash/logstash-core/lib/jars/mongodb-driver-core-4.7.1.jar/:ro
      - ./logstash/driver/mongodb-driver-sync-4.7.1.jar/:/usr/share/logstash/logstash-core/lib/jars/mongodb-driver-sync-4.7.1.jar/:ro
      - ./logstash/driver/mongojdbc4.4.jar/:/usr/share/logstash/logstash-core/lib/jars/mongojdbc4.4.jar/:ro
      - ./logstash/driver/regex-22.2.0.jar/:/usr/share/logstash/logstash-core/lib/jars/regex-22.2.0.jar/:ro
      - ./logstash/driver/truffle-api-22.2.0.jar/:/usr/share/logstash/logstash-core/lib/jars/truffle-api-22.2.0.jar/:ro  
    ports:
      - "5000:5000/tcp"
      - "5000:5000/udp"
      - "9600:9600"
    environment:
      LS_JAVA_OPTS: "-Xmx256m -Xms256m"
    networks:
      - elk
    depends_on:
      - elasticsearch

```

When I run the docker-compose up command, all services start until I get the following error:

```auto
 [INFO] 2022-08-13 11:03:00.965 [cluster-ClusterId{value='62f784e43c2db20a2addfdbe', description='null'}-localhost:27017] cluster - Exception in monitor thread while connecting to server localhost:27017
logstash_1 | com.mongodb.MongoSocketOpenException: Exception opening socket
logstash_1 | at com.mongodb.internal.connection.SocketStream.open(SocketStream.java:70) ~[mongodb-driver-core-4.7.1.jar:?]
logstash_1 | at com.mongodb.internal.connection.InternalStreamConnection.open(InternalStreamConnection.java:180) ~[mongodb-driver-core-4.7.1.jar:?]
logstash_1 | at com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable.lookupServerDescription(DefaultServerMonitor.java:193) [mongodb-driver-core-4.7.1.jar:?]
logstash_1 | at com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:157) [mongodb-driver-core-4.7.1.jar:?]
logstash_1 | at java.lang.Thread.run(Thread.java:834) [?:?]
logstash_1 | Caused by: java.net.ConnectException: Connection refused (Connection refused)
logstash_1 | at java.net.PlainSocketImpl.socketConnect(Native Method) ~[?:?]
logstash_1 | at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:399) ~[?:?]
logstash_1 | at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:242) ~[?:?]
logstash_1 | at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:224) ~[?:?]
logstash_1 | at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:403) ~[?:?]
logstash_1 | at java.net.Socket.connect(Socket.java:609) ~[?:?]
logstash_1 | at com.mongodb.internal.connection.SocketStreamHelper.initialize(SocketStreamHelper.java:107) ~[mongodb-driver-core-4.7.1.jar:?]
logstash_1 | at com.mongodb.internal.connection.SocketStream.initializeSocket(SocketStream.java:79) ~[mongodb-driver-core-4.7.1.jar:?]
logstash_1 | at com.mongodb.internal.connection.SocketStream.open(SocketStream.java:65) ~[mongodb-driver-core-4.7.1.jar:?]

```

It seems that Logstash can't read the database, I don't know if it's missing, I've tested many configurations and versions but without success. A little help would be nice and thanks in advance.

---

<div class="post-metadata">

**Author:** ![Ugo\_Sangiorgi](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/ugo_sangiorgi/32/146361_2.png) [@Ugo\_Sangiorgi](https://discuss.elastic.co/u/Ugo_Sangiorgi)\
**Post date:** [August 13, 2022, 3:44pm UTC](https://discuss.elastic.co/t/logstatsh-throws-cluster-exception-in-monitor-thread-while-connecting-to-server/312049/2 "2022-08-13T15:44:57Z")

</div>

Hi @momarious it looks like you are running Logstash in a docker container, in this case `localhost` will resolve to the container itself. If your database has an external ip address, then use this one instead of localhost or make logstash use `network: host` and use `host.docker.internal` as hostname.

---

<div class="post-metadata">

**Author:** ![momarious](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/momarious/32/109605_2.png) [@momarious](https://discuss.elastic.co/u/momarious)\
**Post date:** [August 13, 2022, 5:06pm UTC](https://discuss.elastic.co/t/logstatsh-throws-cluster-exception-in-monitor-thread-while-connecting-to-server/312049/3 "2022-08-13T17:06:38Z")

</div>

Hello Sir @Ugo_Sangiorgi, I just tested the two options below and the error still persists

```auto
jdbc_connection_string => "jdbc:mongodb://mongo/testdb"

```

```auto
jdbc_connection_string => "jdbc:mongodb://mongo:27018/testdb"

```

I also tried to use a Mongo cluster before, but still nothing.

```auto
jdbc_connection_string => "jdbc:mongodb+srv://username:password@xxx.mongodb.net/testdb?retryWrites=true&w=majority"

```

---

<div class="post-metadata">

**Author:** ![Ugo\_Sangiorgi](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/ugo_sangiorgi/32/146361_2.png) [@Ugo\_Sangiorgi](https://discuss.elastic.co/u/Ugo_Sangiorgi)\
**Post date:** [August 13, 2022, 5:50pm UTC](https://discuss.elastic.co/t/logstatsh-throws-cluster-exception-in-monitor-thread-while-connecting-to-server/312049/4 "2022-08-13T17:50:22Z")

</div>

@momarious You are getting a `com.mongodb.MongoSocketOpenException: Exception opening socket` that is giving you a ` Connection refused` that is likely a network problem.

You could try to set logstash debug to trace: `log.level: trace` so you have a better understanding of how the mongodb library is trying to access an external url: [logstash.yml | Logstash Reference [8.3] | Elastic](https://www.elastic.co/guide/en/logstash/current/logstash-settings-file.html)

---

<div class="post-metadata">

**Author:** ![momarious](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/momarious/32/109605_2.png) [@momarious](https://discuss.elastic.co/u/momarious)\
**Post date:** [August 14, 2022, 2:10pm UTC](https://discuss.elastic.co/t/logstatsh-throws-cluster-exception-in-monitor-thread-while-connecting-to-server/312049/5 "2022-08-14T14:10:17Z")

</div>

@Ugo_Sangiorgi I rebuilt the Docker service with a Mongo database configuration in Local

```auto
jdbc_connection_string => "jdbc:mongodb://mongo:27017/testdb"

```

without the mongo:27017 database existing, and it gave me the same statck tract.

```auto
logstash | org.logstash.config.ir.compiler.ComputeStepSyntaxElement@3fdc2b9c
logstash | [2022-08-14T13:59:53,692][INFO][logstash.javapipeline][firstpipeline] Pipeline Java execution initialization time {"seconds"=>6.34}
logstash | [2022-08-14T13:59:54,018][INFO][logstash.inputs.jdbc][firstpipeline] ECS compatibility is enabled but `target` option was not specified. This may cause fields to be set at the top-level of the event where they are likely to clash with the Elastic Common Schema. It is recommended to set the `target` option to avoid potential schema conflicts (if your data is ECS compliant or non-conflicting, feel free to ignore this message)
logstash | [2022-08-14T13:59:54,040][INFO][logstash.javapipeline][firstpipeline] Pipeline started {"pipeline.id"=>"firstpipeline"}
logstash | [2022-08-14T13:59:54,063][DEBUG][logstash.javapipeline] Pipeline started successfully {:pipeline_id=>"firstpipeline", :thread=>"#<Thread:0x795c7042 run>"}
logstash | [2022-08-14T13:59:54,125][DEBUG][org.logstash.execution.PeriodicFlush][firstpipeline] Pushing flush onto pipeline.
logstash | [2022-08-14T13:59:54,189][TRACE][logstash.agent] Converge results {:success=>true, :failed_actions=>[], :successful_actions=>["id: firstpipeline, action_type: LogStash::PipelineAction::Create"]}
logstash | [2022-08-14T13:59:54,281][INFO][logstash.agent] Pipelines running {:count=>1, :running_pipelines=>[:firstpipeline], :non_running_pipelines=>[]}
logstash | [2022-08-14T13:59:54,747][DEBUG][logstash.inputs.jdbc][firstpipeline][419a6b60e3e009bab89969a864f8de86a02344dbec9e8945efb4d241eba45fd6] loading /usr/share/logstash/logstash-core/lib/jars/mongojdbc4.4.jar
logstash | /usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/rufus-scheduler-3.0.9/lib/rufus/scheduler/cronline.rb:77: warning: constant ::Fixnum is deprecated
logstash | [2022-08-14T13:59:55,936][DEBUG][logstash.instrument.periodicpoller.jvm] collector name {:name=>"ParNew"}
logstash | [2022-08-14T13:59:55,936][DEBUG][logstash.instrument.periodicpoller.jvm] collector name {:name=>"ConcurrentMarkSweep"}
logstash | [2022-08-14T13:59:59,695][DEBUG][org.logstash.execution.PeriodicFlush][firstpipeline] Pushing flush onto pipeline.
logstash | Aug 14, 2022 2:00:00 PM com.wisecoders.dbschema.mongodb.JdbcDriver connect
logstash | INFO: Connect URL: mongodb://mongo:27017/testdb
logstash | Aug 14, 2022 2:00:00 PM com.wisecoders.dbschema.mongodb.JdbcDriver connect
logstash | INFO: Connect URL: mongodb://mongo:27017/testdb
logstash | Aug 14, 2022 2:00:00 PM com.wisecoders.dbschema.mongodb.JdbcDriver connect
logstash | INFO: MongoClient URL: mongodb://mongo:27017/testdb rewritten as mongodb://mongo:27017/testdb
logstash | Aug 14, 2022 2:00:00 PM com.wisecoders.dbschema.mongodb.JdbcDriver connect
logstash | INFO: MongoClient URL: mongodb://mongo:27017/testdb rewritten as mongodb://mongo:27017/testdb
logstash | [2022-08-14T14:00:00,966][DEBUG][org.mongodb.driver.cluster][firstpipeline][419a6b60e3e009bab89969a864f8de86a02344dbec9e8945efb4d241eba45fd6] Updating cluster description to {type=UNKNOWN, servers=[{address=mongo:27017, type=UNKNOWN, state=CONNECTING}]
logstash | [2022-08-14T14:00:01,006][INFO][org.mongodb.driver.client][firstpipeline][419a6b60e3e009bab89969a864f8de86a02344dbec9e8945efb4d241eba45fd6] MongoClient with metadata {"driver": {"name": "mongo-java-driver|sync", "version": "4.7.1"}, "os": {"type": "Linux", "name": "Linux", "architecture": "amd64", "version": "5.10.16.3-microsoft-standard-WSL2"}, "platform": "Java/Eclipse Adoptium/11.0.15+10"} created with settings MongoClientSettings{readPreference=primary, writeConcern=WriteConcern{w=null, wTimeout=null ms, journal=null}, retryWrites=true, retryReads=true, readConcern=ReadConcern{level=null}, credential=null, streamFactoryFactory=null, commandListeners=[], codecRegistry=ProvidersCodecRegistry{codecProviders=[ValueCodecProvider{}, BsonValueCodecProvider{}, DBRefCodecProvider{}, DBObjectCodecProvider{}, DocumentCodecProvider{}, IterableCodecProvider{}, MapCodecProvider{}, GeoJsonCodecProvider{}, GridFSFileCodecProvider{}, Jsr310CodecProvider{}, JsonObjectCodecProvider{}, BsonCodecProvider{}, EnumCodecProvider{}, com.mongodb.Jep395RecordCodecProvider@4575139e]}, clusterSettings={hosts=[mongo:27017], srvServiceName=mongodb, mode=SINGLE, requiredClusterType=UNKNOWN, requiredReplicaSetName='null', serverSelector='null', clusterListeners='[]', serverSelectionTimeout='30000 ms', localThreshold='30000 ms'}, socketSettings=SocketSettings{connectTimeoutMS=10000, readTimeoutMS=0, receiveBufferSize=0, sendBufferSize=0}, heartbeatSocketSettings=SocketSettings{connectTimeoutMS=10000, readTimeoutMS=10000, receiveBufferSize=0, sendBufferSize=0}, connectionPoolSettings=ConnectionPoolSettings{maxSize=100, minSize=0, maxWaitTimeMS=120000, maxConnectionLifeTimeMS=0, maxConnectionIdleTimeMS=2147483647, maintenanceInitialDelayMS=0, maintenanceFrequencyMS=60000, connectionPoolListeners=[], maxConnecting=2}, serverSettings=ServerSettings{heartbeatFrequencyMS=10000, minHeartbeatFrequencyMS=500, serverListeners='[]', serverMonitorListeners='[]'}, sslSettings=SslSettings{enabled=false, invalidHostNameAllowed=false, context=null}, applicationName='null', compressorList=[], uuidRepresentation=UNSPECIFIED, serverApi=null, autoEncryptionSettings=null, contextProvider=null}
logstash | [2022-08-14T14:00:01,037][INFO][org.mongodb.driver.cluster][firstpipeline][419a6b60e3e009bab89969a864f8de86a02344dbec9e8945efb4d241eba45fd6] Cluster description not yet available. Waiting for 30000 ms before timing out
logstash | [2022-08-14T14:00:01,060][DEBUG][org.mongodb.driver.connection][firstpipeline][419a6b60e3e009bab89969a864f8de86a02344dbec9e8945efb4d241eba45fd6] Closing connection connectionId{localValue:1}
logstash | [2022-08-14T14:00:01,061][DEBUG][org.mongodb.driver.connection][firstpipeline][419a6b60e3e009bab89969a864f8de86a02344dbec9e8945efb4d241eba45fd6] Closing connection connectionId{localValue:2}
logstash | [2022-08-14T14:00:01,067][INFO][org.mongodb.driver.cluster][firstpipeline][419a6b60e3e009bab89969a864f8de86a02344dbec9e8945efb4d241eba45fd6] Exception in monitor thread while connecting to server mongo:27017
logstash | com.mongodb.MongoSocketOpenException: Exception opening socket
logstash | at com.mongodb.internal.connection.SocketStream.open(SocketStream.java:70) ~[mongodb-driver-core-4.7.1.jar:?]
logstash | at com.mongodb.internal.connection.InternalStreamConnection.open(InternalStreamConnection.java:180) ~[mongodb-driver-core-4.7.1.jar:?]
logstash | at com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable.lookupServerDescription(DefaultServerMonitor.java:193) [mongodb-driver-core-4.7.1.jar:?]
logstash | at com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:157) [mongodb-driver-core-4.7.1.jar:?]
logstash | at java.lang.Thread.run(Thread.java:829) [?:?]
logstash | Caused by: java.net.ConnectException: Connection refused (Connection refused)
logstash | at java.net.PlainSocketImpl.socketConnect(Native Method) ~[?:?]
logstash | at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:412) ~[?:?]
logstash | at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:255) ~[?:?]
logstash | at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:237) ~[?:?]
logstash | at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[?:?]
logstash | at java.net.Socket.connect(Socket.java:609) ~[?:?]
logstash | at com.mongodb.internal.connection.SocketStreamHelper.initialize(SocketStreamHelper.java:107) ~[mongodb-driver-core-4.7.1.jar:?]
logstash | at com.mongodb.internal.connection.SocketStream.initializeSocket(SocketStream.java:79) ~[mongodb-driver-core-4.7.1.jar:?]
logstash | at com.mongodb.internal.connection.SocketStream.open(SocketStream.java:65) ~[mongodb-driver-core-4.7.1.jar:?]
logstash | ... 4 more

```

Looks like it has nothing to do with the DB. Maybe a missing plugin something like that ??

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [September 11, 2022, 2:10pm UTC](https://discuss.elastic.co/t/logstatsh-throws-cluster-exception-in-monitor-thread-while-connecting-to-server/312049/6 "2022-09-11T14:10:27Z")

</div>

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