EMQX Enterprise 5.4:OpenTelemetry 分散式追蹤、OCPP 閘道器、Confluent 整合支援

發表於2024-02-24

EMQX Enterprise 5.4.0 版本已正式釋出!

新版本提供 OpenTelemetry 分散式追蹤與日誌整合功能,新增了開放充電協議 OCPP 協議接入能力,併為資料整合新增了 Confluent 支援。此外,新版本還進行了多項改進以及 BUG 修復,進一步提升了整體效能和穩定性。

OpenTelemetry 分散式追蹤與日誌整合

在 EMQX v5.2.0 中,EMQX 提供了 OpenTelemetry 指標(Metrics)的整合,本次釋出中,EMQX 進一步提供了分散式追蹤(Traces)與日誌(Logs)的整合,完全實現了 OpenTelemetry 可觀測性框架所需的功能。

OpenTelemetry 分散式追蹤與日誌整合

分散式追蹤(Traces)

OpenTelemetry 分散式追蹤是一個用於追蹤請求在分散式系統中的流動的規範,用於追蹤請求在分散式系統中的流動情況,並提供視覺化分析請求的效能和行為的能力。在 MQTT 場景下,這一概念可以實現跨越 MQTT 訊息傳輸中的不同參與者(釋出者-MQTT 伺服器-訂閱者)的請求追蹤。

EMQX 遵循 W3C 的 Trace Context MQTT 規範實現了端到端的分散式追蹤功能:客戶端在釋出時為訊息新增 traceparent 使用者屬性,Traces 將記錄訊息在 EMQX 叢集節點以及訂閱者之間的流轉情況。對於不支援設定使用者屬性的 MQTT v3.1/3.1.1 客戶端,也可以配置 EMQX 在內部自動為訊息新增追蹤 ID 實現分散式追蹤。

藉助 OpenTelemetry 分散式追蹤,EMQX 系統管理員或開發者可以實時監測和分析物聯網應用的效能和行為,並在出現故障時快速定位並排除故障。

日誌(Logs)

與基於檔案的日誌一樣,OpenTelemetry 日誌同樣用於記錄關鍵事件、狀態資訊和錯誤訊息,幫助開發人員和運維團隊理解應用程式的行為和故障排查。

不同的是,OpenTelemetry 日誌使用了規範化的日誌記錄格式,使得日誌更易於解析、分析和處理。初次之外 OpenTelemetry 日誌還支援在記錄中新增豐富的上下文資訊,如 Trace ID、標籤、屬性等。

EMQX 支援同時開啟 OpenTelemetry 指標、追蹤與日誌功能。指標用於實時狀態監測,追蹤資料顯示請求的流程和途徑,而日誌資料可以提供每個流程上更多的細節和上下文資訊,三者相互整合可以建立一個統一的檢視和分析平臺,形成一個完整的觀測解決方案。透過統一的平臺,使用者可以更高效地管理和利用資料以獲得全面的應用程式觀測能力,從而準確地定位和解決問題,大大提升開發人員和運維團隊的工作效率。

開放充電協議 OCPP 協議閘道器

OCPP (Open Charge Point Protocol) 是一個連線充電樁與中央管理系統的開放通訊協議,旨在為電動汽車充電基礎設施提供統一的通訊規範。

本次釋出新增了 OCPP 1.6-J 版本的協議閘道器,能夠為符合 OCPP 規範的各品牌充電樁裝置提供開箱即用的海量接入與上下行訊息傳輸能力,並提供了一系列安全、管理與整合的支援,包括:

  1. 提供 TLS/SSL 加密連線,保障傳輸層安全
  2. 提供使用者名稱/密碼、JWT 接入認證
  3. 提供上下行訊息許可權控制能力
  4. 提供基於 Dashboard 與 REST API 的客戶端管理能力
  5. 支援與 MQTT 協議異構結合,滿足更加靈活和多樣化的應用場景需求
  6. 支援透過規則引擎、資料整合以及 REST API 等方式與第三方管理系統(Central System)整合

藉助以上特性,使用者可以快速構建安全可靠的電動汽車充電基礎設施,快速交付並實現有效充電業務管理和運營。

JT/T 808 與 GB/T 32960 協議閘道器

本次釋出新增了 JT/808 與 GB/T 32960 兩種車聯網協議閘道器,能夠提供符合標準的車輛資料接入,並透過 EMQX 的整合能力與車輛管理平臺側整合,實現互聯互通。

JT/T 808 是交通部頒佈的車載終端通訊協議,廣泛用於車輛遠端監控和排程管理。該標準規定了車輛與監控中心之間的通訊協議格式和資料傳輸方式。協議包括車輛定位、報警資訊、語音通訊、資料傳輸等功能,可以實現車輛位置追蹤、實時監控、報警處理等功能。

GB/T 32960 電動汽車遠端服務與管理系統技術規範的國家標準。該標準規定了電動汽車的遠端服務與管理系統的技術要求、資料格式和互動方式。協議包括了電動汽車的基本資訊、驅動電池資訊、車輛位置資訊、行駛資料、故障診斷等內容,透過這些資訊可以實現電動汽車的遠端監控、能源管理和安全管理等功能。

藉助兩種車聯網專屬協議以及標準 MQTT 協議支援,EMQX 能夠提供多類資料一體的接入和整合能力,幫助車企與車輛平臺快速構建車聯網應用,提供更高效、智慧化的車輛管理和運營服務。

Confluent 整合支援

Confluent 是一個全面的資料流平臺,提供全託管的 Confluent Cloud 與自託管的 Confluent Platform 產品,用於處理和管理連續、實時的資料流。

Confluent 包含多項服務,例如 Kafka 服務,Schema Registry 與事件流處理工具,以及跨區域的資料複製能力和其他豐富的擴充套件功能。EMQX 與 Confluent 生態整合,能夠為企業提供靈活的物聯網實時資料採集、傳輸、處理和分析全套解決方案,為企業提供更多的洞察和決策支援。

安全增強

  1. 透過 Prometheus Pull 模式整合時,支援為用於獲取指標的 REST API GET /api/v5/prometheus/stats 啟用身份驗證功能。
  2. 配置檔案現在支援將敏感配置儲存為檔案,並透過在配置檔案中使用特殊字首 file:// 來指定檔案路徑進行載入。
  3. REST API 現在新增了 RBAC 功能,實現更精細安全管理。透過 Dashboard 或金鑰初始化檔案建立 API 金鑰時,可以指定 API 金鑰的角色,現有以下角色可供選擇:

    • 管理員:可以訪問系統中的所有資源。
    • 檢視者:只能檢視資源和資料,對應 REST API 中的所有 GET 請求。
    • 釋出者:專門用於 MQTT 訊息釋出,只能訪問與釋出相關的 API。

效能增強的新路由儲存架構

本次釋出設計了新的路由儲存架構,在記憶體使用量略有增加的情況下提高訂閱和路由效能,尤其是對於共享訂閱下使用萬用字元的場景。在內部基準測試對比中,EMQX 5.4.0 版本相較於 5.3.0 版本,平均訂閱速度提升了 30%。

同時由於新儲存架構取消了建立單獨索引操作,也因此徹底避免了極端情況下叢集路由狀態不一致的情況出現。

新儲存架構預設啟用,舊版本叢集將在滾動升級後也將自動切換到新架構。如果你不想使用新架構,可以透過配置 broker.routing.storage_schema 指定使用舊架構。

其他新增與變更功能

  1. REST API 與 Dashboard 新增了備份與恢復功能,使用者可以為叢集建立多個資料備份,並在需要的時候恢復。
  2. Dashboard 中新增了審計日誌管理頁面,使用者可以使用該頁面檢視對 EMQX 裝置和資料進行的所有更改操作,例如踢出裝置、建立/刪除規則等。
  3. Dashboard 單點登入中的 SAML 協議支援與 Azure Entra ID 進行整合。
  4. 客戶端認證使用 LDAP 作為資料來源時支援透過 bind 操作進行驗證,適用於已經在 LDAP 伺服器上擁有賬戶資料或缺乏新增或修改資料許可權的情況。
  5. 調整資料橋接設計,將其拆分為聯結器與動作(Sink)。連線用於管理資料整合與外部系統的連線,可以在多個動作之間重複使用,動作僅用於配置資料操作方式。這個設計能夠提供更大的靈活性和更好的可擴充套件性,實現更清晰的資料整合配置與管理。
  6. 節點重平衡操作狀態 API GET /api/v5/load_rebalance/availability_check 取消身份驗證,簡化了負載均衡器配置。
  7. 新增重置 License 功能,允許將現有的 License 設定為預設試用 License。
  8. 調整預設試用 License 規格,由 100 連線調整為 25 連線。

BUG 修復

以下是主要 BUG 修復列表:

  • #10976 修復共享訂閱中的主題過濾器重複處理問題。 在之前的實現中,訂閱選項的儲存方法沒有充分適配共享訂閱,這導致在特定的主題和流程下,”訂閱-取消訂閱” 期間訊息路由失敗並且節點之間的路由表出現洩漏問題。
  • #12048 修復 COAP 閘道器忽略訂閱選項的錯誤。
  • #12158 修復規則引擎無法連線到 Upstash Redis 的問題。修復前,在與 Redis 服務建立 TCP 連線之後,EMQX 的 Redis 驅動程式使用 inline commands 來傳送 AUTH 和 SELECT 命令。但 Upstash Redis 服務不支援 inline commands,導致 EMQX 無法連線到 Upstash Redis 服務。 修復後,EMQX 的 Redis 驅動使用 RESP (Redis Serialization Protocol) 來傳送 AUTH 和 SELECT 命令。

更多功能變更和 BUG 修復請檢視 EMQX Enterprise 5.4.0 更新日誌

相關文章