共用方式為


設定 MQTT 訊息代理程式診斷設定

重要

此設定需要修改 Broker 資源,且只能在初始部署階段使用 Azure CLI 或 Azure 入口網站進行設定。 如果需要訊息代理程式設定變更,則需要新的部署。 若要深入瞭解,請參閱 自定義預設 Broker

診斷設定可讓您設定 MQTT 訊息代理程式的計量、記錄和自我檢查。

計量

計量提供 MQTT 訊息代理程式目前和過去健康情況和狀態的相關信息。 這些計量會以 OpenTelemetry 格式發出(OTLP)。 它們可以使用 OpenTelemetry Collector 轉換成 Prometheus 格式,並使用適用於 Prometheus 的 Azure 監視器受控服務路由傳送至 Azure 受控 Grafana 儀錶板。 若要深入瞭解,請參閱 設定可檢視性和監視

如需可用的計量完整清單,請參閱 MQTT 訊息代理程式計量

記錄

記錄提供 MQTT 訊息代理程式所執行之作業的相關信息。 Kubernetes 叢集中提供這些記錄作為容器記錄。 其可設定為使用 Container Insights 傳送至 Azure 監視器記錄。

若要深入瞭解,請參閱 設定可檢視性和監視

自我檢查

默認會啟用 MQTT 訊息代理程式自我檢查機制。 它會使用診斷探查和 OpenTelemetry (OTel) 追蹤來監視訊息代理程式。 探查會傳送測試訊息,以檢查系統的行為和時間。

驗證程式會藉由比較測試結果與預期的結果,來檢查系統是否正常運作。 這些結果包括:

  1. 訊息會經過系統的路徑。
  2. 系統的計時行為。

診斷探查會定期在 MQTT 訊息代理程式上執行 MQTT 作業(PING、CONNECT、PUBLISH、SUBSCRIBE、UNSUBSCRIBE),並監視對應的 ACK 和追蹤,以檢查複寫通訊協議的延遲、訊息遺失和正確性。

重要

自我檢查診斷探查會將訊息發佈至 azedge/dmqtt/selftest 主題。 請勿發佈或訂閱以 azedge/dmqtt/selftest開頭的診斷探查主題。 發佈或訂閱這些主題可能會影響探查或自我測試檢查,導致結果無效。 診斷探查記錄、計量或儀錶板中可能會列出無效的結果。 例如,您可能會在診斷探查記錄中看到探查事件路徑驗證失敗的問題 ,其作業類型為 'Publish' 。 如需詳細資訊,請參閱 已知問題

變更診斷設定

在大部分情況下,默認診斷設定就已足夠。 若要覆寫 MQTT 訊息代理程式的預設診斷設定,請編輯 diagnostics Broker 資源中的 區段。 目前,只有在您使用 az iot ops create 命令部署 Azure IoT 作業時,才支援--broker-config-file使用 旗標變更設定。

若要覆寫,請先準備 Broker 配置檔, 再遵循 BrokerDiagnostics API 參考。 例如:

{
  "diagnostics": {
    "metrics": {
      "prometheusPort": 9600
    },
      "logs": {
        "level": "debug"
      },
    "traces": {
      "mode": "Enabled",
      "cacheSizeMegabytes": 16,
      "selfTracing": {
        "mode": "Enabled",
        "intervalSeconds": 30
      },
      "spanChannelCapacity": 1000
    },
    "selfCheck": {
      "mode": "Enabled",
      "intervalSeconds": 30,
      "timeoutSeconds": 15
    }
  }
}

然後,使用 az iot ops create 命令搭配 --broker-config-file 旗標來部署 Azure IoT 作業,例如下列命令(為了簡潔而省略其他參數):

az iot ops create ... --broker-config-file <FILE>.json

若要深入瞭解,請參閱 進階 MQTT 訊息代理程式組態Broker 範例的 Azure CLI 支援。

下一步