MQTT连接时报错:Error: Unknown property

使用MQTTX连接时,报错:Error: Unknown property
image

排查过程中了解到的已知信息如下:

  • 查看日志有以下信息:2024-07-15T13:10:06.197758+08:00 [warning] msg: unexpected_api_access, mfa: emqx_dashboard_not_found:init/2, line: 25, request: #{bindings => #{},body_length => 0,cert => undefined,has_body => false,headers => #{<<“authorization”>> => <<“******”>>,<<“host”>> => <<“localhost”>>,<<“user-agent”>> => <<“EMQX-Exporter”>>},host => <<“localhost”>>,host_info => undefined,method => <<“GET”>>,path => <<“/api/v4/nodes”>>,path_info => undefined,peer => {{172,22,2,80},45986},pid => <0.16453.52>,port => 80,qs => <<>>,ref => ‘http:dashboard’,scheme => <<“http”>>,sock => {{172,22,2,65},18083},streamid => 3,version => ‘HTTP/1.1’}
    (该信息已经存在很长时间没有做处理)

  • 查看告警信息,有一些告警:


    查看数据桥接,貌似一切正常:

  • 客户端认证使用了HTTP服务,未收到http请求

  • 版本信息:[5.1.5-build.3]

另:该服务为测试环境使用,之前是可以正常使用,期间几个月未使用了,也没有去做过任何调整。本次发现问题后调试过程中已经尝试过重启,依然无效。求指点!

问题应该是 MQTTX 客户端这边的,你可能填写了 CONNECT Property,但我实在想不出来是填了个什么东西会导致这种错误。

Property 都在这里,你检查一下填了什么:


不太像是客户端的问题,我使用的默认的参数,并且使用同样的参数,只修改服务器地址和端口连接其他的服务器是没问题的。
也试过用其他客户端工具连接服务器,也是连接不上。

目前最大的问题是客户端连接不上的同时在服务器上看不到任何跟连接有关的日志记录,我还有其他方式可以确认服务器的问题吗?

但你提供的日志信息跟这个问题没有关系。

  1. 打开emqx 的 debug 日志,看看消息流程的交互过程。
  2. 再不行就抓个包,看看 emqx 返回的 CONNACK 报文有没有问题。

之前没有打印debug日志,重新记录了一下,麻烦帮忙看看:

2024-07-16T10:44:38.662435+08:00 [debug] msg: emqx_connection_terminated, mfa: emqx_connection:terminate/2, line: 669, peername: 172.22.0.246:15960, reason: {shutdown,tcp_closed}, tag: SOCKET
2024-07-16T10:44:38.662830+08:00 [info] msg: terminate, mfa: emqx_connection:terminate/2, line: 674, peername: 172.22.0.246:15960, reason: {shutdown,tcp_closed}
2024-07-16T10:44:39.096247+08:00 [debug] msg: emqx_connection_terminated, mfa: emqx_connection:terminate/2, line: 669, peername: 172.22.2.144:29840, reason: {shutdown,tcp_closed}, tag: SOCKET
2024-07-16T10:44:39.097013+08:00 [info] msg: terminate, mfa: emqx_connection:terminate/2, line: 674, peername: 172.22.2.144:29840, reason: {shutdown,tcp_closed}

另外想问一下,这种情况使用日志追踪功能追踪不了吗,追踪时日志内容始终为空

日志是说 172.22.0.246:15960 这个客户端主动断开了 TCP 链接。
日志追踪是可以用的, 需要指定 clientid。

创建的追踪如下:

使用相同的客户端ID进行连接:
image

尝试了多次,也换过客户端ID尝试,日志中依然没有数据。
另外,日志级别已设置为DEBUG,在连接报错“ Error: Unknown property”时,查看控制台日志也未发现有相关记录。

分别在服务端和客户端抓包分析一下。