当从MQTT source发送消息之后,MQTT sink断开连接,并且产生告警

环境信息

  • EMQX 版本:5.0.8
  • 操作系统及版本:centos
  • 其他

问题描述

1.MQTT source连接rabbitmq-mqtt 插件,MQTT sink连接EMQX并将来自rabbitmq-mqtt的消息原封不动的发布到EMQX,在规则的运行统计;
2.当从rabbitmq-mqtt发送消息时,EMQX前端规则概览界面显示所有的消息均命中通过,但此时sink连接会自动断开,并且有告警产生。消息并没有被丢弃

配置文件及日志




贴一下 emqx 日志?


好像是rabbitmq那边会传送默认的topic,然后导致了报错

补全上图

@Shawn 请帮忙看下原因,谢谢

这个已经修过了,应该会包含在我们下一个版本。

@Shawn 请问这个会不会是rabbitmq-mqtt plugin的问题呢

请问能否先给一个新的镜像呢,我们现在遇到这个bug有点棘手 :grinning:

5.0.9 还没发的 需要再等下的

@heeejianbo 好的,能告知一下这是什么原因导致的吗?谢谢

@heeejianbo 请问能告知具体的问题原因吗?我看暂时能否规避这个问题,感谢

不好意思,没看到消息回复晚了。能贴你 data 目录下的配置文件吗?

在 emqx 的安装目录下,找这个文件:
data/configs/cluster-override.conf

这里面注意一下 bridges 这个层级的配置:

bridges {
  mqtt {
    acb {
      connector {
        bridge_mode = false
        clean_start = true
        keepalive = "60s"
        mode = "cluster_shareload"
        proto_ver = "v4"
        server = "localhost:1883"
        ssl {enable = false, verify = "verify_peer"}
      }
      direction = "egress"
      payload = "${payload}"
      remote_qos = 1
      remote_topic = "t"
      retain = false
    }
  }

看一下是不是少了 payload 字段。这个字段必须有的,表示发到远程的消息内容是什么样式,没有的话加上去,重启 emqx。

好的,我试试

@Shawn我测试了一下,我加上了payload之后,当我从mqtt source发送消息过来之后,sink连接又会断掉