如何从 Debezium 通过 SSH 连接到 MongoDB

How to connect to a MongoDB over SSH from Debezium

我想在我的 Debezium 中通过 ssh 连接到一个 MongoDB 实例。

与 MongoDB 的连接不需要 ssh,它正在通过,但使用 SSH 我收到超时异常。

我正在使用下面提到的常规 kafka-connect 属性。

name=XYZ 
connector.class=io.debezium.connector.mongodb.MongoDbConnector 
tasks.max=1 
database.list=XXXXXX:27017 
connection.url=xxxx:27017 
mongodb.hosts=xxxx:27017 
mongodb.name=xyz 
collection.whitelist=xyz.collection1 
database.whitelist=xyz 
converter.class=org.apache.kafka.connect.json.JsonConverter 
key.converter=org.apache.kafka.connect.json.JsonConverter 
value.converter=org.apache.kafka.connect.json.JsonConverter 
key.converter.schemas.enable=false 
value.converter.schemas.enable=false 

我相信你指的是 SSL,而不是 SSH...

为 Mongo 设置 TLS 的文档是 here,我不确定 Debezium 如何处理它,但我确实看到了 mongodb.ssl.enabled 属性 在 Debezium 文档上


如果您的字面意思是 SSH,那么您可以设置一个 SSH 隧道,连接到您的数据库1,但是这将 外部 到 Kafka Connect 进程,您将连接到 127.0.0.1:(tunnel_port)

复制自 - how to connect to mongodb server via ssh tunnel

每个 connect worker 上建立隧道。

ssh -fN -l root -i path/to/id_rsa -L 9999:localhost:27017 mongo-host.com

然后更新您的连接配置以使用 127.0.0.1:9999

1免责声明:未测试