emqx的卸载

Emqx是发布订阅模式的开源 MQTT 消息服务器。之前叫emqtt,从3.0版本开始改叫EMQ X。和之前emqtt的配置、dashboard界面有一些小差别,基本上一样。

EMQ X的官方文档: EMQ X - 百万级开源 MQTT 消息服务器 — EMQ X - 百万级开源 MQTT 消息服务器 3.2.0 文档 

目前百度上能搜到的emqttd详细教程比较少,遇到问题基本上就靠啃这个官方文档。这个文档写的真的很不实用。篇幅巨长,一堆概念、专业术语;然鹅很多涉及具体操作的地方又不给出操作步骤,一两句文字介绍就完事了。本人linux小白,自己瞎捣鼓遇到问题,改了config文件之后,dashboard的websocket就彻底连不上了。解决无果决定卸载重装。发现官方文档没有教怎么卸载!兜兜转转两天终于重装了,问题也解决了。想把遇到的问题总结一下:

1. 不要用记事本或者什么软件编辑config文件

这是两篇解释什么是websocket的文章:

Webhook的理解

最开始我是想用EMQ Dashboard里的websocket功能 向python代码发送信息,再由python代码进行各种处理。但是发现websocket发出去之后python完全没反应。我感觉可能是emq和python代码里的端口不一致。

我首先是找到了/etc/emqx/emqx.conf配置文件。用sublime打开,一顿狂找看哪里是有关端口的配置,大概是几个listener那里,但是并没有发现什么不对劲,故未作修改。把conf文件关闭之后我重启了我的emqx。

重启之后,我发现一切都不一样了!websocket直接连不上了,页面直接显示端口8083,8084都是connection failed,然后我命令行emq_ctl也不好使了。百度到的很多问题和解决方法都是针对旧版本,也就是emqttd,老版本的配置和emqx好像还是有点不一样,我又不敢乱试,就被这个奇怪的现象绊了整整一天多。

在这个寻求解决方法的过程中,我看到很多人说websocket连不上是因为emq自带的证书无效。后来我在这篇文章也有提到这个问题:

EMQ 内置自签名证书,默认已经启动了加密的 WebSocket 连接,但大部分浏览器会报证书无效错误如net::ERR_CERT_COMMON_NAME_INVALID (Chrome、360 等 webkit 内核浏览器在开发者模式下, Console 选项卡 可以查看大部分连接错误)。

来源:使用 WebSocket 客户端连接 MQTT 服务器 - 简书

我就根据这个问题的解决方法一顿操作:将 etc/certs/ 目录下的pem文件替换成我自己域名的ssl文件;也修改了etc/emqx.conf 配置文件里的证书目录。

我的域名是在阿里云上备案的,阿里云域名申请ssl证书的操作:阿里云域名申请SSL证书 - 简书

但是还是没用啊。

后来看到一个csdn上有人说emqx.conf不能用记事本打开编辑,编码问题什么的,记事本编辑过后就废了,我觉得我应该就是这样把conf文件搞坏的吧。

我的经验就是:不要用记事本或者什么软件编辑config文件了,就用vi吧。。。

本来我还觉得emq很好用的,安装、操作都还挺直接方便的,现在被这些毛病困扰我真的觉得它不好用了!

2. 胡乱的卸载操作

既然已经把配置文件搞坏了,那我把emq卸载重装吧。

查了emqx的官方文档,里面居然没提怎么卸载。不过,emqttd的文档里是有写的,我命令行敲了下emqx uninstall,发现这破程序根本不认这个命令了。

于是我又敲了apt_get remove emqx,显示成功卸载了。

于是我开始重装emq 3.2。装了一半报错说/usr/bin/emqx already exist. 于是我暴躁地删除了这个目录(但是我有留备份)。删除完之后还是报一些错,最后一行是:Errors were encountered while processing: emqx

后来我看到了github上的这个问题:

apt-get remove emqx does not remove /usr/bin/emqx* · Issue #2450 · emqx/emqx · GitHub

于是我又试了dpkg -i emqx, dpkg -p emqx, 其实还是有一些小问题,然后百度解决好了。

最后就卸载重装好了。

3. 在dashboard上开启、配置plugins

下图是所有plugins的列表,在最左侧可以启动、停止或是更改配置。

我想用emq向服务端python程序发送信息,python对信息进行一些后续的处理,则需要更改名为emqx_web_hook的插件,将其端口改为和python程序绑定的端口号一致。


在这个页面就可以改,但是在dashboard更改Plugins的设置,重启emq之后就没了。官方是这么说的:

出于安全性考虑,通过 Dashboard 配置的插件参数不会持久化到配置文件,即每次重启 EMQ 后配置信息会丢失。用户通过界面上配置的插件参数,在确认正确可用后应当将配置写到 etc/plugins/ 目录下响应的配置文件中。

参考:emqx-tutorial-cn/emqx-dashboard-useage-guide at master · emqx/emqx-tutorial-cn · GitHub

<think>好的,用户问的是如何在云服务器上卸载EMQX。首先,我需要明确EMQX是什么。EMQX是一个开源的MQTT代理服务器,常用于物联网中的消息传递。用户可能是在云服务器上安装了EMQX,现在想要卸载它,可能是因为不再需要,或者需要清理环境,或者遇到了问题想重新安装。 接下来,我需要考虑用户的操作系统环境。云服务器常见的系统有Ubuntu、CentOS等,不同的系统卸载方法可能不同。比如,如果是通过包管理器(如apt或yum)安装的,卸载命令会有差异。另外,用户可能使用源码编译安装,或者通过Docker容器运行,这些情况下的卸载步骤也不同。 然后,我需要分步骤思考。首先,停止EMQX服务,这是必要的,避免卸载过程中服务还在运行。然后,根据安装方式选择对应的卸载方法。如果是包管理器安装的,用相应的remove命令;如果是源码安装,直接删除目录;如果是Docker,则停止并删除容器和镜像。 可能用户会遇到的问题,比如残留文件,这时候需要手动删除数据目录和配置文件。另外,可能需要检查是否有定时任务或系统服务残留,需要清理。用户可能不知道这些细节,所以需要详细说明。 还要考虑用户是否了解命令行操作,是否需要给出具体的命令示例。比如,在Ubuntu下使用systemctl停止服务,然后用apt remove卸载。在CentOS下用yum remove。对于源码安装,直接删除安装目录,如/usr/local/emqx。 另外,用户可能希望彻底卸载,不留任何痕迹,所以要提醒删除配置文件和日志等。可能的数据目录位置,如/var/lib/emqx,以及配置文件在/etc/emqx。 最后,确认卸载是否成功,可以检查进程是否还在,或者尝试重新安装看是否有冲突。这部分也可以作为建议提供给用户,确保他们操作正确。 需要确保回答清晰,步骤明确,覆盖不同安装方式,避免用户遗漏步骤导致卸载不彻底。同时,使用中文,保持口语化,不用专业术语过多,让用户容易理解。</think>在云服务器上卸载 EMQX(一款开源的 MQTT 消息服务器)通常需要以下步骤,具体操作取决于你的安装方式: --- ### **一、停止 EMQX 服务** 首先确保 EMQX 服务已停止: ```bash sudo systemctl stop emqx # 通过 systemd 停止服务 emqx stop # 如果直接通过命令管理 ``` --- ### **二、根据安装方式选择卸载方法** #### **1. 通过包管理器安装(如 apt/yum)** - **Ubuntu/Debian**: ```bash sudo apt remove emqx # 卸载软件包 sudo apt autoremove # 清理依赖 ``` - **CentOS/RHEL**: ```bash sudo yum remove emqx # 卸载软件包 ``` #### **2. 通过二进制包安装** 直接删除 EMQX 的安装目录(默认路径为 `/usr/local/emqx`): ```bash sudo rm -rf /usr/local/emqx ``` #### **3. 通过 Docker 容器运行** 停止并删除容器: ```bash docker stop emqx # 停止容器 docker rm emqx # 删除容器 docker rmi emqx/emqx # 删除镜像(可选) ``` --- ### **三、清理残留文件** 手动删除配置、日志和数据文件(根据实际情况调整路径): ```bash sudo rm -rf /var/lib/emqx # 数据目录 sudo rm -rf /var/log/emqx # 日志目录 sudo rm -rf /etc/emqx # 配置文件目录 ``` --- ### **四、删除系统服务(如有)** 如果通过 `systemd` 管理服务,删除服务文件: ```bash sudo rm /lib/systemd/system/emqx.service sudo systemctl daemon-reload # 重新加载服务配置 ``` --- ### **五、验证卸载** 检查是否彻底删除: ```bash which emqx # 检查命令是否残留 ps aux | grep emqx # 检查进程是否仍在运行 ``` --- ### **注意事项** 1. 如果 EMQX 是通过其他方式(如源码编译)安装的,需根据实际安装路径手动清理。 2. 卸载前建议备份重要数据(如 `/var/lib/emqx` 中的数据库文件)。 3. 若需重新安装,可参考 EMQX 官方文档选择适合的安装方式。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值