MQTT 服務器搭建:EMQ X 安裝指南和常見問題


EMQ X 是基於 Erlang/OTP 平台開發的開源物聯網 MQTT 消息服務器,目前廣泛應用於全球各行業物聯網平台建設中。其設計目標是實現高可靠承載海量物聯網終端的 MQTT 連接,支持在海量物聯網設備間低延時消息路由。

本文將以 EMQ X v4.3.10(開源版)為例,介紹 EMQ X 在 Docker、Kubernetes、Windows 和 Linux 上的安裝方法以及常見問題,為大家利用 MQTT 消息服務器快速搭建物聯網平台提供幫助。

安裝前檢查

絕大多數情況下操作系統的環境依賴、監聽端口都不會出現問題,測試環境下可以直接安裝啟動,EMQ X 會檢查可能存在的問題並停止啟動、報出錯誤。

但是我們仍然建議當生產環境存在升級 EMQ X 版本、升級其他服務等環境變動之后,再次啟動 EMQ X 前務必進行測試和檢查,避免產生不必要的損失。

檢查環境依賴

常見的由於環境依賴導致的問題如下:

  • OpenSSL 版本不正確:常見於 CentOS 系統上,需要更新 OpenSSL 版本
  • 缺失 MSVCRxxx.dll 文件:Windows 系統特有,需要安裝對應的依賴庫
  • 安裝包與操作系統不符:EMQ X 需要對應操作系統和版本下載,否則無法啟動並報 cannot execute binary file 錯誤

更多的問題和解決方法詳見:EMQ X - 常見錯誤

檢查端口占用

端口占用會導致 EMQ X 無法啟動或部分功能異常,常見的症狀有:

  • 執行 emqx start 時提示啟動超時
  • 無法打開 Dashboard 或打開后一直報 404 Not Found 錯誤

出現以上情況,可以使用 emqx console 命令啟動 EMQ X,console 模式下可以打印詳細的錯誤日志。

EMQ X 默認情況下監聽以下端口:

端口 說明
集群通信
4369-4380 集群通信
5370-5380 集群 RPC 通信
協議接入
1883 MQTT 協議端口
11883 MQTT 協議端口
8883 MQTT/SSL 端口
8083 MQTT/WebSocket 端口
5683 LwM2M 端口
管理監控
8081 HTTP API 端口
18083 Dashboard 管理控制台端口

使用 Docker 安裝 EMQ X

使用 Docker 不需要建立安裝運行環境,可以更快安裝啟動 EMQ X,Docker 安裝教程請見 Install Docker Engine

運行單個 EMQ X 節點

Docker 安裝完成之后,可以通過 Docker Hub 獲取 EMQ X 鏡像:

docker pull emqx/emqx:4.3.10

啟動 Docker 容器,建立端口映射:

docker run -d --name emqx \
  -p 1883:1883 \
  -p 8081:8081 \
  -p 8083:8083 \
  -p 8084:8084 \
  -p 8883:8883 \
  -p 18083:18083 \
emqx/emqx:4.3.10

啟動成功之后,訪問 Dashboard 管理控制台 http://localhost:18083

docker-compose 簡單集群

通過 docker-compose 可以在本地快速創建 EMQ X 集群。

創建 docker-compose.yaml 文件:

version: '3'

services:
    emqx1:
    image: emqx/emqx
    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"
    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
    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"
    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

啟動 docker-compose 集群:

docker-compose -p my_emqx up -d

查看集群:

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 => []}

在 Kubernetes 上安裝 EMQ X

EMQ X Kubernetes Operator 是 EMQ 推出的一種封裝、部署和管理 EMQ X 的方法,也是一個特定的應用控制器,允許 DevOps 人員在 Kubernetes 上編排 EMQ X 集群,管理他們的生命周期。

EMQ X Kubernetes Operator 可以幫助用戶在 Kubernetes 的環境上快速創建和管理 EMQ X 集群,不僅極大簡化部署和管理流程,也降低了管理和配置的專業技能要求。

它將使部署和管理工作變成一種低成本、標准化、可重復性的能力,高效實現集群擴容、無縫升級、故障處理和統一監控。

詳細的部署和使用方式請查看:https://github.com/emqx/emqx-operator

在 Windows 上安裝 EMQ X

EMQ X 生產部署建議使用 Linux 服務器,不推薦 Windows 服務器,EMQ X 企業版中沒有提供 Windows 版本,如需測試可以使用 Docker 或者虛擬機的方式安裝。

通過 EMQ X 下載頁面 下載要安裝的 EMQ X 版本的 ZIP 包,解壓安裝包后,使用命令行進入解壓目錄運行即可:

cd D:\emqx

.\bin\emqx start

在 Linux 上安裝 EMQ X

Linux 一鍵安裝

EMQ X 提供一鍵安裝腳本進行安裝,腳本將自動識別並下載對應操作系統的安裝包進行安裝:

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

Linux 二進制包安裝

通過 EMQ X 下載頁面 下載要安裝的 EMQ X 版本的 ZIP 包,解壓程序包后,使用命令行進入解壓目錄運行即可:

cd /opt/emqx
./bin/emqx start

yum 包管理工具安裝

安裝所需要的依賴包

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

使用以下命令設置穩定存儲庫,以 CentOS 7 為例

sudo yum-config-manager --add-repo https://repos.emqx.io/emqx-ce/redhat/centos/7/emqx-ce.repo

安裝最新版本的 EMQ X

sudo yum install emqx

其他包管理工具和操作系統安裝

訪問 EMQ X 安裝文檔 查看更多安裝教程。

部署說明

EMQ X 支持不同的部署方式,您可以通過雲服務或私有部署的方式來使用 EMQ X。

EMQ 提供了全托管的雲原生 MQTT 消息服務 EMQ X Cloud:自動化、全托管部署,無需管理服務器基礎設施,可以為您的物聯網應用帶來輕松便捷的 MQTT 雲服務。

如果您需要私有部署,EMQ X 也提供了企業版,支持在物理機、容器/K8s、私有雲、混合雲和公有雲(如阿里雲、華為雲和 AWS )中的任何地方運行,不受位置限制,不受廠商鎖定。

EMQ X Cloud 和 EMQ X 企業版均提供免費試用服務和試用版版本,您可以在數分鍾內完成部署,立即開始探索和測試更豐富的產品功能。

以下是不同版本之間的主要區別,您可以根據自身情況選擇不同的部署方式。

EMQ X 版本區別

版權聲明: 本文為 EMQ 原創,轉載請注明出處。

原文鏈接:https://www.emqx.com/zh/blog/install-emqx-mqtt-broker


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM