以 DataHub 的 DCCS Key 為例說明 MQTT 連線異常排查過程。
問題描述
發現數據無法上傳到 IoTHub,可以使用 Paho 或者 MQTT Box 等 MQTT Tools 對 MQTT 連線信息進行測試。
MQTT 連線信息
透過 DCCS API 取得 MQTT 連線信息方式可以參考 以 API 方式取得連線憑證。
MQTT URL: rabbitmq-001-pub.hz.wise-paas.com.cn
MQTT Port: 1883
username: eaa7d8b1-f785-4c05-9857-9f7f7c1078f3:cab56b42-0616-4373-819a-5bc9ff7edff8
password: dyGekuVaeMbfluGJ6hXts46WI
排查過程
- 首先檢查rabbitmq服務連線問題
telnet rabbitmq-001-pub.hz.wise-paas.com.cn 1883
- 使用工具檢查mqtt連線情況
-
創建連線配置
-
連線測試
-
log顯示連線成功
- 訂閱和發布排查
-
隨意輸入訂閱topic,如:/home/garden/fountain,然後“Subscribe”,連線斷開,查看log
初步判斷是設定了topic白名單,查詢白名單的方法如下: -
方法壹:需要Rabbitmq admin權限
登錄rabbitmq portal,在Admin標簽欄,通過username進行過濾,發現此連線是有設定topic白名單的。
-
方法二:知道ServiceKeyName,通過DCCS API直接獲取到topic白名單
ServiceKeyName的獲取方法
登錄數據服務平臺
調用API獲取憑證信息並檢查rmqTopicRead、rmqTopicWrite配置項是否設置了白名單
https://api-dccs-ensaas.hz.wise-paas.com.cn/v1/servicecredentials/${ServiceKey}
通過topic白名單進行訂閱和發布
- 查詢到的白名單把“.”替換為“/”,把“*”替換為“#”,形式如下:
.wisepaas.scada.caaa2f99-c604-4d70-a4eb-6a8e3869c33b.*
==>
/wisepaas/scada/caaa2f99-c604-4d70-a4eb-6a8e3869c33b/#
-
訂閱
-
發布