EMQX基本安裝與使用
阿新 • • 發佈:2022-04-01
一、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 連線,支援在海量物聯網裝置間低延時訊息路由:
- 穩定承載大規模的 MQTT 客戶端連線,單伺服器節點支援 200 萬連線。
- 分散式節點叢集,快速低延時的訊息路由。
- 訊息伺服器內擴充套件,支援定製多種認證方式、高效儲存訊息到後端資料庫。
- 完整物聯網協議支援,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)
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