emqx5.0.6无法链接Mongodb6.0.0+

环境信息

  • EMQX 版本:4.4.3 ~ 5.0.6
  • 操作系统及版本:amd 64 ubuntu20
  • 其他 Mongodb6.0.1

问题描述

  • 使用Mongodb5.x.x的时候一切正常,当将Mongodb升级到6.0.1时,emqx的验证和授权就都断开了,查看日志有报错。

配置文件及日志

class: error, error: {bad_query,#{<<"$err">> => <<“OP_QUERY is no longer supported. The client driver may require an upgrade. For more details see https://dochub.mongodb.org/core/legacy-opcode-removal">>,<<"code”>> => 5739101,<<“ok”>> => 0.0}}, line: 266, mfa: emqx_connector_mongo:check_worker_health/1, msg: mongo_connection_get_status_exception


我们安排一下 client driver 更新。

请问5.x.x版本修复这个问题了吗,我看更新日志中没有提及

您好,目前还未支持 MongoDB 6.0。

我现在正在使用5.0.17这个社区版本,我发现已经可以添加mongodb6.0了,在emqx的UI上显示成功添加,并且验证可以通过,但是授权出现了问题,日志如下:
[error] msg: query_mongo_error, mfa: emqx_authz_mongodb:authorize/4, line: 95, peername: 27.189.146.123:31910, clientid: d43d391a6150, collection: ‘mqtt-client-acl’, filter: #{username => <<“d43d391a6150”>>}, reason: {resource_error,#{msg => #{error => {error,{error_cannot_parse_response,{op_msg_response,#{<<“$clusterTime”>> => #{<<“clusterTime”>> => {mongostamp,3,1676433705},<<“signature”>> => #{<<“hash”>> => {bin,bin,<<154,152,169,53,17,168,97,179,178,68,184,53,23,27,33,52,204,64,181,252>>},<<“keyId”>> => 7137663646502486022}},<<“code”>> => 73,<<“codeName”>> => <<“InvalidNamespace”>>,<<“errmsg”>> => <<“Failed to parse namespace element”>>,<<“ok”>> => 0.0,<<“operationTime”>> => {mongostamp,3,1676433705}}}}},id => <<“emqx_authz_mongodb:4”>>,name => call_query,request => {find,‘mqtt-client-acl’,#{username => <<“d43d391a6150”>>},#{}},

补充一下,同样的配置,我切换到mongodb5.0.11,认证和授权都是ok的

因为确实还不支持 MongoDB 6.0,无法解析 MongoDB 新版本的响应内容。

有计划在什么时候添加支持吗

目前规划是在今年的 Q2 会提供支持。

我对 MongoDB 不是特别了解,是 MongoDB 5 到 6 中间有什么变化是你特别需要的吗?我这边可以反馈到产品团队。

emqx常用于IoT场景,mongodb6.0对时序数据库的支持加强了,所以支持6.0很有必要。

但是开源版中 MongoDB 只是用于认证,应该用不到时序数据库的功能?

我的意思是 不是很大的公司一般不会用太多数据库,比如我们就用Mongodb做事情,那么认证和授权我也使用Mongodb,EMQX不支持6.0,我也不能升级业务数据库。

了解了,非常感谢,我这边反馈给产品。

多谢支持

请问5.0.26支持mongodb6.0+了吗

在github创建featrue request [Feature] Support MongoDB 6.0 · Issue #11141 · emqx/emqx · GitHub

经过同事确认已经在 5.1.0 支持了 (在这个 issue 里解决的 https://github.com/emqx/emqx/issues/9783)

多谢回复