VerneMQ plugin_chain_exhausted 身份验证 MySQL

时间:2021-07-09 18:37:08

标签: mysql authorization mqtt mqtt-vernemq

我在 Google kubernets 上有一个正在运行的 VerneMQ(2 个节点的集群)实例,并使用 MySQL (CloudSQL) 进行身份验证。服务器接受通过 TLS 的连接

它工作正常,但几天后我开始在日志中看到此消息:

由于 plugin_chain_exhausted,无法验证来自 X.X.X.X:16609 的客户端 {[],<<"Client-id">>}

客户端应用程序 (paho) 抱怨服务器因“未授权(paho 错误中的代码 = 5)”而拒绝连接

重试几次后,它终于连接上了。但每次都变得越来越难,直到它不再连接

如果我重新启动 VerneMQ,一切都会恢复正常

我目前最多同时连接 3 个客户端。

已连接的客户端在 pub/sub 中没有问题。

在我的配置中,我有(除其他外):

log.console.level=debug
plugins.vmq_diversity=on
vmq_diversity.mysql.* = all of them set
allow_anonymous=off
vmq_diversity.auth_mysql.enabled=on

这就像服务器随着时间的推移而退化。状态网页报告没有问题

我的 verne 服务器是大约一个月前从 git 存储库构建的,并在 docker 容器上运行

可能是什么原因? 我还能检查什么来找到可能的原因?也许是多样性配置错误?

谢谢

1 个答案:

答案 0 :(得分:0)

快速解释 plugin_chain_exhausted 日志:使用 Verne,您可以运行多个身份验证/授权插件,并且它们将在链中进行检查。如果一个插件允许客户端,它就会进入。如果没有插件允许客户端,你会看到上面的日志。

但这并不能解释您所描述的行为。我想我没见过。

无论如何,首先要检查的是您是否真的运行了多个插件。例如:您是否禁用了 vmq.passwd 和 vmq.acl 插件?