# EMQX 企业版安装

EMQX 消息服务器可跨平台运行在 Linux 服务器上。

# EMQX License 文件获取

联系商务或登陆 https://www.emqx.com (opens new window) 注册账号获取免费的试用 License 文件

# EMQX 程序包下载

EMQX 消息服务器每个版本会发布 CentOS、Ubuntu、Debian 平台程序包与 Docker 镜像。

下载地址: https://www.emqx.com/zh/downloads (opens new window)

# CentOS

  • CentOS 7 (EL7)
  • CentOS 8 (EL8)

# 使用 rpm 包安装 EMQX

  1. 访问emqx.com (opens new window) 选择 CentOS 版本,然后下载要安装的 EMQX 版本的 rpm 包。

  2. 安装 EMQX

    $ sudo rpm -ivh emqx-ee-centos7-v4.0.0.x86_64.rpm
    
    1
  3. 导入License文件:

    $ cp /path/to/emqx.lic /etc/emqx/emqx.lic
    
    1
  4. 启动 EMQX

    • 直接启动

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

      $ sudo systemctl start emqx
      
      1
    • service 启动

      $ sudo service emqx start
      
      1

# 使用 zip 包安装 EMQX

::: ZIP包适用于测试和热更,如果不知道如何手动安装所有可能的运行时依赖,请勿在生产环境中使用 :::

  1. 通过 emqx.com (opens new window) 选择 Centos 版本,然后下载要安装的 EMQX 版本的 zip 包。

  2. 解压程序包

    $ unzip emqx-ee-centos7-v4.0.0.zip
    
    1
  3. 导入License文件:

    $ cp /path/to/emqx.lic /path/to/emqx/etc/emqx.lic
    
    1
  4. 启动 EMQX

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

# Ubuntu

  • Bionic 18.04 (LTS)
  • Xenial 16.04 (LTS)

# 使用 deb 包安装 EMQX

  1. 通过 emqx.com (opens new window) 选择 Ubuntu 版本,然后下载要安装的 EMQX 版本的 deb 包。

  2. 安装 EMQX

# for ubuntu
$ sudo apt install ./emqx-ee-ubuntu18.04-v3.1.0_amd64.deb
# for debian
$ sudo dpkg -i emqx-ee-ubuntu18.04-v3.1.0_amd64.deb
1
2
3
4
  1. 导入License文件:
$ cp /path/to/emqx.lic /etc/emqx/emqx.lic
1
  1. 启动 EMQX
  • 直接启动
$ emqx start
emqx  is started successfully!

$ emqx_ctl status
Node 'emqx@127.0.0.1' is started
emqx 4.0.0 is running
1
2
3
4
5
6
  • systemctl 启动
$ sudo systemctl start emqx
1
  • service 启动
$ sudo service emqx start
1

# 使用 zip 包安装 EMQX

::: ZIP包适用于测试和热更,如果不知道如何手动安装所有可能的运行时依赖,请勿在生产环境中使用 :::

  1. 通过 emqx.com (opens new window) 选择 Ubuntu 版本,然后下载要安装的 EMQX 版本的 zip 包。

  2. 解压程序包

$ unzip emqx-ee-ubuntu18.04-v4.0.0.zip
1
  1. 导入License文件:
$ cp /path/to/emqx.lic /path/to/emqx/etc/emqx.lic
1
  1. 启动 EMQX
$ ./bin/emqx start
emqx v4.0.0 is started successfully!

$ ./bin/emqx_ctl status
Node 'emqx@127.0.0.1' is started
emqx 4.0.0 is running
1
2
3
4
5
6

# Debian

  • Debian 9
  • Debian 10

# 使用 deb 包安装 EMQX

  1. 通过 emqx.com (opens new window) 选择 Debian 版本,然后下载要安装的 EMQX 版本的 deb 包。

  2. 安装 EMQX

    # for ubuntu
    $ sudo apt install ./emqx-ee-debian9-v3.1.0_amd64.deb
    
    # for debian
    # 首先确保已安装 libodbc
    $ sudo dpkg -i emqx-ee-debian9-v3.1.0_amd64.deb
    
    1
    2
    3
    4
    5
    6
  3. 导入License文件:

    $ cp /path/to/emqx.lic /etc/emqx/emqx.lic
    
    1
  4. 启动 EMQX

    • 直接启动

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

      $ sudo systemctl start emqx
      
      1
    • service 启动

      $ sudo service emqx start
      
      1

# 使用 zip 包安装 EMQX

::: ZIP包适用于测试和热更,如果不知道如何手动安装所有可能的运行时依赖,请勿在生产环境中使用 :::

  1. 通过 emqx.com (opens new window) 选择 Debian 版本,然后下载要安装的 EMQX 版本的 zip 包。

  2. 解压程序包

    $ unzip emqx-ee-debian9-v4.0.0.zip
    
    1
  3. 导入License文件:

    $ cp /path/to/emqx.lic /path/to/emqx/etc/emqx.lic
    
    1
  4. 启动 EMQX

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

# macOS

# 使用 ZIP 包安装 EMQX

  1. 通过 emqx.com (opens new window) ,选择 EMQX 版本,然后下载要安装的 zip 包。

  2. 解压压缩包

    $ unzip emqx-ee-macos-v4.0.0.zip
    
    1
  3. 导入License文件:

    $ cp /path/to/emqx.lic /path/to/emqx/etc/emqx.li
    
    1
  4. 启动 EMQX

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

# Docker

Docker 部署注意事项

  1. 如果需要持久 Docker 容器 ,请将以下目录挂载到容器外部,这样即使容器被删除数据也不会丢失:
/opt/emqx/data
/opt/emqx/etc
/opt/emqx/log
1
2
3
  1. Docker 内的 localhost127.0.0.1 指向的是容器内部地址,如需访问宿主机地址请使用宿主机的真实 IP 或使用 host 网络模式 (opens new window)。如果您使用的是 Docker for Mac 或 Docker for Windows,可以使用 host.docker.internal 作为宿主机地址。

  2. 由于 EMQX 使用 data/mnesia/<节点名> 作为数据存储目录,请使用 hostname 或者 FQDN 等固定的信息作为节点名,避免因为节点名称变动导致数据丢失。

# 启动单个容器

  1. 获取 docker 镜像
$ docker pull emqx/emqx-ee:v4.0.0
1
  1. 启动 docker 容器
$ docker run -d \
    --name emqx-ee \
    -p 8081:8081 \
    -p 1883:1883 \
    -p 8083:8083 \
    -p 8883:8883 \
    -p 8084:8084 \
    -p 18083:18083 \
    -v /path/to/emqx.lic:/opt/emqx/etc/emqx.lic \
    emqx/emqx-ee:v4.0.0
1
2
3
4
5
6
7
8
9
10

更多关于 EMQX Docker 的信息请查看 Docker Hub (opens new window)

# 使用 docker-compose 创建一个简单的静态集群

请注意,本章节中的 Docker Compose 示例文件仅适用于本地测试,如果您需要在生产环境中部署集群请参考 分布式集群

  1. 创建 docker-compose.yaml 文件

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

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

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

关于 EMQX 企业版容器的更多信息,请参看 Docker Hub (opens new window)