次の方法で共有


MQTT ブローカー診断設定を構成する

重要

この設定では、ブローカー リソースを変更する必要があり、Azure CLI または Azure portal を使用して初期デプロイ時にのみ構成できます。 "ブローカー" 構成の変更が必要な場合は、新しいデプロイが必要です。 詳細については、「既定のブローカーをカスタマイズする」を参照してください。

診断設定を使用すると、MQTT ブローカーのメトリック、ログ、セルフチェックを構成できます。

メトリック

メトリックは、MQTT ブローカーの現在および過去の正常性と状態に関する情報を提供します。 これらのメトリックは、OpenTelemetry 形式 (OTLP) で出力されます。 これらは、OpenTelemetry Collector を使用して Prometheus 形式に変換し、Azure Monitor の Prometheus 用マネージド サービスを使用して Azure Managed Grafana ダッシュボードにルーティングできます。 詳細については、監視とモニタリングに関する記事を参照してください。

使用可能なメトリックの完全な一覧については、「MQTT ブローカーのメトリック」を参照してください。

ログ

ログは、MQTT ブローカーによって実行された操作に関する情報を提供します。 これらのログは、Kubernetes クラスターでコンテナー ログとして使用できます。 これらは、Container Insights を使用して Azure Monitor ログに送信されるように構成できます。

詳細については、監視とモニタリングに関する記事を参照してください。

セルフチェック

MQTT ブローカーのセルフチェック メカニズムは、既定で有効になっています。 これは、診断プローブと OpenTelemetry (OTel) トレースを使用してブローカーを監視します。 プローブは、テスト メッセージを送信して、システムの動作とタイミングを確認します。

検証プロセスでは、テスト結果と想定される結果を比較して、システムが正しく動作しているかどうかを確認します。 これらの結果には、次のものが含まれます。

  1. メッセージがシステムを通過する経路。
  2. システムのタイミング動作。

診断プローブは、MQTT ブローカー上で MQTT 操作 (PING、CONNECT、PUBLISH、SUBSCRIBE、UNSUBSCRIBE) を定期的に実行し、対応する ACK とトレースを監視して、待機時間、メッセージ損失、レプリケーション プロトコルの正確性を確認します。

重要

セルフチェック診断プローブは、メッセージを azedge/dmqtt/selftest トピックに発行します。 azedge/dmqtt/selftest で始まる診断プローブ トピックを発行またはサブスクライブしないでください。 これらのトピックを発行またはサブスクライブすると、プローブまたは自己テストのチェックに影響して、結果が無効になる場合があります。 診断プローブ ログ、メトリック、またはダッシュボード内に無効な結果が表示される場合があります。 たとえば、診断プローブ ログの中に、"'発行' 操作の種類を含むプローブ イベントのパス検証が失敗" した問題が表示される場合があります。 詳細については、既知の問題に関する記事を参照してください。

診断設定を変更する

ほとんどのシナリオでは、既定の診断設定で十分です。 MQTT ブローカーの既定の診断設定をオーバーライドするには、Broker リソースの diagnostics セクションを編集します。 現在、設定の変更は、az iot ops create コマンドを使用して Azure IoT Operations をデプロイするときに --broker-config-file フラグを使用する場合にのみサポートされます。

オーバーライドするには、まず、BrokerDiagnostics API リファレンスに従って Broker 構成ファイルを準備します。 次に例を示します。

{
  "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 Operations をデプロイします (簡潔にするために他のパラメーターは省略されています)。

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

詳細については、「高度な MQTT ブローカー構成の Azure CLI サポート」と「ブローカーの例」を参照してください。

次のステップ