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"
    - "[email protected], [email protected]"
    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"
    - "[email protected], [email protected]"
    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 => ['[email protected]','[email protected]'],
                    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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章