1. 程式人生 > 其它 >EMQX基本安裝與使用

EMQX基本安裝與使用

一、EMQX官網

官網地址: https://www.emqx.io/zh

文件地址: https://www.emqx.io/docs/zh/v4.4/getting-started/getting-started.html

二、EMQX介紹

2.1 概覽

EMQX (Erlang/Enterprise/Elastic MQTT Broker) 是基於 Erlang/OTP 平臺開發的開源物聯網 MQTT 訊息伺服器。

Erlang/OTP是出色的軟實時 (Soft-Realtime)、低延時 (Low-Latency)、分散式 (Distributed)的語言平臺。

MQTT 是輕量的 (Lightweight)、釋出訂閱模式 (PubSub) 的物聯網訊息協議。

EMQX 設計目標是實現高可靠,並支援承載海量物聯網終端的 MQTT 連線,支援在海量物聯網裝置間低延時訊息路由:

  1. 穩定承載大規模的 MQTT 客戶端連線,單伺服器節點支援 200 萬連線。
  2. 分散式節點叢集,快速低延時的訊息路由。
  3. 訊息伺服器內擴充套件,支援定製多種認證方式、高效儲存訊息到後端資料庫。
  4. 完整物聯網協議支援,MQTT、MQTT-SN、CoAP、LwM2M、WebSocket 或私有協議支援。

2.2 訊息伺服器功能列表

  • 完整的 MQTT V3.1/V3.1.1 及 V5.0 協議規範支援
    • QoS0, QoS1, QoS2 訊息支援
    • 持久會話與離線訊息支援
    • Retained 訊息支援
    • Last Will 訊息支援
  • MQTT/WebSocket TCP/SSL 支援
  • HTTP 訊息釋出介面支援
  • $SYS/# 系統主題支援
  • 客戶端線上狀態查詢與訂閱支援
  • 客戶端 ID 或 IP 地址認證支援
  • 使用者名稱密碼認證支援
  • LDAP、Redis、MySQL、PostgreSQL、MongoDB、HTTP 認證整合
  • 瀏覽器 Cookie 認證
  • 基於客戶端 ID、IP 地址、使用者名稱的訪問控制 (ACL)
  • 多伺服器節點叢集 (Cluster)
  • 支援 manual、mcast、dns、etcd、k8s 等多種叢集發現方式
  • 網路分割槽自動癒合
  • 訊息速率限制
  • 連線速率限制
  • 按分割槽配置節點
  • 多伺服器節點橋接 (Bridge)
  • MQTT Broker 橋接支援
  • Stomp 協議支援
  • MQTT-SN 協議支援
  • CoAP 協議支援
  • LwM2M 協議支援
  • Stomp/SockJS 支援
  • 延時 Publish ($delay/topic)
  • Flapping 檢測
  • 黑名單支援
  • 共享訂閱 ($share/:group/topic)
  • TLS/PSK 支援
  • 規則引擎
    • 空動作 (除錯)
    • 訊息重新發布
    • 橋接資料到 MQTT Broker
    • 檢查 (除錯)
    • 傳送資料到 Web 服務

三、安裝

EMQX支援各個系統的安裝(官網也有安裝教程)(筆者這裡選擇centos 7 zip壓縮包安裝)

3.1 下載壓縮包(筆者選擇 centos 7 v4.1.5)

下載地址: https://www.emqx.com/zh/downloads-and-install?product=broker&version=4.1.5&os=Centos7&oslabel=CentOS 7

3.2 安裝步驟

# 1. 下載 emqx-centos7-v4.1.5.zip (自己下載壓縮包,上傳至centos7中也可)
wget https://www.emqx.com/zh/downloads/broker/4.1.5/emqx-centos7-v4.1.5.zip

# 2. 安裝 -> 解壓縮
unzip emqx-centos7-v4.1.5.zip

# 3. 執行 -> 進入解壓後的資料夾下
./bin/emqx start

執行

檢視狀態

停止

四、開啟視覺化dashboard

地址為: http://ip地址:18083/ (預設賬號: admin 密碼: public)

可設定為中文

五、配置 EMQX 伺服器 使用者名稱/密碼登入

5.1 停止服務

./bin/emqx stop

5.2 編輯使用者名稱密碼的配置檔案

# 在emqx 目錄下執行
vim ./etc/plugins/emqx_auth_username.conf 

增加使用者名稱、密碼,密碼演算法改為plain,透傳

5.3 關閉匿名登入

vim ./etc/emqx.conf

查詢allow_anonymous,修改為false

5.4 啟動emqx服務

./bin/emqx start

5.5 進入後臺管理介面dashboard,啟動使用者名稱密碼認證。

http://伺服器IP:18083

六、使用MQTTX連線

七、EMQX伺服器動態新增使用者密碼

CLI命令

啟動emqx_auth_username外掛後,可以使用CLI命令管理username

 ./bin/emqx_ctl users help