问题标签 [mqtt-vernemq]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
219 浏览

mysql - VerneMQ MySQL 身份验证

我已经在我的云服务器中安装了 vernemq,一切似乎都运行良好。但是从任何客户端,它都无法使用用户名/密码身份验证连接代理。身份验证基于 MySQL,Lua 脚本运行良好。但奇怪的是身份验证不起作用或出现问题。我无法追踪任何内容,因为 Log 中没有显示任何内容。我看到的唯一调试消息如下:

[debug] <0.227.0>@plumtree_broadcast:schedule_lazy_tick:720 0ms 邮箱遍历,在10000ms内安排下一次惰性广播,最小间隔为10000ms

操作系统:Ubuntu 18.04 MySQL 版本:5.7.29 VerneMQ 版本:1.10

0 投票
0 回答
56 浏览

docker - 如何通过 docker 让 bash shell 访问 vernemq 映像?

我是 vernemq 的新手。我想使用 docker 运行 vernmq 映像,然后在我的节点上启动它,特别是我想在我的 vernemq 映像中安装 Openssl。我正在使用 ubuntu 18.04。我使用这个命令:docker run -it erlio/docker-vernemq

这两张图片代表输出:在此处输入图像描述

在此处输入图像描述

执行时,我无法打开与我的 vernemq 图像相关的 bash:docker run -it ubuntu

请问你能帮帮我吗?

0 投票
1 回答
605 浏览

mqtt - 获取连接到 Vernemq 代理的活跃客户端数量

我有一个在 docker 容器中运行的 Vernemq 代理,我想知道给定时间点的活动客户端数量。我目前正在使用该$SYS/broker/queue/processes主题来获取活动进程,但我不确定这是否正确获取连接客户端数量的指标。我浏览了mqttSYS主题,它说我可以通过主题获取当前连接的客户端的数量。$SYS/broker/clients/connected但是,当我订阅该主题时,我没有看到任何消息。Vernemq 是否需要任何配置更改来获取连接的客户端?或者是否有任何其他指标可以用于相同的?

docker compose 文件如下所示

谢谢。

0 投票
1 回答
421 浏览

python - 在 VerneMQ webhook 中传递消息

我正在使用来自 VerneMQ 插件的演示 webhooks (python)

但演示只有auth_on_register,auth_on_publishauth_on_subscribe

我的消息已通过所有链,但 sub 看不到来自 pub 的消息

我想我错过了on_deliver链条,但我在 python 中找不到任何示例,github 仅在 erlang https://github.com/vernemq/vernemq_dev/blob/master/src/on_deliver_hook.erl

问题:有没有什么方法、函数可以用python语言将消息传递给sub?

0 投票
2 回答
308 浏览

mosquitto - 向 vernemq 发送 mosquitto 消息

我已经在两台不同的服务器上安装了 VerneMQ 和 Mosquitto,我正在尝试从 Mosquitto 服务器发送测试消息,以查看它们是否在 VerneMQ 服务器上收到。为简单起见,我们称它们为:VerneMQ - S1 Mosquitto - S2

在 S1 上:

S1,VerneMQ 的配置应该允许任何连接:

从 S2

如何检查消息是否在另一台机器上收到。运行 vmq-admin session show 不提供任何输出

日志中是否有我可以看到正在处理的消息的位置?

0 投票
1 回答
850 浏览

mqtt-vernemq - vernemq 集群节点因 remote_node_not_available 而终止

我正在尝试使用 StatefulSet 在 Kubernetes 上设置 vernemq 集群。以下是我的清单文件。

当每个 vernemq pod 启动时,我看到以下日志

集群状态看起来不错

但我很担心

是什么导致集群中的节点断开连接?还是正常行为?

0 投票
1 回答
201 浏览

mqtt - 如果在 CONNECT 期间客户端没有提供 clientID,VerneMQ(1.10.3 部署为容器)的行为是什么?

我们想了解当 Connect 请求中没有 clientID 并且客户端仅提供注册的用户名、密码、keepalive 会话为 0、连接超时为 60 X 60 X 1000 时 verneMQ 的行为

在这种情况下,会话是如何由 VerneMQ 管理的。如果在连接此类客户端时重新启动 VerneMQ,在客户端重新启动后,我们观察到客户端订阅的主题丢失。为什么会出现这种行为?

0 投票
4 回答
1780 浏览

kubernetes - 无法在 Istio 代理后面的 k8s 中建立与 VerneMQ 集群的 mqtt 连接

我正在设置 k8s 本地 k8s 集群。对于测试,我在使用 kubeadm 设置的 vm 上使用单节点集群。我的要求包括在 k8s 中运行 MQTT 集群 (vernemq),并通过 Ingress (istio) 进行外部访问。

在不部署入口的情况下,我可以通过 NodePort 或 LoadBalancer 服务连接 (mosquitto_sub)。

Istio 是使用安装的istioctl install --set profile=demo

问题

我正在尝试从集群外部访问 VerneMQ 代理。入口(Istio 网关)——在这种情况下似乎是完美的解决方案,但我无法建立与代理的 TCP 连接(也无法通过入口 IP,也无法直接通过 svc/vernemq IP)。

那么,如何通过 Istio 入口从外部客户端建立这个 TCP 连接?

我试过的

我创建了两个命名空间:

  • 使用 istio 暴露 – 使用 istio 代理注入
  • 带负载均衡器的暴露 - 没有 istio 代理

exposed-with-loadbalancer命名空间中,我使用 LoadBalancer 服务部署了 vernemq。它有效,这就是我知道可以访问 VerneMQ 的方式(其中mosquitto_sub -h <host> -p 1883 -t hello,主机是 svc/vernemq 的 ClusterIP 或 ExternalIP)。仪表板可在主机上访问:8888/status,仪表板上的“客户端在线”增量。

我在其中exposed-with-istio部署了带有 ClusterIP 服务、Istios 网关和 VirtualService 的 vernemq。istio-proxy 注入后,mosquitto_sub 不能通过 svc/vernemq IP 订阅,也不能通过 istio 入口(网关)IP 订阅。命令只是永远挂起,不断重试。同时,vernemq 仪表板端点可通过服务 ip 和 istio 网关访问。

我猜必须配置 istio 代理才能使 mqtt 工作。

这是 istio-ingressgateway 服务:

kubectl describe svc/istio-ingressgateway -n istio-system

这是来自 istio-proxy 的调试日志 kubectl logs svc/vernemq -n test istio-proxy

这是来自 istio-ingressagateway 的日志。IP10.244.243.205属于 VerneMQ pod,而不是服务(可能是有意的)。

我的配置

vernemq-istio-ingress.yaml vernemq-loadbalancer-service.yaml istio.yaml

Kiali 截图是否暗示 ingressgateway 只将 HTTP 流量转发到服务并吃掉所有 TCP? Kiali 图形选项卡

UPD

根据建议,这是输出:

** 但是您的特使日志显示了一个问题:特使杂项未知错误代码 104 详细信息由对等方和特使池 [C5648] 客户端断开连接重置连接。

istioctl proxy-config listeners vernemq-c945876f-tvvz7.exposed-with-istio

第一个 | grep 8888 和 | grep 1883

** 此外,请运行:istioctl proxy-config endpoints 和 istioctl proxy-config routes。

istioctl proxy-config endpoints vernemq-c945876f-tvvz7.exposed-with-istio grep 1883

istioctl proxy-config routes vernemq-c945876f-tvvz7.exposed-with-istio

0 投票
1 回答
593 浏览

docker - 集群在不同机器上运行的 vernemq docker 容器

我希望这将是一个简单的,只需在第二个实例的docker-compose.yml文件中使用以下代码段

但这似乎不起作用。

第二个实例的日志确认它正在尝试集群:

虽然第一个实例的日志根本没有显示任何内容。

在第二个实例中,我可以确认端点是可访问的:

然后在第一个实例的日志中,我看到一个完全预期的错误,并确认我已经到达第一个实例

这可能与从 docker 容器中看到的 ip 地址是172.19.0.2而外部的10. ....

还尝试添加第一个实例的主机名known_hosts无济于事。

请指教。

我正在使用 erlio/docker-vernemq:1.10.0

0 投票
1 回答
119 浏览

mqtt-vernemq - VERNEMQ 使用 SQL Server 进行身份验证

我正在尝试设计一些东西来使用 SQL Server 后端对我的 VERNEMQ mqtt 代理客户端进行身份验证。我已经阅读了 webhook 并且可以使用它,但交易破坏者是它不支持 HTTPS。想知道我们是否可以让 vernemq 直接从 SQL Server 进行身份验证,我已经看到了 cockroach DB/Mongo/MySQL 上的现有实现。