安装

EMQ X 目前支持的操作系统:

  • Centos6
  • Centos7
  • OpenSUSE tumbleweed
  • Debian 8
  • Debian 9
  • Debian 10
  • Ubuntu 14.04
  • Ubuntu 16.04
  • Ubuntu 18.04
  • macOS 10.13
  • macOS 10.14
  • macOS 10.15
  • Windows Server 2019

产品部署建议 Linux 服务器,不推荐 Windows 服务器。

Shell 脚本一键安装 (Linux)

  1. curl https://repos.emqx.io/install_emqx.sh | bash

包管理器安装 (Linux)

Centos

  1. 安装所需要的依赖包

    1. $ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  2. 使用以下命令设置稳定存储库,以 CentOS7 为例

    1. $ sudo yum-config-manager --add-repo https://repos.emqx.io/emqx-ce/redhat/centos/7/emqx-ce.repo
  3. 安装最新版本的 EMQ X Broker

    1. $ sudo yum install emqx

    如果提示接受 GPG 密钥,请确认密钥符合 fc84 1ba6 3775 5ca8 487b 1e3c c0b4 0946 3e64 0d53,并接受该指纹。

  4. 安装特定版本的 EMQ X Broker

    1. 查询可用版本

      1. $ yum list emqx --showduplicates | sort -r
      2. emqx.x86_64 4.0.0-1.el7 emqx-stable
      3. emqx.x86_64 3.0.1-1.el7 emqx-stable
      4. emqx.x86_64 3.0.0-1.el7 emqx-stable
    2. 根据第二列中的版本字符串安装特定版本,例如 4.0.0

      1. $ sudo yum install emqx-4.0.0
  5. 启动 EMQ X Broker

    • 直接启动

      1. $ emqx start
      2. emqx 4.0.0 is started successfully!
      3. $ emqx_ctl status
      4. Node 'emqx@127.0.0.1' is started
      5. emqx v4.0.0 is running
    • systemctl 启动

      1. $ sudo systemctl start emqx
    • service 启动

      1. $ sudo service emqx start
  6. 停止 EMQ X Broker

    1. $ emqx stop
    2. ok
  7. 卸载 EMQ X Broker

    1. $ sudo yum remove emqx

Ubuntu、Debian

  1. 安装所需要的依赖包

    1. $ sudo apt update && sudo apt install -y \
    2. apt-transport-https \
    3. ca-certificates \
    4. curl \
    5. gnupg-agent \
    6. software-properties-common
  2. 添加 EMQ X 的官方 GPG 密钥

    1. $ curl -fsSL https://repos.emqx.io/gpg.pub | sudo apt-key add -

    验证密钥

    1. $ sudo apt-key fingerprint 3E640D53
    2. pub rsa2048 2019-04-10 [SC]
    3. FC84 1BA6 3775 5CA8 487B 1E3C C0B4 0946 3E64 0D53
    4. uid [ unknown] emqx team <support@emqx.io>
  3. 使用以下命令设置 stable 存储库。 如果要添加 unstable 存储库,请在以下命令中的单词 stable 之后添加单词 unstable。

    1. $ sudo add-apt-repository \
    2. "deb [arch=amd64] https://repos.emqx.io/emqx-ce/deb/ubuntu/ \
    3. ./$(lsb_release -cs) \
    4. stable"

    lsb_release -cs 子命令返回发行版的名称,例如 xenial。 有时,在像 Linux Mint 这样的发行版中,您可能需要将 $(lsb_release -cs) 更改为您的父发行版。 例如,如果您使用的是 Linux Mint Tessa,则可以使用 bionic。 EMQ X Broker 不对未经测试和不受支持的发行版提供任何保证。

  4. 更新 apt 包索引

    1. $ sudo apt update
  5. 安装最新版本的 EMQ X Broker

    1. $ sudo apt install emqx

    在启用了多个 EMQ X 仓库的情况下,如果 apt install 和 apt update 命令没有指定版本号,那么会自动安装最新版的 EMQ X Broker。这对于有稳定性需求的用户来说是一个问题。

  6. 安装特定版本的 EMQ X Broker

    1. 查询可用版本

      1. $ sudo apt-cache madison emqx
      2. emqx | 4.0.0 | https://repos.emqx.io/emqx-ce/deb/ubuntu bionic/stable amd64 Packages
      3. emqx | 3.0.1 | https://repos.emqx.io/emqx-ce/deb/ubuntu bionic/stable amd64 Packages
      4. emqx | 3.0.0 | https://repos.emqx.io/emqx-ce/deb/ubuntu bionic/stable amd64 Packages
    2. 使用第二列中的版本字符串安装特定版本,例如 4.0.0

      1. $ sudo apt install emqx=4.0.0
  7. 启动 EMQ X Broker

    • 直接启动

      1. $ emqx start
      2. emqx 4.0.0 is started successfully!
      3. $ emqx_ctl status
      4. Node 'emqx@127.0.0.1' is started
      5. emqx v4.0.0 is running
    • systemctl 启动

      1. $ sudo systemctl start emqx
    • service 启动

      1. $ sudo service emqx start
  8. 停止 EMQ X Broker

    1. $ emqx stop
    2. ok
  9. 卸载 EMQ X Broker

    1. $ sudo apt remove emqx

OpenSUSE

  1. 下载 GPG 公钥并导入。

    1. $ curl -L -o /tmp/gpg.pub https://repos.emqx.io/gpg.pub
    2. $ sudo rpmkeys --import /tmp/gpg.pub
  2. 添加储存库地址

    1. $ sudo zypper ar -f -c https://repos.emqx.io/emqx-ce/redhat/opensuse/leap/stable emqx
  3. 安装最新版本的 EMQ X Broker

    1. $ sudo zypper in emqx
  4. 安装特定版本的 EMQ X Broker

    1. 查询可用版本

      1. $ sudo zypper pa emqx
      2. Loading repository data...
      3. Reading installed packages...
      4. S | Repository | Name | Version | Arch
      5. --+------------+------+----------+-------
      6. | emqx | emqx | 4.0.0-1 | x86_64
      7. | emqx | emqx | 3.0.1-1 | x86_64
      8. | emqx | emqx | 3.0.0-1 | x86_64
    2. 使用 Version 安装特定版本,例如 4.0.0

      1. $ sudo zypper in emqx-4.0.0
  5. 启动 EMQ X Broker

    • 直接启动

      1. $ emqx start
      2. emqx 4.0.0 is started successfully!
      3. $ emqx_ctl status
      4. Node 'emqx@127.0.0.1' is started
      5. emqx v4.0.0 is running
    • systemctl 启动

      1. $ sudo systemctl start emqx
    • service 启动

      1. $ sudo service emqx start
  6. 停止 EMQ X Broker

    1. $ emqx stop
    2. ok
  7. 卸载 EMQ X Broker

    1. $ sudo zypper rm emqx

二进制包安装 (Linux)

  1. 通过 emqx.ioGithub 选择系统发行版,然后下载要安装的 EMQ X 版本的二进制包。

  2. 安装 EMQ X Broker,将下面的路径更改为您下载 EMQ X 软件包的路径。

    • RPM 包:

      1. $ sudo rpm -ivh emqx-cenots7-v4.0.0.x86_64.rpm
    • DEB 包:

      1. $ sudo dpkg -i emqx-ubuntu18.04-v4.0.0_amd64.deb
  3. 启动 EMQ X Broker

    • 直接启动

      1. $ emqx start
      2. emqx 4.0.0 is started successfully!
      3. $ emqx_ctl status
      4. Node 'emqx@127.0.0.1' is started
      5. emqx v4.0.0 is running
    • systemctl 启动

      1. $ sudo systemctl start emqx
    • service 启动

      1. $ sudo service emqx start
  4. 停止 EMQ X Broker

    1. $ emqx stop
    2. ok
  5. 卸载 EMQ X Broker

    • DEB 包:

      1. $ dpkg -r emqx

      1. $ dpkg -P emqx
    • RPM 包:

      1. $ rpm -e emqx

ZIP 压缩包安装 (Linux、MaxOS、Windows)

  1. 通过 emqx.ioGithub 下载要安装的 EMQ X 版本的 zip 包。

  2. 解压程序包

    1. $ unzip emqx-ubuntu18.04-v4.0.0.zip
  3. 启动 EMQ X Broker

    1. $ ./bin/emqx start
    2. emqx 4.0.0 is started successfully!
    3. $ ./bin/emqx_ctl status
    4. Node 'emqx@127.0.0.1' is started
    5. emqx v4.0.0 is running
  4. 停止 EMQ X Broker

    1. $ ./bin/emqx stop
    2. ok
  5. 卸载 EMQ X Broker

    直接删除 EMQ X 目录即可

通过 Homebrew 安装 (MacOS)

  1. 添加 EMQ X 的 tap

    1. $ brew tap emqx/emqx
  2. 安装 EMQ X Broker

    1. $ brew install emqx
  3. 启动 EMQ X Broker

    1. $ emqx start
    2. emqx 4.0.0 is started successfully!
    3. $ emqx_ctl status
    4. Node 'emqx@127.0.0.1' is started
    5. emqx v4.0.0 is running
  4. 停止 EMQ X Broker

    1. $ emqx stop
    2. ok
  5. 卸载 EMQ X Broker

    1. $ brew uninstall emqx

通过 Docker 运行 (包含简单的 docker-compose 集群)

运行单个容器

  1. 获取 docker 镜像

    • 通过 Docker Hub 获取

      1. $ docker pull emqx/emqx:v4.0.0
    • 通过 emqx.ioGithub 下载 Docker 镜像,并手动加载

      1. $ wget -O emqx-docker.zip https://www.emqx.io/downloads/broker/v4.0.0/emqx-docker-v4.0.0-alpine3.10-amd64.zip
      2. $ unzip emqx-docker.zip
      3. $ docker load < emqx-docker-v4.0.0
  2. 启动 docker 容器

    1. $ docker run -d --name emqx -p 1883:1883 -p 8083:8083 -p 8883:8883 -p 8084:8084 -p 18083:18083 emqx/emqx:v4.0.0

使用 docker-compose 创建简单的 static 集群

  1. 创建 docker-compose.yaml 文件

    1. version: '3'
    2. services:
    3. emqx1:
    4. image: emqx/emqx:v4.0.0
    5. environment:
    6. - "EMQX_NAME=emqx"
    7. - "EMQX_HOST=node1.emqx.io"
    8. - "EMQX_CLUSTER__DISCOVERY=static"
    9. - "EMQX_CLUSTER__STATIC__SEEDS=emqx@node1.emqx.io, emqx@node2.emqx.io"
    10. - "EMQX_ZONE__EXTERNAL__RETRY_INTERVAL=2s"
    11. - "EMQX_MQTT__MAX_TOPIC_ALIAS=10"
    12. volumes:
    13. - ./tmp/emqx.lic:/opt/emqx/etc/emqx.lic
    14. healthcheck:
    15. test: ["CMD", "/opt/emqx/bin/emqx_ctl", "status"]
    16. interval: 5s
    17. timeout: 25s
    18. retries: 5
    19. networks:
    20. emqx-bridge:
    21. aliases:
    22. - node1.emqx.io
    23. emqx2:
    24. image: ${IMAGE}
    25. environment:
    26. - "EMQX_NAME=emqx"
    27. - "EMQX_HOST=node2.emqx.io"
    28. - "EMQX_CLUSTER__DISCOVERY=static"
    29. - "EMQX_CLUSTER__STATIC__SEEDS=emqx@node1.emqx.io, emqx@node2.emqx.io"
    30. - "EMQX_ZONE__EXTERNAL__RETRY_INTERVAL=2s"
    31. - "EMQX_MQTT__MAX_TOPIC_ALIAS=10"
    32. volumes:
    33. - ./tmp/emqx.lic:/opt/emqx/etc/emqx.lic
    34. healthcheck:
    35. test: ["CMD", "/opt/emqx/bin/emqx_ctl", "status"]
    36. interval: 5s
    37. timeout: 25s
    38. retries: 5
    39. networks:
    40. emqx-bridge:
    41. aliases:
    42. - node2.emqx.io
    43. client:
    44. image: python:3.7.2-alpine3.9
    45. depends_on:
    46. - emqx1
    47. - emqx2
    48. tty: true
    49. networks:
    50. emqx-bridge:
    51. networks:
    52. emqx-bridge:
    53. driver: bridge
  2. 启动 docker-compose 集群

    1. $ docker-compose -p my_emqx up -d
  3. 查看集群

    1. $ docker exec -it my_emqx_emqx1_1 sh -c "emqx_ctl cluster status"
    2. Cluster status: #{running_nodes => ['emqx@node1.emqx.io','emqx@node2.emqx.io'],
    3. stopped_nodes => []}

更多关于 EMQ X Docker 的信息请查看 Docker HubGithub

通过 Helkm 安装并集群 (K8S、K3S)

  1. 添加 helm 仓库

    1. $ helm repo add emqx https://repos.emqx.io/charts
    2. $ helm repo update
  2. 查询 EMQ X Broker

    1. helm search repo emqx
    2. NAME CHART VERSION APP VERSION DESCRIPTION
    3. emqx/emqx v4.0.0 v4.0.0 A Helm chart for EMQ X
    4. emqx/emqx-ee v4.0.0 v4.0.0 A Helm chart for EMQ X
    5. emqx/kuiper 0.1.1 0.1.1 A lightweight IoT edge analytic software
  3. 启动 EMQ X 集群

    1. $ helm install my-emqx emqx/emqx
  4. 查看 EMQ X 集群情况

    1. $ kubectl get pods
    2. NAME READY STATUS RESTARTS AGE
    3. my-emqx-0 1/1 Running 0 56s
    4. my-emqx-1 1/1 Running 0 40s
    5. my-emqx-2 1/1 Running 0 21s
    6. $ kubectl exec -it my-emqx-0 -- emqx_ctl cluster status
    7. Cluster status: #{running_nodes =>
    8. ['my-emqx@my-emqx-0.my-emqx-headless.default.svc.cluster.local',
    9. 'my-emqx@my-emqx-1.my-emqx-headless.default.svc.cluster.local',
    10. 'my-emqx@my-emqx-2.my-emqx-headless.default.svc.cluster.local'],
    11. stopped_nodes => []}

源码编译安装

  1. 获取源码
  1. $ git clone -b v4.0.0 https://github.com/emqx/emqx-rel.git
  1. 设置环境变量
  1. $ export EMQX_DEPS_DEFAULT_VSN=v4.0.0
  1. 编译
  1. $ cd emqx-rel && make
  1. 启动 EMQ X Broker
  1. $ cd _build/emqx-rel/_rel/emqx
  2. $ ./bin/emqx start
  3. emqx 4.0.0 is started successfully!
  4. $ ./bin/emqx_ctl status
  5. Node 'emqx@127.0.0.1' is started
  6. emqx v4.0.0 is running