400 BAD_REQUEST:<<“{config_update_crashed,{badmatch,{error,{scan_invalid_utf8, EMQX v5 设置出错解决方法

400 BAD_REQUEST:<<“{config_update_crashed,{badmatch,{error,{scan_invalid_utf8, << XXXXXXXXX>>,#{filename=>[”/var/lib/emqx/configs/cluster-overrid.conf"],include_dirs=>[[“var/lib/emqx/configs”]]

在这里插入图片描述

错误原因

复制下面代码到请求体内更新一次,再更新一次即可复现该错误。

 {
     "clientId":"${clientid}",
     "event":"${event}",
     "username":"${username}"
 }

在EMQX Dashboard设置webhook 请求体内容的时候是复制/黏贴进去的,之前以为是加入了未知的空格、中文标点符号或其他字符,导致解析出错。而且一旦设置出错将导致EMQX服务端整个崩溃,新增、修改、删除将都无法操作,需要重新安装服务端才能解决。

解决思路

EMQX v5 升级了Dashboard,以前需要在配置文件修改的方式都升级到web控制台即可操作,但核心还是写到了配置文件里。这个配置文件就是cluster-override.conf,所以我们找到这个文件修改为正确的格式即可

解决方案(docker部署方式)

1. 进入docker容器

docker exec it 容器ID bash

2. 修改cluster-override.conf

cd /opt/emqx/data/configs
vi cluster-override.conf 

在这里插入图片描述

一般都是请求体错误导致,所以修改正确的请求体即可。
vi命令 docker默认没安装,需要自行安装

3. 重启EMQX容器(一定要操作,否则不生效)

docker restart 容器ID

4. 登录Dashboard就可以正常操作了

5. 总结

  • 写请求体内容最好手动输入,避免复制黏贴出现奇怪问题~

觉得这个操作麻烦,那就删除重装。不过是治标不治本的方式,如果重装后依然写错,那就又得重来了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值